当我运行以下命令时: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中没有这样的文件或目录
请帮助我理解为什么会发生这种情况以及如何解决它。
答案 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扩展。