[英]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.