Macを最新バージョンのOSにアップデートしました。 PHPプロジェクトを実行しようとすると、ブラウザはphpコードを解釈する代わりに表示します。新しいOSではphpがバージョン7.1であることに気付きました。自作を使用して5.6(私には必須)をインストールしました。 httpd.confのモジュールを次のように変更します。
LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so
Apacheエラーログは次のとおりです。
[Tue Sep 26 23:59:38.600410 2017] [mpm_prefork:notice] [pid 980] AH00169:SIGTERMをキャッチし、シャットダウンしました[Tue Sep 26 23:59:38.622998 2017] [core:notice] [pid 980] AH00060:seg親プロセスで障害または同様の厄介なエラーが検出されましたAH00557:httpd:apr_sockaddr_info_get()がMacBook-Pro-Kamil.localで失敗しましたAH00558:httpd:127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に判別できませんでした。 'ServerName'ディレクティブをグローバルに設定して、このメッセージを抑制します[Tue Sep 26 23:59:48.838005 2017] [mpm_prefork:notice] [pid 991] AH00163:Apache/2.4.27(Unix)PHP /5.6.31構成済み-再開通常の操作[TueSep 26 23:59:48.838097 2017] [core:notice] [pid 991] AH00094:コマンドライン: '/ usr/sbin/httpd -D FOREGROUND'
Httpd.confファイルに次の行を追加すると、問題が修正されました。
AddType x-httpd-php .php
AddHandler application/x-httpd-php .php .php5
うまくいけば、これが役立ちます!
編集:crmpiccoが示唆しているように、もう少し詳細を提供するために、新しいHigh Sierrahttpd.confファイルとhttpd-vhosts.confファイルも古いSierraファイルに置き換えました。
mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf
これらすべてを実行してApacheを再起動した後でも、まだ機能していませんでした。すべてを有効にするには、再起動する必要がありました。
MacOSのアップグレードプロセスでは、新しい新しいバージョンを作成しながら、Apache構成を~previous
ファイルに移動しているようです。それらを元に戻す必要があります。これは私のために働いた:
mv httpd-ssl.conf~previous httpd-ssl.conf
mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf
構文を確認してください。
apachectl -S
Apacheを再起動します。
apachectl restart
HighSierraでのPHP5.6の使用
共有Apacheハンドラモジュールのビルドを有効にする最新バージョンのPHP56がインストールされ、httpオプションが有効になっていることを確認します(必要に応じてインストール/アップグレード/再インストール)
$ brew upgrade php56 --with-httpd
Apache2構成ファイルでモジュールをリンクするApache2構成ファイル/etc/Apache2/httpd.confに次のステートメントを追加します
LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/Apache2/libphp5.so
PHP5構成ファイルの追加
Php7.confからコピーを作成します
$ cd/etc/Apache2/other; Sudo cp php7.conf php5.conf
Php7_moduleをphp5_moduleに置き換えます
Apacheサーバーを再起動します
$ Sudo/usr/sbin/apachectl restart
PHPに問題があるようには見えませんが、マシンのドメイン名に問題があります。 「127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に判別できませんでした。このメッセージを抑制するには、「ServerName」ディレクティブをグローバルに設定してください。」httpd.confファイルのドメイン設定を確認します。/ etc/hostsファイルにも競合がないか確認する必要があります。
Homebrewを介してApache/MySQL/PHPをインストールして使用するためのこのガイドは非常に役立ちました。 macOS Sierraに適用されますが、HighSierraでも機能します。また、複数のPHPバージョンをインストールする方法と、興味がある場合は、それらを切り替える便利な方法も示します(または、単一のPHPバージョン実行中)。
VagrantやMAMPではなく、Homebrewルートを使用するのが好きです。これは、ネイティブインストールに近く、使用するリソースが少ないためです。お役に立てば幸いです。
追加した後
LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so
追加する必要があります
<IfModule mod_php5.c>
# If php is turned on, we respect .php and .phps files.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# Since most users will want index.php to work we
# also automatically enable index.php
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
あなたに
/etc/Apache2/httpd.conf
忘れないでください
apachectl restart
ここでMAMPとphp5.6を使用した場合も同じです。HighSierra(おそらく雑草が多すぎるSierra)に更新した直後に、Apache2が動作を停止しました。
数時間後、私はついにこのコマンドで解決しました:
cp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.temp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini
そして、私のカスタム変更をphp.iniに再適用しました。 (私の場合、memory_limitとshort_open_tag)
MAMPを再起動すると、最初の試行で機能しました。