会社の共有PCにXAMPP入れる際に「Apachが起動しないです><」状態になったので改めてまとめてみる。
Apachが起動しない場合、ポートの問題のことが多いので、多くの場合はこれで原因特定~解決までいけるのではないかと思います。・・・たぶん。
ネットで調べても「Skype止めたら起動しますよ」ぐらいしか書いてないことが多いので、調査の方法から書いておけば、環境依存(特定のアプリとの衝突)なんかにも対応できそうなので知っておくと便利かと思います。
普通にXAMPPコントロールパネルから起動しようとしてもダメだった場合に以下の手順で。
▼
1)Apachの強制起動を試みる
以下のファイルを実行する。
/xampp/apache_start.bat
>Diese Eingabeforderung nicht waehrend des Running beenden
/>Bitte erst bei einem gewollten Shutdown schliessen
/>Please close this command only for Shutdown
/>Apache 2 is starting ...
/>(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、
/>またはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to address 0.0.0.0:80
/>no listening sockets available, shutting down
/>Unable to open logs
/>
/>Apache konnte nicht gestartet werden
/>Apache could not be started
/>続行するには何かキーを押してください . . .
起動すれば問題ないが、コマンドプロンプトでこんなのが返ってくる場合がある。
> make_sock: could not bind to address 0.0.0.0:80
ここ!
これはポート80が使用されていてApachが起動できないことを意味している。
▼
2)ポート80を使っているプロセスを特定する
コマンドプロンプトを起動して以下を実行。
netstat -oan
ポートとプロセスの状態が見れるので、
[Loval Address]0.0.0.0:80 を使用している [PID] を確認し、覚えとくなり開いたままにするなりする。
※netstatコマンドはポートを利用しているプロセスを調べることができる。
▼
3)ポート80を使っているプロセスからアプリケーション名を特定する
タスクマネージャ>プロセス を開く
さらに、 表示>列の選択 で、「PID(プロセル ID)(P)」をチェックして表示。
プロセス一覧にPIDが表示されるようになるので、ステップ(2)で確認したPIDを使用しているアプリケーションを特定。PIDでソートすると分かりやすい。対象のPIDを探し、そのイメージ名の列を確認すると、それがポート80を使っちゃってるアプリケーション名です。
▼
4)ポート80を使用しているアプリケーションを停止する。
ステップ(3)でXAMPP起動の障害になっているアプリケーションが特定できたので、これを停止すればポートの問題で起動できなかったXAMPPは起動するはず。
実際にどんなアプリケーションがひっかかるかと言うと、IIS絡みだったり、Skypeだったりする。それを停止する。
例えば、今回は inetinfo.exe がひっかかったりした。 ←これはIISを停止すると消える。
なお、心当たりのないアプリケーションをいきなり停止したりすると問題があるかもしれないので、その辺はプログラム名でググったりして、それが何であるか特定してから停止するように。この辺は自己責任で。
停止後に再度ステップ(2)~(3)を行い、最新のポート状況をチェックする。
0.0.0.0:80が空いたらXAMPPコントロールパネルからApachを起動。
ちなみに正常起動時にステップ(2)~(3)の手順を行うと、ポート80をXAMPP(Apach.exe)が使用していることが分かる。
