XAMPPのApacheが起動しない!ポート番号の変更でバッティングの解消方法
2019/02/24
XAMPPの Apacheが起動しない原因を確認する
XAMPPのエラーメッセージの内容を確認
XAMPPをインストールしてみたけど、下記のような赤いエラーメッセージが表示されて Apacheが起動しない!そんな場面は多々あると思います。
というか、Windows環境に XAMPPをインストールした場合は、ほぼエラーメッセージが出ると思っておいていいでしょう。
Problem detected! Port 80 in use by "Unable to open process" with PID 4! Apache WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure Apache and the Control Panel to listen on a different port Problem detected! Port 443 in use by "C:\Program Files (x86)\Skype\Phone\Skype.exe" with PID 12084! Apache WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure Apache and the Control Panel to listen on a different port
このエラーメッセージから 2つのエラーが発生したと書いてありますが、2つの内容は同じです。
「XAMPPで利用する 80番ポートと 443ポートが他のプログラムと使用がバッティングしていますので、Apacheを起動できません。」
というものです。
また、それぞれ下記のとおりバッティングしているプログラムに対する情報も記載してあります。
「80番ポートは『Unable to open process』が使用していて、443ポートは『Skype.exe』が使用しています。」
80番ポートは HTTPが標準で利用するポートで、443番ポートは HTTPS(SSL)で利用するポートです。
その HTTP、HTTPSのそれぞれで利用する 80番、443番のポートを XAMPPの中にある Apacheが Webサーバとして使うのですが、他のプログラムがすでに利用しているため起動できない、というエラーです。
XAMPPの Apacheのエラー解消の選択肢の確認
対応の選択肢は 2つ。
・XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する
・他のプログラムが使っている 80番ポート、443番ポートを開放する
2つの選択肢のメリット、デメリットは以下のようになります。
「XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する」のメリットは、
XAMPPの設定のみで対応が可能なことから、作業内容を比較すると作業は簡単と言えます。また、確実に不具合を解消することが可能です。
ただ、configを変更しますので、エンジニア向きと言えるかもしれません。
また、作成したサイトを見る際には下記の様にポート番号付きの URLになります。
http://localhost:8080
「XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する」の対応を行い、ローカル環境にドメインを設定した場合もポート番号付きの URLになりますので、ドメインでアクセスできる環境を作りたいときはこの方法は採用できません。
アクセスの URLの一例
http://example.com:8080
「他のプログラムが使っている 80番ポート、443番ポートを開放する」のメリットは、「XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する」の対応を行い、ローカル環境にドメインを設定した場合、ポート番号なしでアクセスが可能になることです。
アクセス時の URLを本番環境とも一致させる必要があるなどの制約がある場合はこちらの方法を採る必要があります。
アクセスの URLの一例
http://example.com
また、configファイルを編集せず、Windowsの操作(GUIの操作)だけで対応が可能なため、非エンジニア向きといえるかもしれません。
ただ、80番、443番ポートがバッティングしているプログラムが、ここで想定しているプログラム以外のものであった場合は、問題が解消しない可能性、追加の対応の必要性があります。
XAMPPの Apacheのエラー解消の選択肢のまとめ
2つの方法のメリットをまとめると、私のようにローカルの実験環境として使うため、URLにポート番号が入っていてもまったく気にしない場合は、前者の「XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する」を選択するといいでしょう。
URLを所定のものにする必要がある場合は、「他のプログラムが使っている 80番ポート、443番ポートを開放する」を選択するといいでしょう。
あとから変更することもできますので、よく分からない方は前者の「XAMPPの Apacheが使うポートを変更する」を選択しておけばいいのではないでしょうか。
XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する
「XAMPPの Apacheが使うポートを 80番、443番から別のものに変更する」の方法は、XAMPPに入っている Apacheが使うポートを標準仕様の 80番、443番から別の番号に変えることで、バッティングを回避する、という方法です。
あとからインストールした XAMPPの Apacheがバッティングしているので、あとからインストールした XAMPP側を変更する、という考え方ですね。
XAMPP自体の設定を変更しますので、確実に対応が可能です。
1.httpd.confを編集
httpd.confファイルを編集します。
コントロールパネルの「Config」-「Apache(httpd.conf)」を選択し、httpd.confファイルを開きます。

