为什么新安装的 PHP7 不能启动 apache?

问题描述 投票:0回答:1

macOS Sierra 自带的是 PHP 5.6,我想通过从源码开始构建将其升级到最新的 PHP 稳定版(7.1.4)。我所做的实际上是一个全新的安装。首先,我从系统中删除了旧的PHP,然后从php.net上下载了源代码,并进行了编译。除了Apache之外,一切都很正常。

顺便说一下,在我构建 PHP 之前,我必须安装 aprapr-util packages. PHP 7不仅接受了同样的包下的。/usr/lib 操作系统默认自带的。

当我执行configtest时,我收到这个错误。

httpd: 在 privateetcapache2httpd.conf 的第 175 行出现语法错误。 Cannot load libexecapache2libphp7.so into server: dlopen(usrlibexecapache2libphp7.so, 10): 库未加载:usrlocalaprlibaprutil-1.0.dylib 引用自:usrlibexecapache2libphp7.so 原因:不兼容的库版本:libphp7.so需要6.0.0或更高版本,但libaprutil-1.0.dylib提供4.0.0版本。

由于某些原因,libaprutil-1.0.dylib没有被加载到我的环境下的 /usr/local/apr/lib/ 这就是为什么我不能启动Apache的原因。

我看到类似的问题 此处 并尝试做公认的解决方案。然而,我仍然无法管理启动它。

任何想法,为什么它不能加载 libaprutil?

php macos apache macos-sierra
1个回答
0
投票

我在 macOS HighSierra 上也遇到了同样的问题。

httpd: 在 privateetcapache2httpd.conf 的第 174 行出现语法错误,无法加载 usrlocalopt。 Cannot load usrlocaloptphplibhttpdmoduleslibphp7.so into server: dlopen(usrlocaloptphplibhttpdmoduleslibphp7.so, 10): 库未加载:usrlocaloptapr-utillibexeclibaprutil-1.0.dylib/n 引用自:usrlocaloptphplibhttpdmoduleslibphp7.son/原因:库版本不兼容:libphp7.so需要7.0.0或更高版本,但libaprutil-1.0.dylib提供4.0.0版本。

原因是在系统Apache和brew的php不兼容。我相信这是不应该发生的,但我没有去深究。我已经禁用了默认的apache,并安装了一个从 仓库的指令。https:/tecadmin.netinstall-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 我在usrlocaletchttpdhttpd.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>

它解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.