web-dev-qa-db-ja.com

Apache enable worker mpm

FastCGIとPHP5-FPMをubuntuで動作するように設定しましたが、正常に動作しています。

しかし、私は"Apache2 worker mpm"モジュールをインストールし、Apache2のデフォルトである"prefork mpm"を構成および置換したいと考えました。

私が見つけたのは、CentOSの/etc/sysconfig/httpdを置くだけでHTTPD=/usr/sbin/httpd.workerを置くだけで"worker mpm"が有効になります。

  1. Ubuntuで「worker mpm」を有効にするにはどうすればよいですか?

  2. また、Apache "/usr/sbin/apachectl -l"のコンパイル済みモジュールを一覧表示すると、"prefork.c"を一覧表示しません。しかし、"/usr/sbin/Apache2 -V | grep MPM"を実行すると、"Server MPM:prefork"と表示されます。

$/usr/sbin/Apache2 -V | grep MPM

Server MPM:     prefork

phpinfo();

Server API :    FPM/FastCGI
10
sravis

しばらく働いた後、自分でやった。以下の手順をご覧ください。

現在実行されているMPM Apacheを確認します。

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

使用可能なMPMモジュールのリスト(mpm_workerがリストされていることを確認してください)

ls /etc/Apache2/mods-available/mpm*

Result:
/etc/Apache2/mods-available/mpm_event.conf  /etc/Apache2/mods-available/mpm_prefork.conf  /etc/Apache2/mods-available/mpm_worker.conf
/etc/Apache2/mods-available/mpm_event.load  /etc/Apache2/mods-available/mpm_prefork.load  /etc/Apache2/mods-available/mpm_worker.load

有効なMPMモジュールを一覧表示します(mpm_workerが有効になっていない場合は、有効にし、mpm_preforkモジュールを無効にする必要があります)

ls -l /etc/Apache2/mods-enabled/mpm*

Result:
/etc/Apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/Apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

MPM_PREFORKモジュールを無効にする

a2dismod mpm_prefork

MPM_WORKERモジュールを有効にする

a2enmod mpm_worker

ApacheがMPM WORKERで実行されているかどうかを確認するには

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

これらのコマンドを実行した後にこのエラーが発生した場合:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

Libapache2パッケージを削除してみてください。

apt-get remove libapache2-mod-php5
28
sravis

ApacheはスレッドMPMを実行していますが、PHPモジュールはスレッドセーフにコンパイルされていません。 PHPを再コンパイルする必要があります。

2
twixi

これらのコマンドを実行した後にこのエラーが発生した場合:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

Libapache2パッケージを削除してみてください。

apt-get remove libapache2-mod-php7.0
0