PHP設定の変更
ServBayにはPHP環境が組み込まれており、柔軟な設定オプションが提供されています。この記事では、ServBayでPHP設定を変更する方法について詳しく説明します。php.ini
とphp-fpm.conf
ファイルの場所や一般的な設定項目についても紹介します。PHPのバージョンによって、これらのファイルは/Applications/ServBay/etc/php/<version>
ディレクトリに配置されています。さらに、PHPモジュールのロード設定ファイル(例:xdebug.ini
)は、/Applications/ServBay/etc/php/<version>/conf.d
ディレクトリにあります。
重要な注意
設定ファイルを手動で変更しないでください。すべての設定ファイルはServBayによって自動生成され、手動で変更すると上書きされるリスクがあります。設定変更はUI画面を通じて行ってください。
概要
ServBayでは、PHPの設定ファイルがバージョンごとに異なるディレクトリに保存されています。例えば、PHP 8.3の設定ファイルは/Applications/ServBay/etc/php/8.3
ディレクトリにあります。これらの設定ファイルの詳細な場所は以下の通りです:
php.ini
:/Applications/ServBay/etc/php/8.3/php.ini
php-fpm.conf
:/Applications/ServBay/etc/php/8.3/php-fpm.conf
- PHPモジュールのロード設定ファイル:
/Applications/ServBay/etc/php/8.3/conf.d/
ServBay UI画面を通じての変更
ServBayには強力なグラフィカル管理インターフェースが備わっており、ユーザーは管理画面で直接異なる設定パラメータを変更できます。保存をクリックすると、変更が自動的に適用され、すぐに有効になります。手動でパラメータを編集する手間が省けます。
左のナビゲーションで言語
を開き、変更したいPHPバージョンを選択することで、右側に編集メニューが表示されます。典型的なインターフェースは以下の図のようになります。
インターフェースは、PHP-FPM設定、PHP設定、PHPモジュール設定の3つの異なる設定項目に分かれています。以下でそれぞれについて説明します。
PHP FPM
ヒント
php-fpm.conf
は、WebサービスでのPHPの動作を設定し、すべての設定はphp.ini
の設定よりも優先されます(上書き)。
ただし、ここでの設定はCLIでのコード実行には影響しません。
まず、PHP FPM設定画面です。CaddyやNGINXに関係なく、ServBay WebサービスのPHPはFPM方式で動作します。この画面では、FPMプロセスの数、メモリ制限、ログのエラーレベル、ブラウザでのエラー情報の表示可否などを設定できます。
例えば、WebでMemory Limit
を64Mから1Gに変更したい場合、Memory Limit
のドロップダウンメニューから1G
を選択し、保存するだけで変更が可能です。この変更はphp.ini
の設定には影響せず、CLI方式でのPHPスクリプト実行時にはphp.ini
の設定が適用されます。
仮にphp.ini
でのMemory Limit
が512M
、PHP FPM
でのMemory Limit
が128M
に設定されている場合、同じスクリプトがCLIで実行されると512Mまでメモリを使用できますが、Webで実行されると128Mまでしか使用できません。
php.ini
ヒント
php.ini
の設定はグローバルで、CLIとWebの両方の動作に対応しています。 ただし、php.ini
の設定はWebではphp-fpm.conf
によって上書きされることがあります。
PHP設定部分はphp.ini
の設定項目に対応しており、これはPHPのコア設定ファイルです。
ここでは、php.ini
でのオプションの大部分を設定できます。例えば、postフォームのpost_max_size
やアップロードファイルサイズに影響するupload_max_filesize
。また、関数やクラスを無効化するためのdisable_functions
およびdisable_classes
などがあります。
設定はグローバルなものであるため、open_basedir
を設定する場合は、ウェブサイトのプロジェクトを/Applications/ServBay/www
に統一して配置し、複数のディレクトリを設定しなくて済むようにすると良いでしょう。
詳細な設定項目については、php.ini
の公式ドキュメントを参照してください。
拡張モジュール
ServBayには、多くの一般的なPHP拡張モジュールが組み込まれており、xDebug
、OPcache
、Image Magick
、Redis
、MongoDB
、Phalcon
、Swoole
などがあります。詳細なモジュールリストはPHP 拡張モジュールリストを参照してください。
PHP拡張モジュールの有効化は非常に簡単で、スイッチをクリックし、保存をクリックするだけです。xDebugなど追加の設定項目があるモジュールも、設定項目を直接簡単に変更できます。
手動編集による設定変更
WARNING
手動での設定ファイル編集は、一時的にいくつかの設定項目を変更する場合にのみ適しています。
PHPの設定ファイルを手動で変更することはお勧めしません。すべての変更はServBayによって上書きされてしまいます。
php.ini設定
php.ini
ファイルはPHPの主な設定ファイルで、PHPのさまざまな実行時オプションを設定するために使用されます。
よくある設定項目
以下は、いくつかの一般的なphp.ini
の設定項目とその変更方法です:
メモリ制限の変更:
memory_limit = 256M
1アップロードファイルのサイズ制限の変更:
upload_max_filesize = 50M post_max_size = 50M
1
2タイムゾーン設定の変更:
date.timezone = "Asia/Tokyo"
1エラー表示の有効化:
display_errors = On error_reporting = E_ALL
1
2最大実行時間の変更:
max_execution_time = 300
1
php-fpm.conf設定
php-fpm.conf
ファイルは、PHP-FPM(FastCGI Process Manager)の実行パラメータを設定するために使用されます。
よくある設定項目
以下は、いくつかの一般的なphp-fpm.conf
の設定項目とその変更方法です:
プロセスプール設定の変更:
[www] listen = /Applications/ServBay/tmp/php-cgi-8.3.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 ;listen.owner = www ;listen.group = www listen.mode = 0666 ;user = www ;group = www pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 6 pm.max_requests = 1024 pm.process_idle_timeout = 10s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16スローログの有効化:
request_slowlog_timeout = 5s slowlog = /Applications/ServBay/logs/php/8.3/slow.log
1
2エラーログのパスの変更:
error_log = /Applications/ServBay/logs/php/8.3/errors.log
1
PHPモジュールのロード設定
PHPモジュールのロード設定ファイルは、/Applications/ServBay/etc/php/8.3/conf.d/
ディレクトリにあります。例として、xdebug.ini
はXdebug拡張を設定するためのファイルです。
xdebug.iniの例
以下は、xdebug.ini
ファイルの例です:
[Xdebug]
; Uncomment the following line to enable XDebug
zend_extension = xdebug.so
xdebug.mode=debug,develop
xdebug.start_with_request=yes
xdebug.client_host=localhost
xdebug.client_port=39083
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
2
3
4
5
6
7
8
PHPの再起動
PHP設定ファイルを変更した後、変更を有効にするためにPHPサービスを再起動する必要があります。ServBayの管理画面またはservbayctl
コマンドラインツールを使用して再起動できます。
ServBay管理画面を通じて再起動
- ServBay管理画面を開きます。
サービス
に移動します。- 対応するバージョンのPHPサービスを見つけ、
再起動
ボタンをクリックします。
servbayctlによる再起動
servbayctl
コマンドラインツールを使用して簡単にPHPサービスを再起動できます:
servbayctl restart php 8.3
まとめ
ServBayでは、PHPの設定ファイルは/Applications/ServBay/etc/php/<version>
ディレクトリにあります。php.ini
とphp-fpm.conf
を含みます。PHPモジュールのロード設定ファイルは/Applications/ServBay/etc/php/<version>/conf.d/
ディレクトリにあります。これらの設定ファイルを変更した後、ServBayの管理画面またはservbayctl
コマンドラインツールを使用してPHPサービスを再起動し、変更を有効にすることができます。