ページ

2011年8月18日木曜日

xamppのhttpdが起動しない件についての思考メモ

経験からSkypeが80番ポートを塞いでる場合が多いのでxamppコントロールパネルからportchekする.
しかし80番ポートは開いていた.
一応Skypeをアンインストールしてみて,httpdを起動するがやはり起動しない.

ポート関係の問題ではないと予想し,httpdの起動でこけてる気がしてきた.
直接httpdを起動すると案の定起動でエラーを出して止まっている.

win7のエラーログはあるのかを調べる.
「管理ツール」->「コンピュータの管理」->「イベントビューア」->「カスタムビュー」->「管理イベント」

障害が発生しているアプリケーション名: httpd.exe、バージョン: 2.2.12.0、タイム スタンプ: 0x4a66dd7b
障害が発生しているモジュール名: libapr-1.dll、バージョン: 1.3.7.0、タイム スタンプ: 0x4a66d895
例外コード: 0xc0000005
障害オフセット: 0x00005712
障害が発生しているプロセス ID: 0xccc
障害が発生しているアプリケーションの開始時刻: 0x01cc5d0659c2bb94
障害が発生しているアプリケーション パス: C:\xampp\apache\bin\httpd.exe
障害が発生しているモジュール パス: C:\xampp\apache\bin\libapr-1.dll
レポート ID: 97726369-c8f9-11e0-9979-005056c00008
libapr-1.dllが怪しい.

libapr-1.dllのバージョン差異を解消
・Subversionのbinにあるlibapr-1.dllをApacheのbin内に上書きコピーする
・そのままだとApacheの方のlibapr-1.dllの方がバージョンが新しいために動かないらしい
 参考:[Trac] Re: Can't use svn on 0.11 trunk
3. This one was the real pain... The version of libapr-1.dll in the Apache install was newer than the version in the subversion install. I replaced the copy in the Apache install with the copy from subversion (1.2.8.0) and everything works perfectly.
・libapr-1.dllを変えてしまってApacheが正常に動くかは不明なので、しばらく様子を見
これが原因かわからないがそれっぽい.
正規のバージョンが何なのか調べる.
その前にapacheのバージョンを調べる.
httpd -vなんだけどhttpdの起動でこけてるんだから調べれない.→プロパティで見れることに気付く.→2.2.12
公式から同バージョンのapacheを落としてくる.→http://archive.apache.org/dist/httpd/
httpdのソースコードだった.

対象のdllってどこにあるのかが分からない.
apache portable runtime projectという製品名から何をするdllなのかを調べる.→http://ja.wikipedia.org/wiki/Apache_Portable_Runtime
互換性をサポートしているっぽい.

時間の関係上 2.2.12に合うlibapr-1.dllを探すのをやめてApache単体でインストールすることにする.→http://ftp.kddilabs.jp/infosystems/apache//httpd/binaries/win32/httpd-2.2.19-win32-x86-no_ssl.msi



案の定・・・予想の通り

0 件のコメント:

コメントを投稿