もしくは、ファイル実体は「c:\xampp\apache\conf\httpd.conf」にありますので、これを直接開いても問題ありません。
バージョンによって違いますが、40~60行目辺りの「Listen 80」を変更します。
「80」で検索をすると探しやすいでしょう。
【変更前】 #Listen 12.34.56.78:80 Listen 80 【変更後】 #Listen 12.34.56.78:80 Listen 8080
続いて、180~230行目辺りの「ServerName localhost:80」を変更します。
こちらも「80」で検索すると分かりやすいでしょう。
【変更前】 ServerName localhost:80 【変更後】 ServerName localhost:8080
今回は、標準の「80」番ポートに対して「8080」番ポートを指定しています。
ポート番号は「0」~「65535」まであり、他のプロトコルで使用していないポート番号であれば何番でもいいのですが、0~1023番までは使われている可能性が高いため、大きく桁数を増やす方が安全です。
そのため、HTTPの標準ポート「80」に対して「80」を重ねる「8080」を使っている方が多いような気がします。
詳しくは、下記の Wikiを参照してください。
https://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7
2.httpd-ssl.confを編集する
「httpd.conf」同様に、コントロールパネルの「Config」-「Apache(httpd-ssl.conf)」を選択し、httpd-ssl.confファイルを開きます。
ファイル実体は「c:\xampp2\apache\conf\extra\httpd-ssl.conf」です。
こちらもバージョンによって違いますが、30~50行目辺りの「Listen 443」を変更します。
「443」で検索をすると探しやすいでしょう。
【変更前】 Listen 443 【変更後】 Listen 44380
今回は、標準の「443」番ポートに対して「44380」番ポートを指定しています。
先に説明したように「443」に「80」を重ねたものになります。
※XAMPP環境でも SSL接続の https://... でアクセスしたい場合は、VirtualHostの設定なども必要になりますが、いずれ別記事でご紹介します。
3.XAMPPの Apacheを再起動
前項で設定した内容を反映させるため、XAMPPのコントロールパネルから、Apacheを再起動します。(コントロールパネルの「Start」をクリックします。)
これで XAMPPが起動するようになります。
他のプログラムが使っている 80番ポート、443番ポートを開放する
前項の対応方法は、XAMPPが使うポートを変更する方法でしたが、この対応方法は、80番、443番ポートを XAMPPで使用するために、それらのポートをすでに使っている側のプログラムを違うポートに変更することでバッティングを回避する、という方法です。
Windowsに XAMPPをインストールした場合、IIS、Skypeとバッティングしている場合が多いため、その対応の紹介になります。
それ以外のプログラムがバッティングしている場合は、紹介する対応ではバッティングが解消しない場合もあります。
また、ここで紹介している画面は Windows10です。それ以外の場合は読み替えてください。
1.バッティングしているプログラムを確認
XAMPPの Apacheを起動しようとしたときに表示されるエラー内容を確認します。

表示されているエラーが下記の 2つであることを確認します。
「Port 80 in use by “Unable to open process” with PID 4!」
「Port 443 in use by “C:\Program Files (x86)\Skype\Phone\Skype.exe” with PID 12084!」
これ以外のプログラムがポートを使用している場合は、そのプログラムのポート番号を変更する方法を確認してください。
80番ポート・IIS(インターネット・インフォメーション・サービス)の停止
「Port 80 in use by “Unable to open process” with PID 4!」のエラーの内容は、「『PID 4(プロセスID 4)』が 80番ポートを使用しています。」というものです。
「PID 4(プロセスID 4)」をタスクマネージャーで見たものが下記になります。

