[備忘録]XAMPP の PHP の設定

`php` の設定変更についてのメモ

# 動作環境

```
Windows 11 Home (23H2)
XAMPP 8.2.12
```

# 設定ファイルのパス

`XAMPP` を `D:\xampp` にインストールした場合、 `php` の設定ファイルは `D:\xampp\php\php.ini` になる 

# 設定項目

## タイムゾーン

デフォルトが `Europe/Berlin` なので `Asia/Tokyo` にする

```ini

 [Date]
date.timezone=Asia/Tokyo
```

## OPcache

デフォルトでは無効になっているので有効化する  
下記を `php.ini` の最後に追記する

```ini

[opcache]
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
```

## XDebug

`XAMPP 8.2.12` には `XDebug` のエクステンションが含まれていないので以下の手順でセットアップする  

### `php_xdebug.dll` のダウンロード

- 下記のサイトを WEB ブラウザで開く  

https://xdebug.org/wizard

- `php -i` の出力結果を上記サイトのテキストボックスに張り付ける
- `Analyse my phpinfo() output` ボタンをクリックする
- 以下のような結果画面が表示されるので `Instructions` にある dll ファイルのリンクをクリックしてダウンロードする

![xdebug_8.2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321059/dfede9d6-7cfd-9f10-3ba2-945c6112484c.png)

### `php_xdebug.dll` のセットアップ

- ダウンロードした dll ファイルを `php_xdebug.dll` にリネームし、 `D:\xampp\php\ext` にコピーする
- 下記を `php.ini` の最後に追記する (必ず opcache の設定より下に記入すること)

```ini
[XDebug]
zend_extension = xdebug
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_log="D:\xampp\tmp\xdebug.txt"
xdebug.remote_cookie_expire_time = 36000
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "D:\xampp\tmp"
xdebug.trace_output_dir = "D:\xampp\tmp"
xdebug.max_nesting_level=1000
xdebug.idekey = "PHPSTORM"
```

# `php.ini` の変更結果

```diff:xampp\php\php.ini
--- php.ini.orig        Mon Apr 29 10:41:41 2024
+++ php.ini     Mon Apr 29 11:07:47 2024
@@ -1993,7 +1993,7 @@
 [Session]
 define_syslog_variables=Off
 [Date]
-date.timezone=Europe/Berlin
+date.timezone=Asia/Tokyo
 [MySQL]
 mysql.allow_local_infile=On
 mysql.allow_persistent=On
@@ -2018,3 +2018,25 @@
 mssql.min_message_severity=10
 mssql.compatability_mode=Off
 mssql.secure_connection=Off
+[opcache]
+zend_extension=opcache
+opcache.enable=1
+opcache.enable_cli=1
+opcache.memory_consumption=256
+opcache.max_accelerated_files=10000
+[XDebug]
+zend_extension = xdebug
+xdebug.remote_enable = 1
+xdebug.remote_autostart = 1
+xdebug.remote_host = "127.0.0.1"
+xdebug.remote_port = 9000
+xdebug.remote_handler = "dbgp"
+xdebug.remote_log="D:\xampp\tmp\xdebug.txt"
+xdebug.remote_cookie_expire_time = 36000
+xdebug.profiler_append = 0
+xdebug.profiler_enable = 0
+xdebug.profiler_enable_trigger = 0
+xdebug.profiler_output_dir = "D:\xampp\tmp"
+xdebug.trace_output_dir = "D:\xampp\tmp"
+xdebug.max_nesting_level=1000
+xdebug.idekey = "PHPSTORM"
```

# Composer のセットアップ

- 下記のサイトを WEB ブラウザで開く

https://getcomposer.org/download/

- **Manual Download** の *Latest Stable* のリンクから `composer.phar` をダウンロードする

![composer_download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321059/b9e62e11-752f-5ea2-af48-27e40ade9756.png)

- ダウンロードした `composer.phar` を `D:\xampp\php` にコピーする
- 下記内容で `D:\xampp\php\composer.bat` を作成する

```bat:xampp\php\composer.bat
@ECHO OFF
php "%~dp0composer.phar" %*
```

- コマンドプロンプトで `composer --version` を入力して下記内容が出力されることを確認する

```
D:>composer --version
Composer version 2.7.4 2024-04-22 21:17:03
PHP version 8.2.12 (D:\xampp\php\php.exe)
Run the "diagnose" command to get more detailed diagnostics output.
```

# 参考

- [apache - Windows, XAMPP, PHP 7 and opcache - Stack Overflow](https://stackoverflow.com/questions/41028599/windows-xampp-php-7-and-opcache)
- [XAMPPのPHP7でXdebugを使う - Qiita](https://qiita.com/threeleafsoft/items/a111e379e1ea03651f19)
- [Download Composer](https://getcomposer.org/download/)