XAMPPをアンインストールした後、再インストールしたのですがApacheがエラーで起動できません。公式のアンインストーラを使ってアンインストールしたのですが、はてさて何が問題だったのか。
目次
エラー内容
3:48:37 [Apache] Problem detected! 3:48:37 [Apache] Port 80 in use by "Unable to open process" with PID 4892! 3:48:37 [Apache] Apache WILL NOT start without the configured ports free! 3:48:37 [Apache] You need to uninstall/disable/reconfigure the blocking application 3:48:37 [Apache] or reconfigure Apache and the Control Panel to listen on a different port 3:48:37 [Apache] Problem detected! 3:48:37 [Apache] Port 443 in use by "Unable to open process" with PID 4892! 3:48:37 [Apache] Apache WILL NOT start without the configured ports free! 3:48:37 [Apache] You need to uninstall/disable/reconfigure the blocking application 3:48:37 [Apache] or reconfigure Apache and the Control Panel to listen on a different port
エラー内容は上記の通り。「ポート80とポート443が”Unable to open process(プロセスを開始できないもの?)”に使用されているためApacheを開始できません」といったところでしょうか。
原因
ポートとはパソコンが通信を行うためのデータの出入口。どうやらここを他のソフトが使用しているためにApacheを起動することができないということらしいです。
ポート80とポート443を使用しているプログラムを調べます。コマンドプロンプトでも調べられるようですが、幸いXAMPPのコントロールパネルに入ることができたので、右上の「Netstat」をクリックすることでも調べられます。
PID 4892ってなんだ と調べてみると「httpd.exe」というファイルだと判明。んで、「httpd.exe」ってなんだ、と調べてみるとなんとApacheでした。
解決?
Apacheが使えないから困ってたのにApacheのせいでApacheが起動できないとはこれ如何に?と思いつつ、何を思ったかXAMPPのApacheをもう一度起動してみた。…できた。( ゚д゚)ポカーン
時間で解決したということはキャッシュのようなもの(?)だったのかもしれませんが、何にせよこのままでは記事にならないので、もう一度XAMPPをアンインストールして再インストール。
再挑戦
アンインストールがきちんとできずApacheのファイルが残っていたという場合もあるようなので、今度はWindowsをセーフモードで立ち上げてからuninstall.exeを起動。再起動して残ったファイルを削除(残ったファイルは前回と違った)。さらに再起動してから再びXAMPPをインストールしました。
すると再び同様のエラーが発生。しかし今回はポートを使用しているプログラムがPID 6052と表示されています。またXAMPPのNetstatで調べてみると今度はPID 6052が見当たりません。それどころかポート80とポート443も見当たりません。
もしやと思ってもう一度Apacheをクリックしてみると問題なく起動。(汗)その後何度か試しても問題なく起動し、Adminも開くことができます。これでは調べようもないため、一度は原因の究明を諦めようかと思いました。
しかしここで思ったのですが、ちょっと時間を置いて直るということはそもそも問題という問題が起きていないのではないか。単に再インストール後再起動でもすればいいのではないかと思い、再びセーフモードでXAMPPをアンインストール→再びインストール→再起動→Apache起動としたところ問題なく起動しました。
ここまで引っ張っておいて単に再起動すればいいだけだったとは我ながらなんと言っていいのか…。
Skypeが問題の場合
80番ポートや443番ポートはSkypeと干渉することが多いようです。
これが場合は場合はSkypeの「ツール」→「設定」→「詳細」→「接続」で「上記のポートに代わり、ポート80と443を使用」のチェックを外せば解決するようです。
インターネット インフォメーション サービス(IIS)が問題の場合
Windows7や8にはパソコンをサーバーとして使用するための機能、「インターネット インフォメーション サービス(IIS)」があり、ポート80はこの機能とバッティングすることもあるようです。
これが問題の場合は、コントロールパネル→プログラムと機能→Windowsの機能の有効化または無効化 から上記機能を無効化すればXAMPPとの衝突は避けられます。