PHP警告:PHP启动:无法加载动态库

PHP警告:PHP启动:无法加载动态库,php,dynamic-library,Php,Dynamic Library,我运行了一个PHP脚本,得到了以下错误: PHP警告:PHP启动:无法加载动态库'/usr/local/lib/PHP/extensions/no-debug-non-zts-20090626/ixed.5.2.lin'-/usr/local/lib/PHP/extensions/no-debug-non-zts-20090626/ixed.5.2.lin:无法打开共享对象文件:在第0行的未知位置没有此类文件或目录 这意味着什么?这意味着在一个php配置文件(php.ini或其附近的另一个)中有

我运行了一个PHP脚本,得到了以下错误:

PHP警告:PHP启动:无法加载动态库'/usr/local/lib/PHP/extensions/no-debug-non-zts-20090626/ixed.5.2.lin'-/usr/local/lib/PHP/extensions/no-debug-non-zts-20090626/ixed.5.2.lin:无法打开共享对象文件:在第0行的未知位置没有此类文件或目录


这意味着什么?

这意味着在一个php配置文件(php.ini或其附近的另一个)中有一行
扩展=…
zend_扩展=…
试图加载该扩展:
ixed.5.2.lin

不幸的是,该文件或路径不存在或权限不正确

  • 尝试在PHP加载的
    .ini
    文件中搜索(
    phpinfo()
    可以指示哪些文件是PHP加载的)-其中一个文件应该尝试加载该扩展名
  • 请更正文件路径或注释掉相应的行

  • 如果您在Linux上,您可以通过在shell中键入以下命令来查找所有加载的配置文件:

    php -r "print phpinfo();" | grep ".ini"
    
    更新: 如评论中所述,这可能更准确:

    php -i | grep ini
    

    如果您只是想让错误消失,并且不需要扩展,那么请务必在
    php.ini
    中注释掉该行。但是如果你真的想解决这个问题,这里有一些额外的信息

    基于确切的模块,产生这种情况的原因多种多样,但也有一些一般性的指导原则

  • 打开
    phpinfo()
    并在
    Core
    部分下查找
    extension\u dir
    。这是您的模块应该位于的位置
  • 例如,对于Unix/Linux,
    /usr/lib/php/modules

  • 如果文件确实存在,请确保权限足够
  • 如果该文件不存在,请使用下面的资源进行安装


  • 带有XAMPP的phpStom

    TL;DR除了验证文件是否存在外,您可能需要将驱动器号添加到php.ini文件中的某些记录中

    我突然开始在使用PHPStorm7调试带有xampp和xdebug的php时遇到问题。当尝试将intellij interperter设置为xampps php时,我收到了许多类似问题中的警告,例如:

    无法加载动态库“/xampp/php/ext/php_bz2.dll”

    出于某种原因,我不得不将我的驱动器号添加到php.ini文件中扩展名_dir和browscap的记录中:

    extension_dir = "\xampp\php\ext"
    browscap = "\xampp\php\extras\browscap.ini"
    


    当我尝试安装composer时,我在XAMPP for Windows上遇到了同样的问题。 我做了
    php-v
    和php抛出错误:

    无法加载动态库“/xampp/php/ext/php_bz2.dll”


    我花了一段时间才意识到我需要设置XAMPP。因此,我运行了
    setup_xampp.bat
    ,php恢复正常工作。

    请注意,如果您的php库没有“其他”目录打开权限,您也可能会出现此错误。在我的特殊情况下,我在文本编辑器中使用
    php-l
    对脚本进行语法检查时注意到了这一点。这意味着,由于我的帐户名为“volomike”,该帐户没有运行
    php
    命令所依赖的库的权限

    例如,在Ubuntu 14.04上,我让PHP5自动安装到路径
    /usr/lib/PHP5/20121212+lfs
    。然而,因为我在C++中构建一些共享对象,所以我用目录权限来处理,并把事情搞砸了,这样,非根帐户就没有目录执行(目录打开)权限来查看<代码> /Ur/Lb/PHP5/20121212 +LFS。因此,我键入以下命令来纠正该问题:

    sudo chmod o+x/usr/lib/php5/20121212+lfs


    现在,当我作为非root用户使用
    php-l example.php
    时,它再也不会给我这个“无法加载动态库”的问题了。

    我遇到了类似的错误。我犯的错误是在我的url中使用“控制器”名称作为“页面”,而不是“页面”

    php-r“echo php_ini_loaded_file();”

    将在CLI中显示当前加载的ini文件,在该文件中搜索扩展名,其路径不正确。

    在Linux中加载.dll 我在试图通过php.ini文件安装php扩展时遇到了此警告消息

    直到我发现你不能在Linux中加载.dll扩展

    但是您必须对要导入的扩展进行注释;扩展=。dll和通过
    sudo-apt-get-install-php-正确安装


    注意:
    是您要启用的扩展名。

    我在服务器上并排运行不同版本的PHP时,在许多模块上都出现了此错误。为了解决这个问题,我需要安装在特定PHP版本中找不到的软件包。例如,如果我看到:-

    PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'
    
    我会专门为PHP版本安装库:-

    sudo apt-get install php7.1-xml
    
    然后重新启动Apache。帮我修好了。您可以这样检查您的版本:-

    php -v
    

    windows10xampp之后
    现在我在Ubuntu上安装了
    LAMPP(XAMPP)
    <代码>Windows XAMPP与MAC(iOS)相比,要配置的要少得多,但现在有了Linux Ubuntu,我有了更多的配置,因为Linux有更多的配置(这是一件好事)

    我混淆并激活了
    mysqli.dll
    (和mysql.dll:erase“#”in
    /etc/php/7.2/cli/php.ini

    我开始收到
    PHP警告:PHP启动:无法加载与
    dll
    相关的动态库
    消息。我在同一个文件中注释掉了
    mysql(和I.dll
    ),但直到在
    /opt/lampp/etc/PHP.ini
    中注释掉“”之后,消息才消失

    看起来XAMPP从
    /etc/php/7.2/cli
    读取
    php.ini
    文件并在中进行修改<
    php -v
    
    Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl 
    (The specified module could not be found.), C:\php\ext\php_curl.dll (The specified 
    module 
    could not be found.)) in Unknown on line 0
    
    Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: 
    C:\php\ext\fileinfo (The specified module could not be found.), 
    C:\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on 
    line 0
    
    <?php   
        phpinfo();
    ?>