必要に迫られ、新しいPC (Windows)に XAMPP をインストールすることになりました。メインの環境は別のPCにあるので、軽い気落ちで作業開始。インストール自体は迷うところはありません。しかし、設定を進めるうち Apache が起動しなくなってしまい、四苦八苦。その解決までの備忘録です。
XAMPPのエラー
まずは、ドメインルートを変更。ディレクトリを作成して httpd.conf を編集。
次にバーチャルホストの設定です。httpd-vhosts.conf を変更して、hostsファイルを修正。これでいいはず。
そして再起動… ところが起動しません。XAMPPコントロールパネルには、エラーが!
[Apache] Error: Apache shutdown unexpectedly.
[Apache] This may be due to a blocked port, missing dependencies,
[Apache] improper privileges, a crash, or a shutdown by another method.
[Apache] Press the Logs button to view error logs and check
[Apache] the Windows Event Viewer for more clues
[Apache] If you need more help, copy and post this
[Apache] entire log window on the forums
Google での翻訳 ↓
エラー:Apacheが予期せずシャットダウンしました。
これは、ポートのブロック、依存関係の欠落、
不適切な特権、クラッシュ、または別の方法によるシャットダウン。
ログボタンを押してエラーログを表示し、確認します
より多くの手がかりを得るためのWindowsイベントビューアー
さらにヘルプが必要な場合は、これをコピーして投稿してください
・・・ (以下略) ・・・
ネットを検索すると、たくさん出てきました。ポートの競合やら何やら。手当り次第に試してみましたが、どうにもこうにも起動しない。そういえば以前もこんな事あったな~と思いながら、虚しい時間を費やしていました。
apache_start.bat を実行
調べつくして最後に行きついたのが「apache_start.bat を実行してみる」です。XAMPPのインストールディレクトリの直下にあるバッチ。試すだけ試そうと、実行した結果がコレ ↓
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting …
httpd.exe: Syntax error on line 527 of C:/xampp/apache/conf/httpd.conf:
Syntax error on line 50 of C:/xampp/apache/conf/extra/httpd-vhosts.conf:
</VirtualHost without matching <VirtualHost section
Apache konnte nicht gestartet werden
Apache could not be started
続行するには何かキーを押してください . . .
見やすいように改行していますが、原因はすぐに分かりました。
シンタックスエラー、単なる記述ミスだったのです。“VirtualHost” の開きタグの先頭にスラッシュ(/)が余計に付いていた。いくつかのバーチャルホストを定義しようとコピペ・修正を繰り返しているうち、途中で間違っていたようです。
今回の教訓は3つ
いろんな角度から見る
XAMPPコントロールパネルのメッセージ内容だけでなく、apache_start.bat の実行結果も見ることで解決できました。
XAMPPは随分前から開発され、コントロールパネルの表示メッセージも、そのまま引き継いでいるのでしょう。「ポートの競合」は今でも多い原因だと思いますが、原因は他にありました。
一方、Apacheもそれより前から作られていました。開発チームも違うはずだし、エラーの検出・表示方法も違うのだと思います。
原因追求のためには一つの結果だけでなく、できるだけ多くの現象を確認することが大切です。
分かりやすく伝える
もしコントロールパネルに、バッチの実行結果が表示されていたら、こんなに時間がかかる事はなかったでしょう。ぜひ改善していただきたいものです。
これは、ブログやWebサイトを提供する私達にも言えることです。利用者のためになるメッセージ、解決するための情報提供、そして使いやすいサイト造りを目指すべきですね。
進め方を見つめる
この作業を通して考えてみて、反省がいくつかあります。
まずは、自分が何をしたかを落ち着いて見つめること。今回は3つのファイルを編集しただけなので、それをじっくり見直してみればよかったのです。目の前のエラーメッセージに動転して、闇雲にもがくべきではありません。
そして、作業は段階ごとにコミットする(結果を確定させる)ことです。httpd-vhosts.conf の編集は、ひとかたまり毎に行って再起動すれば、それまでの編集が正しいことを確定できたのです。
最後に、大切なファイルはコピーして履歴を残すことです。オリジナルはもちろん、コミットできた時点の内容もちゃんと残しておき、ダメならそこに戻ってそこからやり直せばいいのです。
実はそんな事も考えず、再インストールまで戻ってしまいました。無駄に費やした時間と比べれば、少し考えて見つめた方がどれだけ短時間で済んだか…です。
コメント