Windows で PHP8+Apache+MySQL+phpMyAdmin の開発環境をXAMPP無しで構築する方法

# 初めに
C直下に置く方法はあってもそれ以外で構築する方法が探してもなかったので掲載。
個人的に開発関係は`C:\Program Files (dev)`というディレクトリに保存していたので、ここに、
`C:\Program Files (dev)\Apache`
`C:\Program Files (dev)\php`
みたいな感じで配置する。
各ソフトの設定もそのディレクトリに合わせて変更する。

# PHP8
概要は、PHPをダウンロードしてパスを通すだけの簡単なお仕事です。
### 1. Download PHP

https://www.php.net/downloads.php

ここにPHPのダウンロード一覧があるので、`Current Stable PHP8.*.* (Changelog)`ってところの、`・Windows downloads` からダウンロードページに飛ぶ。

いろいろあるが、`x64 Thread Safe`の大枠のところから、Zipを選択してダウンロードする。

### 2. 配置
ダウンロードしたファイルを解凍して、任意の場所に配置する。冒頭にも言ったが、ルートディレクトリにはおかない。
ここでは、`C:\Program Files (dev)\php-8.1.3`に配置した。

### 3. 設定
Apacheとの連携とは関係ないPHP関係の設定。

#### 1. php.ini
PHPディレクトリ内の`php.ini-production`を複製して、名前を`php.ini`とする。
次にphp.iniを開き以下の項目を変更する。固まってあるわけじゃないので、一行ずつ探して変更します。
`extension_dir`に指定しているパスは、PHPディレクトリ内の`ext`ディレクトリを指定してください。

```ini:変更前
; extension_dir = "ext"
;extension=fileinfo
date.timezone =
;extension=mbstring
;mbstring.language = Japanese
```
```ini:変更後
extension_dir = "C:\Program Files (dev)\php-8.1.3\ext"
extension=fileinfo
date.timezone = "Asia/Tokyo"
extension=mbstring
mbstring.language = Japanese
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
```

#### 2. 環境変数の設定

まぁ普通に環境変数に追加する感じです。
PHPディレクトリ、この記事の場合は`C:\Program Files (dev)\php-8.1.3`をグローバル環境変数に追加してください。

追加したら、Terminalなどを開いて`php -v`として、エラーではない答えが返ってきたら追加されいます。

# Apache
概要は、Apacheをダウンロードして、サービスにインストールします。
ルートディレクトリではないのでその辺も設定します。
ここではVisual Studio 2022 と 2019 をインストールしているため、Microsoft Visual C++ 20** 再頒布可能パッケージはインストールされていると仮定します。
インストールされていない場合はエラーで起動できないので、別途インストールする必要があります。
最新バージョンを入れれば、下位バージョンは網羅されていると思います。

### 1. Download Apache
ApacheはWindows用のバイナリは用意されていないので、代わりに配布してくれているサイトからダウンロードします。

https://www.apachelounge.com/download/

ここから、`Apache *.*.* Win64` のところのZipファイルをクリックしてダウンロードします。

### 2. 配置
展開したら、`Apache24`というディレクトリがあるので、それを任意のディレクトリに移動します。
ここでは、`C:\Program Files (dev)\Apache24`に移動しました。

### 3. 設定
PHPとの連携とは関係ないApache関係の設定。

#### 1. httpd.conf
`Apache24\conf\httpd.conf`を編集します。
ディレクトリがルートではないので、以下の項目を変更して対応します。
また、使用するURLが指定されていないと、警告が出るため、それも変更します。
これも別々にあるため、その行を探して設定してください。

```conf
Define SRVROOT "c:\Program Files (dev)\Apache24"
ServerName localhost:80
```

##### ポートの変更
80番以外でリッスンしたい場合は以下のところを変更してください

```conf
Listen 8080
ServerName localhost:8080
```

#### 2. サービスに登録

ApacheをサービスとしてWindowsに登録します。

Terminalを開いて`Apache24/bin`ディレクトリにある`httpd.exe`を使って登録します。
引数にinstallとkオプションを使用します。
`管理者権限のあるTerminal`を使用してください。
この記事の場合はこうです。

```terminal
cd 'C:\Program Files (dev)\Apache24\bin'
./httpd.exe -k install
```

# MySQL

概要はインストーラを実行するだけです。

### 1. Download MySQL

https://dev.mysql.com/downloads/mysql/

このページの　`Go to Download Page >` をクリックします。

2つ出てくるので上のほうをダウンロードします。

### 2. 配置

インストーラなので場所は変更できません。多分。

### 3. インストール

ダウンロードしたインストーラを起動します。
インストールするバージョンは開発者バージョンです。起動直後に表示される選択ではそれを選んでください。
インストーラに従ってインストールしてください。

# phpMyAdmin

### 1. Download phpMyAdmin

https://www.phpmyadmin.net/downloads/

このサイトの、`phpMyAdmin-*.*.*-all-languages.zip` をクリックしてダウンロードします。

### 2. 配置

ダウンロードしたZipを展開し、`Apache24/htdocs`、ここでは`C:\Program Files (dev)\Apache24\htdocs`に、配置します。ディレクトリ名は`phpMyAdmin` とかにしてください。

### 3. ログイン

ブラウザで`http://localhost/phpmyadmin/index.php` に移動して、インストール時に作ったアカウントでログインできます。


# PHPとApacheの連携
概要はApacheの設定でPHPを参照するように設定します。

`Apache24\conf\httpd.conf`を編集します。
ファイル内の最下部に以下の項目を追加します。
2行目までのパスは任意のものに変更してください。

```conf
PHPIniDir "C:\Program Files (dev)\php-8.1.3"
LoadModule php_module "C:\Program Files (dev)\php-8.1.3\php8apache2_4.dll"
AddHandler application/x-httpd-php .php
```

# 起動確認

`Apache24\bin\ApacheMonitor.exe` をダブルクリックして起動します。
タスクバーに起動するので、`Open Apache Monitor`を選択します。
Startを選択して、左側のApacheが緑色になったら成功しています。

`Apache24\htdocs` ディレクトリ内の `index.html` の拡張子をphpに変更し、ファイル内の文字列を以下に変更してブラウザで、`localhost`にアクセスしてPHP情報が表示されていれば正しくPHPと連携できています。

```php
<?php

echo phpinfo();
```

# 参考

https://qiita.com/uriuri7610/items/df6a05ed27b65fde499c

https://www.hiskip.com/pg-notes/how-to-install/develop-kit/php80.html

https://www.javadrive.jp/apache/install/index1.html

https://dev.mysql.com/downloads/mysql/

https://www.projectgroup.info/tips/php/comm_0003.html

https://www.dbonline.jp/phpmyadmin/install/index1.html

https://qiita.com/mumimaru79/items/13c3160f6ecee59fdc2a