それ、メッセージ花火でわざわざ伝えること?

質問させていただきます。
WEBサーバとして稼動しているサーバからhttpdダウンのアラートを検出し、サーバにログインしてservice httpd restartを行うと

Starting httpd: [w mon dd hh:mm:ss YYYY] [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]

となりapacheが起動しません。
/etc/sysconfig/httpdにて
HTTPD=/usr/sbin/httpd.worker
の行をコメントアウトしてhttpdを再起動するとhttpd自体は立ち上がります。

しかしながら原因が不明なため、どなたか原因についてお分かりになりましたら教えてください。

以上、よろしくお願いいたします。

A 回答 (3件)

>workerモードで動かす設定は、etc/sysconfigあたりで指定できたと思いますが...


prefork,workerの選択はコンパイル時にしか決められない。 みたいな~
起動時に切り替えたのなら、それぞれのhttpd実行ファイルをあらかじめコンパイルして複数用意するしかない。 みたいな~

>HTTPD=/usr/sbin/httpd.worker
この設定は、初めから利用していたのかなぁ?それとも、トラブルが発生した時に確認したら挿入されていたのかなぁ? どちらなのかちょーきになるって感じー

初めからworkerを使用して突然PHPが動かなくなったのならぁ、PHPが自動で更新されたりしてないですかぁ? みたいな~

preforkを使用していたのにぃ、突然workerに変更されていたならぁ、誰かが、workerをインストールしたかもぉ。みたいな~

とりあえず、PHPとapacheのバージョンに変化が無いかみてみたらぁ?って感じー
あと、apt-get等で自動更新しているならぁ、dpkg.logみてupdateされちゃってないか見てみてー。 って感じー

会社のサーバ上の話をしているならぁ、第3者が書き換えた可能性も捨てきれないって感じぃ?
この場合、apache再起動の前にログインした記録を洗ってみるのがいいかもー
    • good
    • 0
この回答へのお礼

チョーOK的~みたいなみたいな~。
ありがとうっていうか、アドレーションデミトリオス~って感じ。

とても参考になりました~。

お礼日時:2009/09/30 18:51

う~ん、他の人が書き換えたとしか言えないような気がしますね。



workerモードで動かす設定は、etc/sysconfigあたりで指定できたと思いますが...
workerで動かしたほうがいいなんて情報をえて、設定だけ書き換えて、リスタートしてなかったとか..

とりあえず、システムログとかでログイン状態を確認するですかね...
    • good
    • 0

立ち上がらない理由はエラーログの通りかと・・・



つまり、
「apacheさんがぁ、スレッド方式MPM(※1)を利用しようとしたらぁ、
PHPモジュールがスレッドセーフでコンパイルされてないって感じ~。
ちょーむかつくって感じ~ 。
どぉーしても、※1を利用したいなら
PHPモジュールをスレッドセーフで再コンパイルしてね(はぁと)」
と、ログがおっしゃっています

※1:httpd.workerって感じ~

>しかしながら原因が不明なため
ログにしっかり原因が書いてありますよ・・・

対策としては
1.worker(スレッド方式)をあきらめる
2.PHPモジュールをスレッドセーフで再コンパイルして使用する

この回答への補足

ご回答ありがとうございます。
ちょっとこちらの言葉が足りなかったようです。

「MPMを切り替えた覚えはないのになぜ勝手にworkerに切り替えられちゃっているの~?」

ってなノリです。

補足日時:2009/09/28 14:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!