XAMPPのコントロールパネルでApacheを起動しようとすると、「Attempting to start Apache app...」と表示されたまま起動できない――これは多くの場合、ポート80(または443)が他のソフトに使われていることが原因です。この記事では、原因の特定から具体的な解決手順までを、実際に打つコマンド付きで解説します。
netstat -ano | findstr :80 でポート80を占有しているプロセスを特定します。犯人(IIS・VMware・Skype旧版など)を止めるか、それが難しければApache側のポートを80→8080に変更すれば起動できます。まずはエラーログで原因を確認する
XAMPPコントロールパネルのApache行にある「Logs」→「Apache (error.log)」を開くと、起動に失敗した具体的な理由が出ています。ポート競合なら次のような行が見つかります。
(OS 10048)通常、各ソケット アドレスに対するプロトコル、ネットワーク アドレス、 またはポートの使用は 1 つに限られています。 : AH00072: make_sock: could not bind to address 0.0.0.0:80 AH00451: no listening sockets available, shutting down
ポート80を使っているプロセスを特定する
コマンドプロンプト(またはPowerShell)で次のコマンドを実行すると、ポート80を使っているプロセスのPID(末尾の数字)が分かります。
netstat -ano | findstr :80
表示された一番右の数字がPIDです。そのPIDから、どのアプリが原因かを調べます。
tasklist | findstr 1234
| よくある占有元 | 対処 |
|---|---|
| IIS(W3SVC / PID 4 の System) | 「World Wide Web Publishing Service」を停止 |
| VMware(多くは443) | VMware関連サービスを停止、または443を変更 |
| Skype(旧バージョン) | 設定で「ポート80/443を使う」をオフ |
| SQL Server Reporting Services | 該当サービスを停止 |
IIS(World Wide Web Publishing Service)を止める
占有元がIISの場合、管理者権限のコマンドプロンプトで次を実行するか、「サービス」(services.msc)から「World Wide Web Publishing Service」を停止します。
net stop was /y
停止後、再度XAMPPからApacheを起動してみてください。常時IISを使わないなら、サービスのスタートアップの種類を「手動」にしておくと再発を防げます。
占有元を止められない場合はApacheのポートを変更する
競合相手を止められない(業務で必要など)場合は、Apache側のポートを80から8080などに変更します。XAMPPコントロールパネルの「Config」→「Apache (httpd.conf)」を開き、次の2か所を書き換えます。
Listen 8080 ServerName localhost:8080
443(SSL)も競合している場合は、「Config」→「Apache (httpd-ssl.conf)」でListen 443 や <VirtualHost _default_:443> を 4433 などに変更します。保存したらApacheを起動し、ブラウザでは http://localhost:8080/ のようにポート番号を付けてアクセスします。
localhost)を前提に保存されているため、ポートを変えると管理画面のリダイレクトやリンクが崩れることがあります。可能なら競合相手を止めて80番のまま使う方が安全です。それでも起動しないときの確認ポイント
- 管理者として実行:XAMPPコントロールパネルを右クリック→「管理者として実行」
- セキュリティソフト/ファイアウォール:Apacheの通信がブロックされていないか確認
- PCの再起動:一時的にポートを掴んだままのプロセスは再起動で解放されることが多い
- httpd.confの構文ミス:直前に設定を編集した場合、error.logに構文エラーが出ていないか確認
よくある質問(FAQ)
netstat -ano | findstr :80 で占有プロセスを特定するのが第一歩です。tasklist | findstr PID番号 でプロセス名を調べられます。タスクマネージャーの「詳細」タブでPID列を表示して照合する方法もあります。PIDが 4(System)の場合はIISやHTTP.sys関連が多いです。http://localhost:8080/ のようにポート番号を付けてアクセスする必要があります。WordPressなどURLを保持するアプリでは不具合が出ることがあるため、可能なら競合相手を止めて80番のまま使うのがおすすめです。services.msc で該当サービスのスタートアップの種類を「手動」に変更すると、再発しにくくなります。まとめ
XAMPPでApacheが起動しないときの対処を整理します。
- まずerror.logとNetstatボタンで原因を確認
- 最頻原因はポート80/443の競合
netstat -ano | findstr :80で占有プロセスを特定して停止- 止められないなら httpd.conf でポートを8080などに変更
- 管理者実行・セキュリティソフト・PC再起動も確認する
関連として、netstatコマンド完全ガイド・ポートが開いているかチェックする方法・MySQL(ibdata1)が起動しないときの復旧方法もあわせて参考にしてください。

