为什么composer -v会为php_fileinfo.dll返回PHP启动警告?

时间:2017-03-24 09:23:21

标签: php dll warnings

当我运行以下命令时:composer -v我收到警告:

  

PHP警告:PHP启动:无法加载动态库   '/usr/lib/php/20151012/php_fileinfo.dll' -   /usr/lib/php/20151012/php_fileinfo.dll:无法打开共享对象   file:第0行的Unknown中没有这样的文件或目录

     

警告:PHP启动:无法加载动态库   '/usr/lib/php/20151012/php_fileinfo.dll' -   /usr/lib/php/20151012/php_fileinfo.dll:无法打开共享对象   file:第0行的Unknown中没有这样的文件或目录

请帮助我理解为什么会发生这种情况以及如何解决它。

1 个答案:

答案 0 :(得分:0)

缺少文件(/usr/lib/php/20151012)的路径告诉我您在类Unix操作系统(Linux或macOS)上遇到此问题。但文件的名称(php_fileinfo.dll)特定于Windows。这两个不匹配。

问题是PHP配置为加载无法找到并加载的扩展。错误发生在php.ini文件中。

在macOS和Linux系统上,php.ini文件通常保留在/etc中,但也可以位于其他位置。找到它的最安全的方法是询问PHP从哪里加载它。

打开终端并运行:

php -i | grep php.ini

您将获得与此类似的输出:

Configuration File (php.ini) Path => /usr/local/etc/php

/php.ini放在提供的路径之后,在您喜欢的编辑器中打开文件。例如,使用vi和我的设置,命令为:

vi /usr/local/etc/php/php.ini

滚动浏览文件(或使用编辑器的"搜索"功能),直到找到以这样开头的行块:

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
...

确保此类型的所有行(extension=php_***.dll)以分号(;)开头。该行前面的分号使其成为评论; PHP将忽略该行,并且不会尝试加载Windows扩展。