詳細は割愛しますが、Windowsのシステムが 80番ポートを使用しています、ということで、Windows自体がサーバ機能を持っていることを示しています。
これは、Windowsに標準で実装されている Webサーバの IIS(Microsoft Internet Information Services)が稼働していて、80番ポートを使用していることを示しています。
ということで、80番ポートを開放するには、IISを停止します。
インターネットインフォメーションサービスの停止の手順
画面右下にある「スタートメニューボタン」を右クリックし、「コントロールパネル」を表示し、コントロールパネルの中の「プログラムと機能」を選択します。

表示される「プログラムと機能」のウインドウの左側にあるメニューの「Windowsの機能の有効化または無効化」を選択します。

表示される「Windowsの機能」のウインドウから「インターネットインフォメーションサービス」を探して、「■」をクリックしてチェックを外します。
下記の確認メッセージが表示されますが「はい」をクリックして続行します。


これでバッティングしていた 80番ポートは解放されました。
443番ポート・Skypeのポート番号変更
「Port 443 in use by “C:\Program Files (x86)\Skype\Phone\Skype.exe” with PID 12084!」のエラー内容は、「『Skype.exe』が 443番ポートを使用しています。」というものです。
そのため、443番ポートを使用している Skypeの設定を変更します。
Skypeの 443番ポートの変更
Skypeのメニューから「ツール」-「設定」を選択し、Skypeの設定画面を表示させます。
表示された設定画面の左メニューの「詳細」「接続」をクリックし「Skypeのインターネット接続設定」画面を表示します。

「追加の受信接続にポート 80と 443を使用」に入っているチェックを外して「保存」をクリックすることで設定が完了します。
Skypeの再起動が必要な場合もありますが、これでバッティングしていた 443番ポートも解放されました。
これで XAMPPが起動するようになります。
アンインストールした XAMPPの Apacheが残っている場合もある
XAMPPが起動しない場合の原因は、ここまで説明した内容がほとんどなのですが、XAMPPのバージョンアップをする場合や、インストール失敗などの理由で、XAMPPをアンインストールしたのち、再インストールした場合などは、XAMPPの Apacheのプロセスが残っていることが原因で XAMPPが起動しない場合があります。
その残った Apacheのプロセスが原因で 80番ポートが使えなくなっている場合もありますので、XAMPPをアンインストールした場合などは、PCを一度再起動すると起動できるようになる場合もあります。
XAMPPの MySQLが使うポートを 3306番から別のものに変更する方法
MySQLは 3306番というポートを使っていますが、Apacheと同じく、この使用しているポートが他のソフトが使用している場合、それがバッティングすることで起動しなくなることがあります。
そのため、MySQLのポート番号を変更する方法を解説します。
設定ファイル「my.ini」を編集

コントロールパネルの「MySQL」の列の「Config」-「my.ini」を選択し、「my.ini」ファイルを開きます。
もしくは、ファイル実体は「c:\xampp2\mysql\bin\my.ini」にありますので、これを直接開いても問題ありません。
バージョンによっても違いますが、「my.ini」ファイルの 20行目、28行目に「port = 3306」という表記がありますので、これを変更します。
想定の行数にない場合は「3306」で検索すると探しやすいでしょう。
# The following options will be passed to all MySQL clients [client] # password = your_password port = 33060 socket = "C:/xampp2/mysql/mysql.sock" # Here follows entries for some specific programs # The MySQL server [mysqld] port= 33060 socket = "C:/xampp2/mysql/mysql.sock" basedir = "C:/xampp2/mysql" tmpdir = "C:/xampp2/tmp" datadir = "C:/xampp2/mysql/data"
上記の例では、「3306」を「33060」に変更しています。
先にも書きましたが、ポート番号の指定は他のプロトコルで使用していないポート番号であれば何番でも問題ありません。
MySQLのポート番号を変更する場合は、「3306」の後ろに「0」~「9」の数値を追加することが多いのではないか、と思います。
これで MySQLのポート番号の設定は変更されましたので、MySQLが起動するようになっていると思います。
XAMPPの関連記事
WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使うXAMPP本体や PHPのバージョンアップをせずにもう一つXAMPPをインストールして複数の環境を共存させる方法
XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説
XAMPPにVirtualHostを設定しドメイン、ドキュメントルートを設置する方法
XAMPPのApacheが起動しない!ポート番号の変更でバッティングの解消方法
MySQLのタイムゾーン(mysql_tzinfo_to_sql)の設定方法・XAMPP環境の解説も
XAMPPのWordPressの更新でFatal error: Maximum execution time of 30 seconds exceededのエラーが発生して失敗する場合の対処方法
XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる
XAMPPの Apacheが起動しなくなった場合の対処方法
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
その他の「xampp」に関する記事一覧
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-

