WindowsのDocker DesktopでPHPとApacheの実行環境を作る

お久しぶりです。白々さじきです。
現在転職活動しています！
今回は、転職活動の求人を見ていると、PHPとDockerという単語をよく見かけたため、実際に遊んでみようと思いました。
この記事では、実際に環境を構築して画面表示までやりたいと思います。
この記事の前提としてDockerは動作する環境がある状態かつWindows10 Homeを想定しています。
この記事では、DockerイメージのDLとPHPのインストールについても記載されています。
参考にした記事に関しては一番下に載せているので、よかったら参考にされてください。

# せっかちな人のための簡単な手順一覧
1. PHPとApacheが入っているイメージをダウンロード。
2. PHPをダウンロードしてパスの設定
3. 動作確認用のPHPファイルを作成してそのフォルダを起点にDockerイメージを起動。
4. URLにアクセスして起動確認 
以上です。

# 実行手順
## 1. PHPとApacheが入っているイメージをダウンロード
今回は、参考にしたPHPサーバーに関する記事をもとに「php:8.1.10-apache」を使用しました。
以下のリンクから該当のイメージにあるコマンドをコピーしてPowerShellで実行しました。

https://hub.docker.com/_/php/tags?page=1&name=apa

```
docker pull php:8.1.10-apache
```
実行結果
![dokercommand.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/a0ac6318-efa0-89c5-a124-9648334cf651.jpeg)

このコマンドを実行するとDocker Desktopでイメージが追加されています。
![Dockerdesktop.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/e73d94c8-15d0-e2b6-7bcd-3626dfd9aa15.jpeg)

この状態でイメージをrunすると表示するデータがないのでエラーになります。
![dokererror.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/84cc74df-81d6-4ab6-8bca-f096c47ca349.jpeg)


なのでPHPでページを作成する必要があります。
私の環境だとPHPがまだ入っていないのでインストールします。

## 2. PHPをダウンロードしてパスの設定
以下に移動して、自分の環境に合うものをダウンロードしてください。
今回は、Windows 64ビットのOSなので、「VS16 x64 Thread Safe」をダウンロードしました。

https://windows.php.net/download

zipファイルを解凍した後に、フォルダ名を「php-8.1.10」などの分かりやすい名前に変更しましょう。
理由は今から環境変数に追加するからです。
環境変数に追加する方法は、windowsマーク→設定から詳細情報の中の赤枠で囲っているシステム詳細設定を開いてください。
![settei.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/4393d02d-a6d9-2c2b-6356-125fa2fcf48c.jpeg)

この後、詳細設定の中の一番下にある環境変数をクリックしてください。
![hennsuu.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/5e5b6167-aa81-bc86-1df0-2f92b1c330f9.jpeg)

この中のシステム環境変数の中にある「Path」の項目に先ほど解凍したフォルダのパスを追加しましょう。
パスは、そのフォルダのプロパティ→セキュリティタブにオブジェクト名があるのでそれを利用してもよいですが、ファイルの選択もできるので好きなほうを使用しましょう。
![propaty.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/f83932f7-1d43-1c68-83f2-bf9d8764b2f2.jpeg)

パスの追加が成功すると、以下のコマンドをコマンドラインに打つと写真のように文字が出ます。
```
php -r "echo 'hello';"
```

![php.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/dc2d68a5-677b-51d8-f2a0-616e6ab8a65f.jpeg)

これでPHPのインストールはおしまいです。

## 3. 動作確認用のPHPファイルを作成

PHPのページの準備と実際の起動をやってみます。
今回は、Dボリュームに‪php-serverという名前のフォルダを作成して行います。
VisualStudioCodeを使って今回作成したフォルダを開きます。
その中に、index.phpという名前のファイルを作成し、以下のように記載します。
```
<!DOCTYPE html><html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>
    これはテストページです。
</body>
</html>
```

このファイルが作成できたらDocker Desktopに戻ります。

## 4. Dockerイメージを起動と確認
Docker Desktopのイメージの中の今回pullしてきたPHPのイメージを起動します。
今回の設定は、以下のように行いました。
![dokersetting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/d468f8d7-d5b7-da9d-79b3-4c29cf39fa31.jpeg)
その後以下のURLにアクセスするとページにアクセスすることができます。
http://localhost:80/
![index.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521126/89fa99a4-ba33-23d3-5312-0f0bdbe8981a.jpeg)

これでPHPサーバーの起動を確認することができました。

## 感想
完走した感想ですが、久しぶりにDocker使うこともあって結構忘れていることが多かった気がします。
また、起動自体はQiita記事書きながら2時間くらいで簡単にできた気がするので、今後はこのサーバープログラムを拡張していきたいと思います。
ps. 誤字脱字と内容に関して友人に速攻で指摘されました。精進します。指摘してくださった友人氏に感謝します。


## 参考にした記事
PHPのサーバーについての解説。　

https://pointsandlines.jp/server-side/php/docker-php-apache

Docker　Desktopの使い方の解説。

https://qiita.com/gahoh/items/7b21377b5c9e3ffddf4a

PHPのインストール

https://programmer-life.work/php/visual-studio-code-php#PHP


PHPのパス設定

https://www.javadrive.jp/php/install/index3.html#section1