VineLinuxパフォーマンスアッププロジェクト:0115
■php-apache2(php5-apache2)パッケージを組み込ませて起動させる方法■
apacheのみでWebサーバを起動させるのは問題ないのですが、phpと組み合わせて起動させるとapacheのバージョン2.0以降でVineLinuxの場合、デフォルトではうまく起動しません。これについてはちょっとしたコマンド操作で起動できるようになります。
試してみたところ、apache2-2.0.55パッケージ一式とphp5-5.1.4パッケージ一式に加え、php5-apache2-5.1.4パッケージ(2006年 8月13日現在)のこれらすべてをインストールしたときに問題が発生しました。古いバージョンのphpでも同様の問題が発生するかもしれません。
問題というのは、apache2がインストールしたphpの影響で起動できなくなってしまうというものです。実際起動させようとしてみると
[root@localhost root]# /etc/rc.d/init.d/apache2 start
Starting httpd: [Sun Aug 13 20:59:08 2006] [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
[FAILED]
となってしまい、起動すらできません。
これはapache2のMPM(Multi Processing Module)がVineLinuxの場合、デフォルトでworkerモデルというものになっているためです。これをモデルチェンジすることで解決できます。そのためにはupdate-alternativesコマンドを利用します。
/sbin/update-alternatives --config apache2
このようにターミナル上で実行してください。すると以下のように出力されます。
[root@localhost root]# update-alternatives --config apache2
There are 4 alternatives which provide `apache2'.
Selection Alternative
-----------------------------------------------
*+ 1 /usr/sbin/apache2.worker
2 /usr/sbin/apache2.prefork
3 /usr/sbin/apache2.threadpool
4 /usr/sbin/apache2.perchild
Press enter to keep the default[*], or type selection number:
ここでpreforkモデルの2番を選択します。先ほどの表示に続き、2を入力してEnterキーを押してください。
Press enter to keep the default[*], or type selection number: 2
Using `/usr/sbin/apache2.prefork' to provide `apache2'.
これで完了です。再度apache2を起動すればもうエラーは出ないと思います。