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だと思います.
今回はこの辺で.