macOS Sierra附带PHP5.6,我希望通过从源代码构建将其升级到最新的稳定版本PHP(7.1.4)。我所做的实际上是一个新的安装。首先,我从系统中删除了旧的PHP,然后从PHP下载源代码。net并构建它。除了Apache之外,一切都很好。
顺便说一下,在我构建PHP之前,我必须安装apr
和apr-util包
。PHP 7不只是接受操作系统默认自带的/usr/lib
下的相同包。
执行configtest时,我收到以下错误:
http: /private/etc/apache2/httpd.conf第175行语法错误:
无法将libexec/apache2/libphp7.so加载到服务器:
dlopens(/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的原因。
我在这里看到了类似的问题,并尝试采用公认的解决方案。然而,我仍然无法启动它。
你知道为什么它不能加载libaprutil吗?
我在macOS HighSierra上也有同样的问题:
httpd:/private/etc/apache2/httpd的第174行出现语法错误。conf:无法加载/usr/local/opt/php/lib/httpd/modules/libphp7。所以进入服务器: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。所以\n原因:不兼容的库版本:libphp7。因此需要7.0版。0或更高版本,但libaprutil-1.0。dylib提供了4.0版。0
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/http/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>
它解决了这个问题。
确保php正常工作。将其写入命令行:
$php -r 'echo "i am fine" . "\r\n";'
在我的例子中,在这个命令之后,php告诉我他已经失去了重要的依赖。