PHPの導入

phpで作られたサイトの修正確認が、ローカルでも出来れば便利です。
gulpとBrowser-syncを利用してローカルサーバーを立てるため、PHPの導入について記載しています。


## 環境
Windows10 Pro
PHP 7.4 (7.4.19)

|名称|設置場所|
|--|--|
|PHP|C:\php|


## PHPのインストール
PHPをインストールする。公式サイトよりダウンロード。
**PHP 7.4 (7.4.19)** の「**VC15 x64 Thread Safe (zip)**」を選択
https://windows.php.net/download
![php02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/dbf907e0-cd79-7987-cc3d-d7b0ff3cefc8.png)

「C:\」に「php」ディレクトリを新規作成し、その中に「php-7.4.19-Win32-vc15-x64.zip」の中身を解凍。
「C:\php」となるようにする。


### 環境変数の設定
Windowsマーク＞検索＞「システム環境変数の編集」＞「環境変数」を開く。
![php01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/61f2e507-503a-b916-4191-c1eac521f110.png)
![GOMCAM 20210507_1550100130.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/67aae896-7c64-48b0-ebfa-436a586d3b49.png)

＊＊のユーザー環境変数＞「Path」＞「編集」
![GOMCAM 20210507_1552250517.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/4ef67185-0166-2d32-e906-7986fbf69c8b.png)

「新規」＞「C:\php」を追加し、「OK」
![GOMCAM 20210507_1557130100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/3722d270-cd4f-b8b7-85f3-ecb53cbc2a0c.png)

「システム環境変数」＞「Path」から、同様に「新規」で「C:\php」を追加。
![GOMCAM 20210507_1559230667.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/34b505dd-799e-e391-f1a3-6055a6e96d00.png)
![GOMCAM 20210507_1557130100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/3722d270-cd4f-b8b7-85f3-ecb53cbc2a0c.png)

コマンドプロンプト、もしくはGit Bash等を開き、「php -v」でバージョンを確認する。
下記の様に表示されればインストール成功。
![GOMCAM 20210507_1731490638.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402740/0e7d5e88-5698-ad0b-2f29-f1714fa7172a.png)


## php.ini の設定
続いてphp.iniの設定を行う。
「C:\php\php.ini-production」をコピー・ペーストし、「php.ini」にリネームする。
以降、必要に応じてリネームした「php.ini」の中身を書き換えていく。


### マルチバイト関数の有効化
日本語などマルチバイト文字を使うには、mbstringを有効にする。
「extension=mbstring」で検索し、下記のコメントアウトをはずす。

```
;extension=mbstring
↓
extension=mbstring
```

次に、言語に日本語を指定する。
「mbstring.language」で検索し、下記のコメントアウトをはずす。

```
;mbstring.language = Japanese
↓
mbstring.language = Japanese
```

次に、文字コードを指定する。
「;mbstring.internal_encoding」で検索し、下記のコメントアウトをはずし、「UTF-8」を追記。

```
;mbstring.internal_encoding =
↓
mbstring.internal_encoding = UTF-8
```

次に、HTTP通信時に自動で文字変換を行わない様に指定する。
「mbstring.http_input」で検索し、下記のコメントアウトをはずし、「pass」を追記。
「mbstring.http_output」で検索し、下記のコメントアウトをはずし、「pass」を追記。
「mbstring.encoding_translation」で検索し、下記のコメントアウトをはずす。

```
;mbstring.http_input
↓
;mbstring.http_input = pass

~
~

;mbstring.http_output
↓
mbstring.http_output = pass

~
~

;mbstring.encoding_translation = Off
↓
mbstring.encoding_translation = Off
```

次に、文字コードの自動判別の順番について指定する。
「mbstring.detect_order」で検索し、下記のコメントアウトをはずし、「auto」を書き換える。

```
;mbstring.detect_order = auto
↓
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
```

次に、変換に失敗した際、文字を出力しないよう指定する。
「mbstring.substitute_character」で検索し、下記のコメントアウトをはずす。

```
;mbstring.substitute_character = none
↓
mbstring.substitute_character = none
```


### SQLiteの有効化
データベースを有効にする。
「pdo_sqlite」で検索し、下記のコメントアウトをはずす。
「sqlite3」で検索し、下記のコメントアウトをはずす。

```
;extension=pdo_sqlite
↓
extension=pdo_sqlite

~
~

;extension=sqlite3
↓
extension=sqlite3
```

設定が完了したら、Apacheを再起動し、php.iniの設定を反映させる。
また設定した内容は、phpinfo.phpで確認する事ができる。
以上でPHPの導入と設定は完了。


## 参考
php.iniの設定については、下記のサイトがわかりやすく大変勉強になりました。
Let'sプログラミング：https://www.javadrive.jp/php/install/index8.html