-
Windowsで環境変数のパスの設定方法解説。不具合時のチェックポイントも紹介
Windowsで環境変数であるパス(path)の設定方法の解説。標準的な解説に加え、うまくいかない場合のチェック方法や別の設定方法の解説も。うまく設定できない状況は極力なくなるはず。
-

-
XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説
パソコンに LAMP環境を簡単に構築することができるパッケージ「XAMPP」。そのインストール方法を詳細解説。インストール後の不具合やカスタマイズ方法についても説明。
-

-
PHPを勉強するための環境を構築するにはXAMPPが最適
PHPを勉強する環境としてローカル環境を構築するには XAMPPが最適。その解説です。
-

-
WindowsXPから Windows7にアップグレードして分かったこと
WindowsXPから 7にアップグレードする際に不安だったバックアップ、ドライバ、32Bit版 64Bit版について書いています。
-

-
秀丸の現在開いているファイル名をフルパス付で取得する方法をマクロで作成
秀丸で開いているファイル名をフルパス付で取得するマクロを作成。たった1行のマクロながらとっても便利。プログラムを作る方なら作成して置いて損はないマクロですね。
-

-
XAMPPにVirtualHostを設定しドメイン、ドキュメントルートを設置する方法
XAMPPにVirtualHostを設定し、DocumentRootを設置する方法を2つ紹介。ポートを指定してアクセスする方法とhostsを設定してドメインでアクセスする方法。エラーの解消方法も解説。
-

-
XAMPP本体や PHPのバージョンアップをせずにもう一つXAMPPをインストールして複数の環境を共存させる方法
パソコンに簡単に LAMP環境を構築することができるパッケージソフト「XAMPP」。XAMPPのバージョンアップや、PHPのバージョンに合わせて複数の環境を構築する場合の手順を解説。
-

-
Windowsのメモリ不足はUSBメモリに仮想メモリをおいて高速化
Windowsでメモリ不足の時はUSBメモリ上に仮想メモリ(ページングファイル)設定で解決します。
-

-
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
メールサーバが設定されていない、ローカルの XAMPP環境からメールを送信する方法の解説です。
-

-
XAMPPの Apacheが起動しなくなった場合の対処方法
ローカルのXAMPP環境で Apacheが起動しなくなる原因の多くはポートのダブり。その対処方法です。
Comment
初めまして、ワードプレス超初心者です。ローカルサイトを構築しようとしてXamppをダウンロードしましたがコントロールパネルに下記のようなメッセージがでて身動き取れなくなってしまいました。行き着いた原因はその中にあるポート3306が2箇所で使われていることらしい、です。
Port 3306 in use by “C:\Bitnami\WORDPR~1.8-1\mysql\bin\mysqld.exe –defaults-file=C:\Bitnami\WORDPR~1.8-1\mysql\my.ini wordpressMySQL
MySQL WILL NOT start without the configured ports free!
You need to uninstall/disable/reconfigure the blocking application or reconfigure MySQL and the Control Panel to listen on a different port
この対処はどのようにすれば良いでしょうか?超初心者用にご回答いただければ幸いです。
white-raccoon さん、コメントありがとうございます。
MySQLのポート番号の変更方法について、記事を追記しました。
ご確認をお願いいたします。