備忘録 サーバー

APACHEでPHPインストールの躓き

2012年9月11日

PHP5をインストールし、設定を終わった後APACHEを再起動しようとしたらエラーが発生しました。

# /etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中: [ 失敗 ]
Apache2 HTTP Serverを起動中: [Tue Sep 11 00:30:21 2012] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed

なんでだろう?と色々調べてみたらPHP5インストールの際にメッセージが表示されていると書かれているので早速調べてみると

Apache2 is configured to use worker MPM. But php5-apache2 requires
prefork MPM. Run the following command as root to switch MPM:

/sbin/update-alternatives --config apache2

書いてましたorz

ということで書かれている通りにやってみよう

/sbin/update-alternatives --config apache2

2 プログラムがあり 'apache2' を提供します。

選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/apache2.worker
* 2 /usr/sbin/apache2.prefork

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2←2を選択

後はapacheを再起動

/etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中: [ 失敗 ]
Apache2 HTTP Serverを起動中: [ OK ]

ちょこっと解説すると

preforkはAPACHE1.3から使われている機能

wokerはAPACHE2から使われている機能

だったかな。

プロセスやスレッドの取りまわりとかで違いがあるようです。(wokerのほうがパフォーマンスが良いらしい?)

個人レベルのサーバーでしたらあまり気にしなくてもいいと思います。

場合によりPHPはpreforkじゃないと動けないよ という警告だったのです。

(wokerのまま使いたいならばPHPをリビルドする必要があり少しめんどくさいことになりますしね。)

気が向いたらPHP5のwokerバージョンの備忘録でも作ろうかな。

-備忘録, サーバー
-, , ,