web-dev-qa-db-ja.com

macOS Mojaveアップデート後にApacheが機能しない

わかりました。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'
9
Edoras

Mojaveのアップグレード前は正常に動作していたため、PHP 5.6でも同様の問題に直面しました。問題を正常に解決するために次のことを行いました。

  1. 以下のコマンドを実行しますSudo nano /etc/Apache2/httpd.conf

  2. 以下のモジュールのコメントが外されていることを確認してください。

    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に追加しました

  1. 適切なphpモジュール(PHP 5.6または7.x)を確認し、行を追加するか、行をコメント化/コメント解除して、必要なモジュールもロードします。

    LoadModule php5_module libexec/Apache2/libphp5.so

OR

LoadModule php7_module libexec/Apache2/libphp7.so

行の先頭に「#」を追加して、不要なものにコメントします

  1. 以下のコマンドを実行してapapcheを再起動し、テストします。 sudo apachectl restart b。 apachectl configtest

エラーがないか確認してください

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/

これはすべて私のシステムで動作するようにしました

14
adang

アダンの返事に加えて、私もこの行のコメントを外さなければなりませんでした:

Include /private/etc/Apache2/extra/httpd-userdir.conf

利用可能なユーザーディレクトリを知るために。

/private/etc/Apache2/extra/httpd-userdir.conf内

この行のコメントを解除する必要がありました。

Include /private/etc/Apache2/users/*.conf

その後:

Sudo apachectl restart
7
Matthew

Mac OS Mojaveをインストールした後、同じ問題が発生しました。私は次の手順を実行し、それは私と一緒に働いた:

brew update 

その後:

brew upgrade

次の行のコメントを外して、/ etc/Apache2/httpd.confを編集しました。

LoadModule php7_module libexec/Apache2/libphp7.so

ターミナルを開き、Apacheサーバーを再起動します。

Sudo apachectl restart

このリンクの投稿が役立つかもしれません

2
Wael Almadhoun

上記の回答の指示に従っても、/Users/myuser/Sites/フォルダーにアクセスしようとすると403 Forbiddenが表示されます。これを修正するには、/etc/Apache2/httpd.confのユーザーを_wwwから自分のユーザーに変更する必要がありました。

これを行うには、お気に入りのエディター/etc/Apache2/httpd.confを使用してhttpd.confファイルを編集します。探す:

User _www

ユーザーに置き換えます:

User myuser

次に、Apacheを再起動します。

Sudo apachectl restart
1
bated

トピックは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がコメントアウトされていることがわかり、コメントを外すと問題が解決しました。

0