前回の記事では、WordPressをローカル環境で動かすための「XAMPP」をWindows環境にインストールする方法を解説しました。

インストール完了後、XAMPP Control Panel からApacheやMySQLを起動することで、WordPressを利用するための環境が整います。しかし、環境によっては正常に起動できず、エラーメッセージが表示される場合があります。

本記事では、XAMPPでApacheを起動した際に発生したエラーの原因調査と対処方法について説明します。

XAMPPの起動時に発生したエラー

実際に今回の検証環境では、Apacheの起動時に以下のエラーが発生しました。


エラーメッセージは、

 [Apache] Problem detected!

 [Apache] Port 80 in use by “Unable to open process” with PID 4!

 [Apache] Apache WILL NOT start without the configured ports free!

 [Apache] You need to uninstall/disable/reconfigure the blocking application

 [Apache] or reconfigure Apache and the Control Panel to listen on a different port

日本語に翻訳すると、

[Apache] 問題が検出されました。
[Apache] PID 4 のプロセスによってポート80が使用されています。
[Apache] Apacheは、設定されたポートが空いていない限り起動できません。
[Apache] ポートを使用しているアプリケーションをアンインストールするか、無効化または設定変更を行う必要があります。
[Apache] または、ApacheおよびControl Panelの設定を変更し、別のポートで待ち受けるようにしてください。

Apacheを起動しようとしたところ、「ポート80が既に使用されているため起動できない」というエラーが発生しています。Windows上の別のサービスがポート80を使用しているため、Apacheが同じポートを利用できない状態になっているようです。


エラーの原因を確認する

今回発生したエラーでは、Apacheがポート80を利用できないため起動に失敗していました。
Apacheは初期設定でポート80を使用します。しかし、別のプログラムがすでにポート80を使用している場合、Apacheを起動できません。
まずは、どのプログラムがポート80を使用しているのか確認してみましょう。

XAMPPのNetstatで探す

  1. XAMPP Control Panel 画面の右側にある [Netstat] ボタンをクリックします。


  2. Netstatで確認すると、ポート80を使用しているプログラムが System であることが分かります。
    PIDの値の 4 もApacheのエラーメッセージと一致しています。


Netstatの結果から、ポート80を使用しているプログラムが「System」であることが分かりました。
しかし、Systemという情報だけでは、実際にどのサービスがポート80を使用しているのか判断できません。
Windows環境でポート80を使用する代表的なサービスとして、IIS(インターネット インフォメーション サービス)があります。

そこでまずは、IISが有効になっていないか確認してみます。

IISの設定を確認する

  1. [Windows] + [R] キーを押して「ファイル名を指定して実行」に「inetmgr.exe」と入力してIISマネージャーを起動します。


  2. IISマネージャーを起動したら、ローカル コンピュータ → [サイト] → [Default Web Site] を選択します。


  3. [Default Web Site] を右クリックして、[バインドの編集] を選択します。


  4. IISのポート番号が「80」であることが確認できました。

Apacheの初期設定ではポート80を使用するため、両者が同じポートを利用しようとして競合が発生していたことが分かりました。


Apacheのポートを変更する

IISがポート80を使用しているため、Apacheは同じポートを利用できず起動に失敗していました。
通常はIISを停止する方法もありますが、今回はIISをそのまま利用できる状態を維持するため、Apacheの待ち受けポートを変更します。

  1. XAMPP Control Panel 画面でApacheの [Config] ボタンをクリックします。


  2. 表示されたメニューから [Apache (httpd.conf)] を選択します。


  3. httpd.conf が開きます。


  4. 「Listen」と「ServerName」の設定を変更して httpd.conf を保存します。
    今回はポート番号を「80」を未使用のポート「801」に変更します。

    【変更前】
    Listen 80
    ServerName localhost:80

    【変更後】
    Listen 801
    ServerName localhost:801

  5. XAMPPを再起動します。起動時のエラーは無くなりました。


  6. Apache の [Start] ボタンをクリックします。Apache も正常に起動しました。


まとめ

XAMPPでApacheを起動した際に発生した「Port 80 in use by “Unable to open process” with PID 4!」のエラーは、Windowsの「System」がポート80を使用していることが原因でした。
このポートは、IIS(インターネット インフォメーション サービス)が利用していました。
今回はIISを停止せず、Apacheのポートを80から未使用のポートに変更することで、Apacheを正常に起動できるようになりました。


以上、XAMPPでApacheを起動した際に発生したエラーの原因調査と対処方法について解説しました。