Windows7でApacheが動かない時に確認・対処すべきこと
Web2017年2月17日
先日、会社に新しく着任された方のPCをセットアップしていたのですが、XAMPPをインストールしてApacheを起動しようと思ったところ、どうにも立ち上がらず。解決には至ったのですが、色々と調べましたので、本記事にてApacheが起動しない場合に確認・対処すべき内容をまとめてみました。
Apacheが起動しない主な原因
設定ファイルに記述ミスがある
主に以下の設定ファイルに不備がある場合、Apacheが起動しないことがあります。
- xampp/apache/conf/extra/httpd-vhosts.conf
- xampp/apache/conf/httpd.conf
- Windows/System32/drivers/etc/hosts
XAMPPをインストールしたデフォルトの状態であればこれが原因であることはまずないと思いますが、ローカルサーバを複数立ち上げられるようにしたり参照ディレクトリを変更している場合は、記述に不備が無いか確認しましょう。
上記を見直しても起動しない場合は、潔くXAMPPを再インストールしてみることをおすすめいいたします。
ポート番号が競合している
Apacheはポート番号80を使用していますが、他のソフトやシステムがこの番号を使用しているとApacheが起動しなくなります。ポート番号80を使っているものがいくつかありますが、主なところを挙げてみました。
Skypeを使用している
Skypeを使用している場合はまずこれが原因の可能性が高いです。Skypeの設定画面で「ポート80を使用」のチェックが入っている場合、これを外すことでポート番号80の競合が解消され、Apacheが起動できるようになります。
Skypeの停止だけで直らない場合
Skypeの停止だけで解決できない場合は、他にもポート80を使用しているソフトがあるかもしれません。以下のコマンドをコマンドプロンプトで打つと、ポート80を占拠しているPIDを確認することができます。
netstat -nao
PIDが「4」となっている場合は、Windowsの何かしらのシステムが占拠している可能性が高いです。以下、そのような場合の主な原因を挙げてみます。
Web Deployment Agent Serviceが起動している
MicrosoftのWeb配置ツールのサービスで、これが起動しているとポート番号80を占拠してしまいます。[スタートボタン]-[コンピュータで右クリック]-[管理]-[サービスとアプリケーション]-[サービス]にこれが表示されている場合は「停止」します。
停止後、XAMPPを一度終了させてからApacheを再起動するとこれで解決することがあります。
Windows BranchCacheが起動している
今回の原因はコレでした。Web Deployment Agent Service同様の手順でこれを停止→無効化したところ、問題なくApacheが起動しました。
XAMPPで起動するApacheのポート番号変更でも解決可能
どうしてもポート80を占拠している犯人が特定できない場合は、XAMPP側で起動するApacheのポート番号を変更することでも解決が可能です。
xampp/apache/conf/httpd.conf
以下の記述に変更を加えます。
Listen 80 → Listen 8080
ServerName localhost:80 → ServerName localhost:8080
xampp/apache/conf/extra/httpd-ssl.conf
以下の記述に変更を加えます。
Listen 443 → Listen 444
virtualhost_default_:443 → virtualhost_default_:444
ServerName localhost:443 → ServerName localhost:444
xampp/apache/conf/extra/httpd-vhosts.conf
httpd-vhosts.confで複数のローカルサーバを管理している場合は、以下の記述に変更を加えます。
NameVirtualHost *:80 → NameVirtualHost *:8080
<VirtualHost *:80> → <VirtualHost *:80>80
まとめ
Skypeが原因でApacheが起動しなかったり、設定ファイルの記述不備で起動しないことはこれまでにもありましたが、まさかWindowsのシステム側でポート80を占拠されているとは思いもよりませんでした。。。もしApacheがうまく起動しない場合は、どうぞ本記事をご参考にしていただければ幸いです。