PHPインストール時のMPMのエラーを手っ取り早く解消する
木村優斗です、こんにちは。
LAMP環境の構築時にPHPをインストールしたら下記のエラーが吐かれた場合の対処法です
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
PHPインストール時のMPMのエラーを解消する
今回はこちらの環境でのお話になります。CentOS 8.0.1
Apache 2.4.1
PHP 7.4.1
原因
Apacehがマルチスレッド(worker)で動作しているのに対してCentOS付属のPHPはマルチスレッド処理に対応していないため
PHPが「マルチスレッドじゃ僕動けないよー!!」と悲鳴を上げています。
これをやると?
エラーは解消されますがApacheがシングルスレッドとして動作します。マシンスペックによってはパフォーマンスを生かしきれないので応急処置です。
なのでパフォーマンスとか今はいいからとにかくエラーを解消したい!という人向けの記事です。
方法
/etc/httpd/conf.modules.dにある00-mpm.confの中を見てください。
おそらく下記のようになっているはず。
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines. See the httpd.conf(5) man
# page for more information on changing the MPM.
# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
LoadModule mpm_worker_module modules/mod_mpm_worker.so
# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so
それをこう!
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines. See the httpd.conf(5) man
# page for more information on changing the MPM.
# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so
何が変わったかわかりましたでしょうか。LoadModule mpm_prefork_module modules/mod_mpm_prefork.soのコメントアウトを外し
LoadModule mpm_worker_module modules/mod_mpm_worker.soをコメントにしました。
その後Apacheの再起動も忘れずに。
ディスカッション
コメント一覧
まだ、コメントがありません