はじめに
久しぶりにWindows環境でPHPを書こうとしたら、XAMPPのApacheが動かなくてハマったので対処方法を記載します。
環境
Windows 10 Home(Windows 7からのアップグレード)
XAMPP v3.2.1
何が起こったのか
久しぶりにPHPのコードを動かすためにXAMPPを起動したところ、いきなりApache関連の真っ赤な文字が・・・
特に気にせず、[Start]ボタンを押してみましたが、もちろん起動するはずもなく、今度は別のエラーが表示されてしまう状態に。
思い当たる節が
何回か[Start]ボタンを押してもやはり起動しないので、おとなしく赤文字を読むことに。
XAMPP起動時に出力された文章を読むと「PID 4が80番ポートを使っているよ!」との、過去に見たことがある内容が書いてありました。
これ昔からXAMPPでよくある内容で、すぐに原因がSkypeであるのではないかと思い、意気揚々とSkypeの設定画面へ。
Skypeはデフォルトの接続設定で「追加の受信接続にポート80と443を使用」っていう項目にチェックが入っており、このままだと80番ポートや443番ポートがSkypeに使用されてしまいます。
が、Skypeの設定画面を見てみると既にチェックが外れている事実orz
当てが外れたので、おとなしくググってみると、Skypeの問題の他にもう一つの問題があることを発見。
問題の終息
実はこの問題、掲題にもあったWindows 10が問題を起こしていた張本人?でした。
何が問題だと言うと、Windows 10ではMicrosoftが誇るWebサーバーサービスであるIISがデフォルトで有効になっています。
この事象はWindows 7からバージョンアップしてWindows 10になった私の環境も例にもれず有効になっていたわけで、そのために80番ポートが占有されていました。
IISを無効にする
Windows 10でIISを無効にするには以下の手順を事項します。
- コントロールパネルを開く(以降の説明はコントロールパネルの表示方法がカテゴリに設定されているものとする)
- [プログラム] => [Windowsの機能の有効化または無効化]の順番にクリックします。
- [Windowsの機能]内の[インターネット インフォメーション サービス]のチェックを外し[OK]ボタンを押下します。
変更の適用に少し時間がかかりますが完了によりIISが無効になり80番ポートが解放され、XAMPPのApacheが起動できるようになります。
最後に
Apacheの使用するポート番号をconfigを修正して変更する方法もありますが、ブラウザで表示する際にポート番号を指定しなければならないのは面倒くさいのでまとめておきました。