Apache2 と PHP の相性 | Linux苦闘日記

Apache2 と PHP の相性

intelinside でございます.今回も Linux 関係の話.


前回は,Postfix の設定でちょっとした(?)トラブルがありましたが,それ以外にももう1つ問題が・・・

それは,Web サーバ構築時の問題.


以前に構築したサーバの設定ファイルを持ってきて,構文チェックをしたら なんか変なメッセージが・・・


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


はっ!?何言ってんの?この前は,んなこと一言も言ってねーじゃねーかよ!

無視して,デーモンを立ち上げてみるも,やっぱエラーで起動に失敗.

なんで,Google 先生に尋ねてみることに・・・

したら,なんか apache2 を prefork でコンパイルしなおすと良いとの事.でも,ソースからではなく,apt-get で RPMパッケージでインストールしてるので,困った.なんか代わりが無いかと,apache2 が入っているディレクトリを見てみることに・・・ (/usr/sbin だったかな・・・)

すると!あった!!! apache2.prefork なんてゆー実行ファイルがあった!これを呼び出して起動できるようになればいいんで,service へのシンボリック・リンクを変更.


# ln -s /usr/sbin/apache2.prefork /etc/init.d/apache2


これで再起動!

# service apache2 start

う~ん,無事起動!Webページも問題なく見れましたとさ・・・めでたし,めでたし・・・


※追伸,あとから調べてみたんですが,シンボリック・リンクでわざわざ変更しなくても別の方法があることが発覚!(なんだかな~・・・)それは,以前に USBプリンタ の記事で書いた update-alternatives を使う方法.手順は,


# update-alternatives --config apache2


で現在選択されているのと,その他利用できる apache2 の起動方法があるので,自分が使いたいのを選べばいいです.多分,次のみたいに表示されてると思います.


*+ 1 /usr/sbin/apache2.worker
  2 /usr/sbin/apache2.prefork
3 /usr/sbin/apache2.threadpool
4 /usr/sbin/apache2.perchild


なんで,2を選択して,service コマンドで apache2 を再起動すれば,OKだと思います.


今回はこの辺で.