Apache enable worker mpm


10

FastCGIとPHP5-FPMをubuntuで動作するように構成しました。

しかし、私は「apache2 worker mpm」モジュールをインストールし、apache2のデフォルトである「prefork mpm」を構成して置き換えたいと考えました。

私が見つけたすべてのCentOSの中だった/etc/sysconfig/httpdだけ置くHTTPD=/usr/sbin/httpd.workerようになります「ワーカーMPMは」有効。

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

  2. また、apacheのコンパイル済みモジュールを"/usr/sbin/apachectl -l"一覧表示"prefork.c"すると、デフォルトで使用しているため、一覧表示されていると言われるものは一覧表示されません。しかし、私はやるとき"/usr/sbin/apache2 -V | grep MPM"、それは示して:「preforkのサーバーMPMは」いくつかのいずれかがこれをしてください説明することができますか?

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

Server MPM:     prefork

phpinfo();

Server API :    FPM/FastCGI

回答:


29

しばらく仕事をした後、自分でやった。以下の手順を見つけることができます。

現在実行されている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

2
指示に従いましたが、これを取得しました:* Webサーバーapache2の再起動[失敗] * apache2 configtestが失敗しました。構成テストの出力は次のとおりです:AH00534:apache2:構成エラー:複数のMPMがロードされました。アクション 'configtest'が失敗しました。Apacheエラーログに詳細情報が含まれている可能性があります。
ネオビー

完璧です:)それは私のために働いています。
chirag jagani

「Apacheはスレッド化されたMPMを実行していますが、PHPモジュールがスレッドセーフになるようにコンパイルされていません。PHPを再コンパイルする必要があります」というエラーが表示され、libapache2-mod-php5を削除しても効果がありません。
iCyborg 2017年

2

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


0

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.