macOS Sierra附带PHP 5.6,我希望通过从源代码构建将其升级到PHP(7.1.4)的最新稳定版本。我所做的实际上是一个全新的安装。首先,我从我的系统中删除了旧的PHP,然后从php.net下载源代码并构建它。除了Apache之外,工作正常。
顺便说一下,在构建PHP之前,我必须安装apr
和apr-util packages
。 PHP 7默认不接受操作系统附带的/usr/lib
下的相同软件包。
当我执行configtest时,收到此错误:
httpd:/private/etc/apache2/httpd.conf第175行的语法错误:
无法将libexec / apache2 / libphp7.so加载到服务器中:
dlopen(/usr/libexec/apache2/libphp7.so,10):
未加载库:/usr/local/apr/lib/libaprutil-1.0.dylib
参考自:/usr/libexec/apache2/libphp7.so
原因:库版本不兼容:
libphp7.so需要6.0.0或更高版本,但libaprutil-1.0.dylib提供版本4.0.0
出于某种原因,libaprutil-1.0.dylib未加载到/usr/local/apr/lib/
下的我的环境中,这就是我无法启动Apache的原因。
我看到类似的问题here,并试图做出公认的解决方案。但是,我仍然无法启动它。
无法加载libaprutil
的任何想法?
答案 0 :(得分:0)
我在macOS HighSierra上遇到了同样的问题:
httpd:/private/etc/apache2/httpd.conf的第174行的语法错误: 无法将/usr/local/opt/php/lib/httpd/modules/libphp7.so加载到 服务器:dlopen(/usr/local/opt/php/lib/httpd/modules/libphp7.so,10): 库未加载: /usr/local/opt/apr-util/libexec/lib/libaprutil-1.0.dylib\n引用 来自:/usr/local/opt/php/lib/httpd/modules/libphp7.so\n原因: 不兼容的库版本:libphp7.so需要版本7.0.0或 以后,但是libaprutil-1.0.dylib提供了4.0.0版本。
原因是系统Apache与brew的php不兼容。我相信这本不应该发生,但我没有更深入。我已禁用默认apache并使用以下说明从 brew 存储库安装了该apache:https://tecadmin.net/install-apache-macos-homebrew/
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
brew install httpd
sudo brew services start httpd
此操作需要将我的旧配置/private/etc/apache2/httpd.conf
与新配置合并:/usr/local/etc/httpd/httpd.conf
为了启用 php ,我将/usr/local/etc/httpd/httpd.conf放入以下行:
LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
它解决了这个问题。