サイト死亡してました

2008/06/28 2008/06/29

16:00~17:00頃の1時間程、Apacheが死んで閲覧不能に陥っていました。

なんとか復旧しましたが、実際は冷や汗かきながら15:00頃からバタバタしてました…。

発端は、Subversionだったりします。
元々mfworkとhcmsの開発はPDT(EclipseでのPHP開発プラグイン)で、かつSubclipseを使って行なっていたのですが、EclipseにUpdateをかけてたらなんだか動きがおかしくなったのでPDT自体を入れ直した所、Subclipseの動きがおかしい。
Subversionがおかしくなったかな?と思い、新版入れ直すかとサイトを見に行ったら1.5.0が公開されてたので、早速ソースからコンパイルを始めました。

そうしたらmake中に、

libaprutil-1.so: could not read symbols: File in wrong format

というものが。
自宅サーバーはx86_64なので、何かが悪くて32bitライブラリを見に行っちゃってるのかなぁ?と思い、apr-utilを入れ直すためにApacheを2.2.9に上げてみることにしました。
-enable-sharedと–with-berkeley-dbが効かなくなったりと多少2.2.6の頃から-コンパイルオプションが変わってましたが、大きな問題なくmake installまで終了。

が、Apacheを一度再起動しようと、service apache stopした所、

httpd: Syntax error on line 238 of /xxxxx/conf/httpd.conf: Cannot load /xxxxx/modules/mod_perl.so into server: /xxxxx/modules/mod_perl.so: wrong ELF class: ELFCLASS64

といって怒られました。
試しに、mod_perlの記述を外してみても他のモジュールで同様のエラーが。
落とせないのでプロセス強制終了。(ここが16:00)
で、起動しようとしても変わらず…

とりあえず2.2.6にApacheを戻そうとそちらを再インストールして起動すりゃ一応は復旧するだろうと思ってたら、あっさり裏切ってくれました。
現象変わらない…。

一体何をした!?としばらく考えてみて、ハッと思った事が。
あるアプリを入れる為に、gccでコンパイルされるものが32bitで強制コンパイルさせるようにgccの実行ファイルを置き換えていたのを。
速攻戻して、2.2.6をインストールした所、すんなり動きました。

で、2.2.9もやってみたところ、あっさり完了。
Subversion 1.5.0も何事も無く入りました。

…要はApacheをコンパイルした時に強制32bitコンパイルされてしまっており、けどApacheモジュールは64bitでコンパイルされていたのでダメじゃんと怒られていたわけでした…。

とりあえず元に戻って良かった…。

最近なんだか手を出したものでハマる事が多いような気が…

関連記事

関連記事はありません。

 

コメントとトラックバック

    コメントはありません

    コメントを残す

    CAPTCHA


    トラックバックURLhttps://e-tune-mt.net/ylab/529/trackback