Apache 2.4 PHP 启动:无法加载动态库 'curl.so'、libcurl。4.dylib

Apache 2.4 PHP Startup: Unable to load dynamic library 'curl.so', libcurl.4.dylib

我是 运行 macOS 10.12Apache 2.4PHP 7.2.7

当我添加行时:LoadModule php5_module libexec/apache2/libphp5.so 我的 httpd.conf 我收到以下错误。

httpd not running, trying to start

Warning: PHP Startup: Unable to load dynamic library 'curl.so' (tried: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/curl.so (dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/curl.so, 9): Library not loaded: /usr/local/php5/lib/libcurl.4.dylib
Referenced from: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/curl.so
Reason: Incompatible library version: curl.so requires version 9.0.0 or later, but libcurl.4.dylib provides version 7.0.0), /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/curl.so.so (dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/curl.so.so, 9): image not found)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so' (tried: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so (dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so, 9): Library not loaded: /usr/local/php5/lib/libcurl.4.dylib
Referenced from: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so
Reason: Incompatible library version: http.so requires version 9.0.0 or later, but libcurl.4.dylib provides version 7.0.0), /usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718//usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so.so (dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718//usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/http.so.so, 9): image not found)) in Unknown on line 0


/usr/sbin/apachectl: line 92:   719 Segmentation fault: 11  $HTTPD "$@"

我用 brew 更新了 curl,它显示:

/usr/local/php5/lib/libcurl.4.dylib (compatibility version 9.0.0, current version 9.0.0)

我仍然遇到同样的错误。

为什么报错显示libcurl.4.dylib是9.0.0版本的时候提供的是7.0.0版本?它是否指向文件的旧版本?他们都显示了这个位置 /usr/local/php5/lib/libcurl.4.dylib

感谢您的帮助。

它基本上是这样写的:

requires version 9.0.0 or later, but *.dylib provides version 7.0.0

这意味着,您必须在版本 9.0.0 上安装这些库,而不是版本 7.0.0

同样奇怪的是dlopen()抱怨文件名后缀.so.so

我终于找到了有效的解决方案。

$ brew install httpd php72

我按照说明设置 httpd.conf 文件和 php.ini 文件,Apache 现在可以正常启动了。