[英]Why apache does not start with newly installed PHP7?
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 的原因。
我在这里看到了类似的问题,并尝试执行公认的解决方案。 但是,我仍然无法启动它。
为什么它无法加载libaprutil
任何想法?
我在 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存储库安装了一个: 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>
它解决了这个问题。
确保 php 工作正常。 将其复制/粘贴到命令行:
$php -r 'echo "i am fine" . "\r\n";'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.