我运行 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 警告: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 或其他接近它的文件)extension=...
中有一行或行正在尝试加载该扩展:zend_extension=...
ixed.5.2.lin
不幸的是,该文件或路径不存在或权限不正确。
.ini
PHP 加载的文件中搜索(phpinfo()
可以指出哪些是) - 其中一个应该尝试加载该扩展名。如果您使用的是 Linux,您可以通过在 shell 中键入以下内容来找到所有加载的配置文件:
php -r "print phpinfo();" | grep ".ini"
更新:如评论中所述,这可能更准确:
php -i | grep ini
phpStom 与 XAMPP
TL;DR 除了验证文件是否存在,您可能需要将驱动器号添加到 php.ini 文件中的某些记录中
我突然开始在使用 phpStorm 7 使用 xampp 和 xdebug 调试 php 时遇到问题。当试图将 intellij interperter 设置为 xampps php 时,我收到了很多警告,例如问题中的警告,例如:
无法加载动态库“/xampp/php/ext/php_bz2.dll”
出于某种原因,我不得不将驱动器号添加到 php.ini 文件中的 extension_dir 和 browscap 的记录中:
extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"
至
extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"
如果您只是想让错误消失,并且不需要扩展名,那么请务必在php.ini
. 但是如果你真的想解决这个问题,这里有一些额外的信息。
根据确切的模块,导致此问题的原因有多种,但也有一些一般准则。
phpinfo()
并extension_dir
在该Core
部分下查找。这是您的模块应该位于的位置。例如,
/usr/lib/php/modules
对于 Unix/Linux。
我在尝试通过php.ini文件安装php 扩展时遇到此警告消息;
直到我发现你不能在 Linux 中加载.dll扩展,
但是您必须注释要导入的扩展;extension= ... .dll
并通过正确安装它sudo apt-get install php-...
注意:...
是您要启用的扩展名。
php -r "echo php_ini_loaded_file();"
将在 CLI 中显示当前加载的 ini 文件,在那里搜索您的扩展名,它的路径不正确。
请注意,如果您的 PHP 库没有“其他”目录打开权限,您也可能会收到此错误。在我的特殊情况下,我php -l
在文本编辑器中使用语法检查脚本时注意到了这一点。这意味着由于我的帐户被称为“voloike”,因此该帐户无权运行该php
命令所依赖的库。
例如,在 Ubuntu 14.04 上,我将 PHP5 自动安装到路径/usr/lib/php5/20121212+lfs
中。但是,因为我在 C++ 中构建一些共享对象,所以我弄乱了目录权限并将事情搞砸了,以至于非 root 帐户没有目录执行(目录打开)权限来查看/usr/lib/php5/20121212+lfs
. 所以,我输入了以下命令来纠正这个问题:
sudo chmod o+x /usr/lib/php5/20121212+lfs
.
现在,当我php -l example.php
以非 root 用户身份进行操作时,它再也不会给我这个“无法加载动态库”的问题了。
就我而言,我收到此错误是因为我下载了 dll 的线程安全版本(以 为前缀-ts-
),但我的 php 安装是非线程安全的(以 为前缀-nts-
)。下载正确版本的 dll,完全匹配我的 php 安装版本解决了这个问题。
当我尝试安装 composer 时,我在 Windows10 的 XAMPP 上遇到了同样的问题。
无法加载动态库“/xampp/php/ext/php_bz2.dll”
然后按照这个步骤
extension_dir="F:\xampp731\php\ext" (这里find_drive_name_from_the_file是F)
当我在我的服务器上并排运行不同版本的 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
当我尝试安装 composer 时,我在 XAMPP for Windows 上遇到了同样的问题。我做了php -v
和 php 抛出错误:
无法加载动态库“/xampp/php/ext/php_bz2.dll”
我花了一段时间才意识到我需要设置我的 XAMPP。所以我运行setup_xampp.bat
并且 php 像魅力一样返回工作。
就我而言,当我将 php 版本更新到 7.4 时,此消息开始出现。
为了解决这个问题,我必须在 php 版本文件夹 (/etc/php/7.4/apache2/ && /etc/php/7.4/cli/) 中查找 php.ini 文件,检查我可以看到的扩展名所在的行扩展 gd2 和 intl 未注释。
Windows 10 XAMPP
现在我安装在LAMPP (XAMPP)
Ubuntu 上。Windows XAMPP
与 MAC(iOS)相比,配置要少得多,但现在有了 Linux Ubuntu,我有了更多配置,因为 Linux 中有更多配置(一件好事)。
我混淆并激活mysqli.dll
(和mysql.dll:擦除“#”/etc/php/7.2/cli/php.ini
我开始收到PHP Warning: PHP Startup: Unable to load dynamic library
与dll
. 我在同一个文件中注释掉了mysql(and i).dll
,但是直到我在/opt/lampp/etc/php.ini
.
看起来 XAMPP 从中读取php.ini
文件并对其进行/etc/php/7.2/cli
修改php.ini
。/opt/lampp/etc
(;extension=php_pdo_mysql.dll 在 ";" 之后重新启动 Apache 并且没有任何消息。
在 Windows 中,它可能是“系统环境变量”中的错误路径。php.exe 目录的“路径”必须是正确的。
我遇到了类似的错误。我犯的错误是在我的网址中使用“控制器”名称作为“页面”而不是“页面”。
当我尝试将 php 与 sql server 一起使用时,我遇到了同样的问题,当我添加了 sqlsrv 库时......它给了我错误,经过几天的研究,我明白微软在这种情况下不支持 x64 那又怎样我所做的是安装 laragon x86 并使用相应的库。我希望它对某些事情有所帮助
从 C:\xampp\php\php.exe 我得到了
我通过注释掉
C:\xampp\php\php.ini
;extension=解决了
'C:/PHP/5.2.13/ext\php_mcrypt1.dll'
我会说你的 php.ini 有一些错字(额外的 1)。也许您正在加载与预期不同的 php.ini(请参阅 php.ini 的输出以确保)。
除此之外,请确保 php_mcrypt.dll 和 PHP:
链接到同一个 VC 运行时库(通常是 VC6 的 msvcrt.dll 或 VC9 的 msvcrt90.dll)——为此使用例如依赖项walker 都是调试版本或两个发布版本 都启用了 ZTS 或禁用了 ZTS 对于依赖于的库更多的库(DLL),确保它们可用(例如,在与扩展相同的目录中) 如果不满足上述前三个条件中的任何一个,PHP 应该会给你错误,但我还是写了这些,因为我不确定对于 PHP 5.2。
我遇到了类似的问题,下面是所有警告/错误中的一些。
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 扩展,C:\php\ext\
所以我将 php 下载到该C:\
目录并解决了问题。