【Windows11】XAMPPのダウンロードとインストール



# 目次

[1. はじめに](#1はじめに)
[2. 今回のゴール](#2今回のゴール)
[3. PCのスペック](#3pcのスペック)
[4. 環境構築](#4環境構築)
[4-1. ダウンロード](#4-1ダウンロード)
[4-2. インストール](#4-2インストール)
[4-3. XAMPPを起動する](#4-3xamppを起動する)
[4-4. PID4の確認](#4-4pid4の確認)
[4-5. ポート80のサービス(IIS)を無効化する](#4-5ポート80のサービスiisを無効化する)
[4-6. 再度XAMPPを起動する](#4-6再度xamppを起動する)
[5. おわりに](#5おわりに)


# 1.はじめに

現在、PHPの学習で下記の書籍を進めています。

https://www.amazon.co.jp/%E3%81%84%E3%81%8D%E3%81%AA%E3%82%8A%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BPHP-%E3%83%AF%E3%82%AF%E3%83%AF%E3%82%AF%E3%83%BB%E3%83%89%E3%82%AD%E3%83%89%E3%82%AD%E3%81%AE%E5%85%A5%E9%96%80%E6%95%99%E5%AE%A4-%E8%B0%B7%E8%97%A4%E8%B3%A2%E4%B8%80/dp/4897978858

書籍を参考にしつつ、自分で調べながらXAMPPのダウンロードを行いました。

本記事では備忘録としてまとめていきます。


# 2.今回のゴール

XAMPPのダウンロードとインストールを行い、使用できる状態にします。


# 3.PCのスペック

- Windows 11 Pro 22H2


# 4.環境構築

## 4-1.ダウンロード

以下を参考に進めていきました。

https://miya-system-works.com/blog/detail/41

すると、ダウンロードはできましたがインストールでエラーに遭遇しました。

## 4-2.インストール

以下の3.と同じ内容です。

https://zenn.dev/hainare/articles/b2d0d49c768629

:::note warn
Important! Because an activated User Account Control (UAC) on your system some functions of XAMPP are possibly restricted. With UAC please avoid to install XAMPP to C:\Program Files (missing write permissions).Or deactivate UAC with msconfig after this step.
:::

↓ 翻訳

:::note warn
重要 お使いのシステムでユーザーアカウント制御（UAC）が有効になっているため、XAMPPの一部の機能が制限されている可能性があります。UACを使用している場合、XAMPPをC:¥Program Filesにインストールすることは避けてください（書き込み権限が不足しています）また、この手順の後にmsconfigでUACを解除してください。
:::

**UACとは(引用)**
> User Account Controlの略語で、Windows OSのセキュリティに関する基本機能です。
> UACは、ユーザーが管理者権限を要するアプリケーションやタスクを実行しようとした時、ポップアップウィンドウとして表示され、許可を求めたり、あるいは管理者パスワードの入力を求めたりなどの確認を要求します。
>複数行にまたがる場合、改行のたびにこの記号を置く必要があります。

https://www.sompocybersecurity.com/column/glossary/uac

ざっくり読むと、**「UACを使用している場合、XAMPPをC:¥Program Filesにインストールすることは避けて」** とのこと。

デフォルトのインストール先は「C:\xampp」となっているので、参照先は変更せずに進めました。

Warningは「OK」を選択して閉じます。

「Next」を選択して進んでいき、最後に「Finish」を選択してインストールを終了します。

## 4-3.XAMPPを起動する

「Finish」を選択した際に、以下のチェックボックスが表示されています。（デフォルトではチェックあり）

```text
Do you want to start the Control Panel now?
```

↓ 翻訳

```text
今すぐコントロールパネルを起動しますか？
```

チェックが入っているとインストール後に「XAMPP Control Panel」が起動します。

すると、以下のエラーが出ました。

:::note alert
21:20:23  [Apache] 	Problem detected!
21:20:23  [Apache] 	Port 80 in use by "Unable to open process" with PID 4!
21:20:23  [Apache] 	Apache WILL NOT start without the configured ports free!
21:20:23  [Apache] 	You need to uninstall/disable/reconfigure the blocking application
21:20:23  [Apache] 	or reconfigure Apache and the Control Panel to listen on a different port
:::

↓ 翻訳

:::note alert
21:20:23 [Apache] 問題が検出されました！
21:20:23 [Apache] PID 4 の "Unable to open process" によってポート 80 が使用されています！
21:20:23 [Apache] 設定されたポートが空いていないと、Apache は起動しません！
21:20:23 [Apache] ブロッキングアプリケーションをアンインストール/無効化/再設定する必要があります。
21:20:23 [Apache]または、Apacheとコントロールパネルを別のポートでリッスンするように再設定します。
:::

PID4でポート80が使用されているとのことなので、

ポート80のサービスを止める もしくはApacheのポート番号を80以外にします。

**補足** 

| 言葉 | 内容 | 
|:-----------|:-----------|
| PID（プロセスID）| オペレーティング（OS）が現在実行中のプログラムを識別するために割り当てる番号のこと | 
| ポート| インターネットサーバとパソコン（クライアント）それぞれにある扉のようなもの。外に出たり外から入ったりする |

## 4-4.PID4の確認

①以下を参考に、コマンドプロンプトで確認します。

http://lovee7.blog.fc2.com/blog-entry-35.html

コマンドプロンプトを開き、「netstat -nao」と入力してEnterを押します。

コマンドの詳細はこちらです。

| コマンド | 内容 | 
|:-----------|:-----------|
| netstat| ホストのネットワーク統計や状態を確認する | 
| -n| 出力をIPアドレスなど数値のみに抑制する |
| -a| 現在のすべての接続を表示する |
| -o| ネットワーク・タイマを表示する |

https://atmarkit.itmedia.co.jp/fnetwork/netcom/netstat/netstat.html

PID4が、ポート80を使用していることを確認しました。

```text
アクティブな接続
プロトコル  ローカル アドレス      外部アドレス           状態            PID
TCP        0.0.0.0:80          0.0.0.0:0             LISTENING       4
```

②「タスクマネージャー>詳細」で、PID4を探します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689555/011c60ff-74c9-fe2f-ec1d-3c13f40735b6.png">

右クリックすると「タスクの終了」が表示されますが、非活性となっており選択できませんでした。

http://lovee7.blog.fc2.com/blog-entry-35.html#m4

③再度上記を読み進めていくと、「ポート番号80」のサービスのなかでIISをインストールしていたことを思い出しました。

ということで、先ほど
>ポート80のサービスを止める もしくはApacheのポート番号を80以外にします。

と書きましたが、現在IISを使用していないため「ポート80のサービスを止める 」 で対策をします。

## 4-5.ポート80のサービス(IIS)を無効化する

①「コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化」の、
「インターネット インフォメーション サービス > World Wide Web サービス」のチェックを外します。

②無効化する際はパソコンの再起動が必要となるため、再起動します。

## 4-6.再度XAMPPを起動する

①「XAMPP Control Panel」を起動します。

```text
23:04:03  [main] 	there will be a security dialogue or things will break! So think
23:04:03  [main] 	about running this application with administrator rights!
23:04:03  [main] 	XAMPP Installation Directory: "c:\xampp\"
23:04:03  [main] 	Checking for prerequisites
23:04:04  [main] 	All prerequisites found
23:04:04  [main] 	Initializing Modules
23:04:04  [main] 	Starting Check-Timer
23:04:04  [main] 	Control Panel Ready
```

↓ 翻訳

```text
23:04:03 [main] セキュリティ対話があるか、物事が壊れるか！だから考える
23:04:03 [main] このアプリケーションを管理者権限で実行することについて！
23:04:03 [main] XAMPPのインストールディレクトリです： "c:╱xampp"
23:04:03 [main] 前提条件をチェックする
23:04:04 [main] すべての前提条件が見つかりました。
23:04:04 [main] モジュールの初期化
23:04:04 [main] チェックタイマーの開始
23:04:04 [main] コントロールパネル準備完了
```

②Startを選択して起動します。

**Apacheの場合** 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689555/35e38d7e-a317-3d2b-b009-67ab74a70530.png" width=90%>

```text
23:15:52  [Apache] 	Attempting to start Apache app...
23:15:53  [Apache] 	Status change detected: running
```

↓ 翻訳

```text
23:15:52 [Apache] Apacheアプリの起動を試みています...。
23:15:53 [Apache] ステータス変更の検出：実行中
```

**MySQLの場合** 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689555/470e4c94-4ae6-141c-03ca-7d7f4c128219.png" width=90%>

```text
23:19:46  [mysql] 	Attempting to start MySQL app...
23:19:47  [mysql] 	Status change detected: running
```

↓ 翻訳

```text
23:19:46 [mysql] MySQLアプリの起動を試みています...。
23:19:47 [mysql] ステータス変更の検出：実行中
```


# 5.おわりに

閉じるときにもエラーが出たので、以下を参考に「管理者としてこのプログラムを実行する」に変更してエラーを解消しました。

https://codeforfun.jp/how-to-solve-xampp-cannot-create-file-error/

エラーが出た際は、1つずつ対処していきたいと思います。

読んでいただき、ありがとうございました。