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

Pop*_*olo 85 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行的"未知"中没有此类文件或目录

那是什么意思?

Pas*_*TIN 50

这意味着你的一个php配置文件(php.ini或其他接近它)中有一个extension=...zend_extension=...一行试图加载该扩展:ixed.5.2.lin

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

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

  • 所以我也得到了这个错误,但我的网站仍然有效 - 这是最奇怪的部分.对于这种类型的错误,我认为php会从一开始就崩溃.相反,我得到了我的页面,但我的记录器正在记录此错误.怪啊? (6认同)

nef*_*ski 35

如果您使用的是Linux,则可以通过在shell中键入以下内容来查找所有已加载的配置文件:

php -r "print phpinfo();" | grep ".ini"
Run Code Online (Sandbox Code Playgroud)

更新:如评论中所述,这可能更准确:

php -i | grep ini
Run Code Online (Sandbox Code Playgroud)

  • 怎么样'php --ini`列出所有ini文件 (6认同)
  • `php -i | grep ini`也应该正常工作(当你有一个命令参数时,不需要打印phpinfo) (3认同)

Ete*_*our 16

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

基于确切的模块有多种原因,但也有一些通用的指导原则.

  1. 在该部分下打开phpinfo()并查找.这是您的模块所在的位置.extension_dirCore

例如,/usr/lib/php/modules对于Unix/Linux.

  1. 如果文件确实存在,请确保权限足够.
  2. 如果该文件不存在,请使用以下资源进行安装.

在*nix(PEAR)上
安装在Windows上安装扩展


Tec*_*nic 10

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"
Run Code Online (Sandbox Code Playgroud)

extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"
Run Code Online (Sandbox Code Playgroud)

  • 这在 Windows 10 上为我修复了它。 (3认同)

Mar*_*.G. 6

在 Linux 中加载 .dll

我在尝试通过php.ini文件安装php 扩展时遇到了此警告消息;

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

但是您必须注释要导入的扩展;extension= ... .dll并通过以下方式正确安装它sudo apt-get install php-...

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


小智 5

php -r "echo php_ini_loaded_file();"

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


小智 5

就我而言,当我将 php 版本更新到 7.4 时,此消息开始出现。

为了解决这个问题,我必须查找 php 版本文件夹(/etc/php/7.4/apache2/ && /etc/php/7.4/cli/)中找到的 php.ini 文件,检查我可以看到的扩展名的行扩展 gd2 和 intl 未注释。