わかりました。macOSをHigh SierraからMojaveに更新した後、PHPを使用したApacheは正常に動作しなくなりました。そのため、このガイドで述べたようにすべてを行いました- https://getgrav.org/blog/macos -mojave-Apache-multiple-php-versions
しかし、その後、まだApacheが正常に動作していない、時には動作している、時には動作していない、ブラウザでERR_CONNECTION_REFUSEDまたは404や500などの他のエラーが表示されます。
Apacheログには:
[Tue Oct 02 15:02:23.209423 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:02:23.255957 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:02:23.256008 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:14:37.626645 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:14:37.674603 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:14:37.674672 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:28:40.715060 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received. Attempting to restart
[Tue Oct 02 15:28:40.752117 2018] [ssl:warn] [pid 14579] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name
[Tue Oct 02 15:28:40.766009 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) OpenSSL/1.0.2p PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:28:40.766052 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
Mojaveのアップグレード前は正常に動作していたため、PHP 5.6でも同様の問題に直面しました。問題を正常に解決するために次のことを行いました。
以下のコマンドを実行しますSudo nano /etc/Apache2/httpd.conf
以下のモジュールのコメントが外されていることを確認してください。
LoadModule authz_core_module libexec/Apache2/mod_authz_core.so
LoadModule authz_Host_module libexec/Apache2/mod_authz_Host.so
LoadModule userdir_module libexec/Apache2/mod_userdir.so
LoadModule include_module libexec/Apache2/mod_include.so
LoadModule rewrite_module libexec/Apache2/mod_rewrite.so
不足しているものをhttpd.confに追加しました
適切なphpモジュール(PHP 5.6または7.x)を確認し、行を追加するか、行をコメント化/コメント解除して、必要なモジュールもロードします。
LoadModule php5_module libexec/Apache2/libphp5.so
OR
LoadModule php7_module libexec/Apache2/libphp7.so
行の先頭に「#」を追加して、不要なものにコメントします
エラーがないか確認してください
PHP 5.6の場合:upgardeの前に既にシステムにbrew 5のphp 5があり、上記の変更により以下のようなエラーが発生する場合:「httpd:/ private/etc/Apache2/httpdの180行目の構文エラー.conf:libexec/Apache2/libphp5.soをサーバーにロードできません:dlopen(/usr/libexec/Apache2/libphp5.so、10):image not found "
次に、システムでlibphp5.soを検索し、見つかった場合は「/ usr/libexec/Apache2 /」にコピーします
私の場合、コマンドは
Sudo cp ./local/Cellar/[email protected]/5.6.25_1/libexec/Apache2/libphp5.so /usr/libexec/Apache2/
これはすべて私のシステムで動作するようにしました
アダンの返事に加えて、私もこの行のコメントを外さなければなりませんでした:
Include /private/etc/Apache2/extra/httpd-userdir.conf
利用可能なユーザーディレクトリを知るために。
/private/etc/Apache2/extra/httpd-userdir.conf内
この行のコメントを解除する必要がありました。
Include /private/etc/Apache2/users/*.conf
その後:
Sudo apachectl restart
Mac OS Mojaveをインストールした後、同じ問題が発生しました。私は次の手順を実行し、それは私と一緒に働いた:
brew update
その後:
brew upgrade
次の行のコメントを外して、/ etc/Apache2/httpd.confを編集しました。
LoadModule php7_module libexec/Apache2/libphp7.so
ターミナルを開き、Apacheサーバーを再起動します。
Sudo apachectl restart
上記の回答の指示に従っても、/Users/myuser/Sites/
フォルダーにアクセスしようとすると403 Forbiddenが表示されます。これを修正するには、/etc/Apache2/httpd.conf
のユーザーを_www
から自分のユーザーに変更する必要がありました。
これを行うには、お気に入りのエディター/etc/Apache2/httpd.conf
を使用してhttpd.confファイルを編集します。探す:
User _www
ユーザーに置き換えます:
User myuser
次に、Apacheを再起動します。
Sudo apachectl restart
トピックはMojaveのアップグレード後に台無しにされたhttpd.confであるため、Sudo apachectl configtest
の間にこのエラーも発生しました。
Could not reliably determine the server's fully qualified domain name, using XXX. Set the 'ServerName' directive globally to suppress this message
Httpd.confの#ServerName localhost:80
がコメントアウトされていることがわかり、コメントを外すと問題が解決しました。