ServBay PHP設定ガイド:php.ini・PHP-FPM・拡張モジュールの調整方法
ServBayはWeb開発者に対して、パワフルかつ柔軟なローカルPHP開発環境を提供します。プロジェクトの要件に応じてPHPの設定(メモリ制限、ファイルアップロード上限、エラー通知レベル、特定拡張モジュールの有効化など)を調整する必要が生じる場合があります。
本記事では、ServBayでのPHP設定方法を詳しく解説します。ServBayでは、これらの設定を管理するための便利なグラフィカル・ユーザーインターフェイス(UI)を推奨・提供しています。基礎となる設定ファイル(例:php.ini
やphp-fpm.conf
)の配置や構成について知識を持つことも役立ちますが、設定の永続性や互換性を保つため、ServBayのUIからの編集を強く推奨します。
重要なご注意
ServBayが生成したPHP設定ファイル(/Applications/ServBay/etc/php/<version>/
およびそのサブディレクトリ)を手動で編集しないでください。 これらのファイルはServBayによって管理されるため、手動編集した内容はServBayのアップデート・再起動・その他操作の際に上書きされてしまいます。全ての設定変更は必ずServBayのユーザーインターフェイス経由で行ってください。
概要
ServBayでは、PHPのバージョンごとに個別の設定ファイルディレクトリが用意されています。たとえば、PHP 8.3の主要な設定ファイルは/Applications/ServBay/etc/php/8.3
ディレクトリ内にあります。
代表的な設定ファイルは以下の通りです:
php.ini
:PHPのメイン設定ファイルで、CLI・Webの両環境に共通する設定を管理します。php-fpm.conf
:PHP-FPM(FastCGI Process Manager)の設定ファイルで、Webサーバー(CaddyやNginxなど)上での実行・パフォーマンスに主に影響します。conf.d/
:PHP拡張モジュールごとの読み込み設定(.ini
ファイル。例:xdebug.ini
,opcache.ini
など)が格納されています。
これらのファイルは存在しますが、ServBayはより安全で手軽な設定変更手段をUIとして提供しています。
ServBayユーザーインターフェイスでの設定(推奨)
ServBayは直感的なグラフィカルUIを通じて、PHPのさまざまな設定値を直接編集することができます。UIで変更・保存すると、ServBayが自動的にその変更を適用し、必要に応じて(通常は自動で)PHPサービスをリスタートします。手動でファイルを編集したりコマンド入力をする必要はありません。
PHP設定画面へのアクセス方法:
- ServBayのメインウィンドウを開く
- 左側ナビゲーションバーで 言語 をクリック
- 開発言語リストから、設定したいPHPバージョンを選択(例:
PHP 8.3
をクリック) - 右側パネルにそのPHPバージョンの詳細と設定オプションが表示されます
以下は典型的なPHP設定画面の一例です:
画面は主に3つのセクションに分かれていて、それぞれPHP-FPM、PHP(php.ini)、PHP拡張モジュールの設定に対応します。以下、各セクションについて解説します。
PHP FPM設定
ヒント
php-fpm.conf
の設定は主にWebサーバー環境下でのPHPの動作に影響します。ServBay UI経由でこのセクションで設定した内容は、(上書きして)php.ini内の同名設定よりも優先されますが、Webリクエスト時のみに適用されます。 これらの設定はCLI(コマンドライン)でのPHP実行時には影響しません。
ServBayのWebサーバー(CaddyやNginx)はPHP-FPMを介してPHPと連携します。PHP FPM設定画面からはWeb環境のパフォーマンスや安定性に関わる各種パラメータを調整可能です:
- プロセスマネージメント(pm):PHP-FPMがワーカープロセスをどのように生成・管理するかを指定します(例:
dynamic
,static
など)。 - プロセス数(pm.max_children, pm.start_servers等):最大子プロセス数や起動時に作成する子プロセス数など、並列処理能力に関する設定。
- メモリ上限(memory_limit):ここで設定した値は、Webリクエスト時のみphp.iniの同名設定を上書きします。
- エラーログ・エラー表示設定:エラーログパス、レベル、ブラウザでのエラー表示有無などを設定。
たとえば、Web環境でPHPのメモリ制限をデフォルト(64Mや128M等)から1Gに増やしたい場合は、ServBay UIのPHP FPM設定セクションでmemory_limit
から1G
を選択し保存するだけです。この設定はWebサーバー経由で動作するPHPスクリプトのみに適用され、CLIで実行する場合はphp.iniのmemory_limit
値が有効です。
設定例の比較: php.iniのmemory_limit
が512M
、FPMのmemory_limit
が128M
の場合—
- CLI実行時の上限は
512M
- Web経由実行時の上限は
128M
php.ini設定
ヒント
php.ini
での設定はグローバルに適用され、CLIとWeb双方の環境に影響します。ただし前述のとおり、FPM側で同名項目が設定された場合、Web環境ではFPMが優先されます。
PHP設定セクションでは、php.ini
ファイル内の主要な設定項目を調整します。主な内容は—
post_max_size
:POSTメソッドで送信できるデータの最大サイズ。upload_max_filesize
:アップロードファイルの最大サイズ制限。date.timezone
:PHPが使用するデフォルトタイムゾーンの指定。display_errors
/error_reporting
:エラーを画面表示するかや通知レベルの指定。max_execution_time
:スクリプトの最大実行許可時間(秒)。disable_functions
/disable_classes
:セキュリティ向上のために特定の関数やクラスを無効化。open_basedir
:PHPがアクセス可能なファイルパスを制限。全てのWebプロジェクトをServBay既定の/Applications/ServBay/www
ディレクトリに統一保存することで、open_basedir
にこのディレクトリだけを指定し複数パスを記載せずに管理できます。
これらのphp.ini
設定は、ServBay UIで直接編集可能です。
php.ini
の全ての設定項目については、PHP公式ドキュメント PHP Runtime Configuration もご参照ください。
PHP拡張モジュール設定
ServBayにはデータベース連携・キャッシュ・デバッグ・フレームワークサポート等、多数の人気PHP拡張モジュールがプリインストールされています。ServBayのUIからは、これらの拡張モジュールを簡単に有効/無効化し、さらに個別設定も行えます。
主な対応拡張例としてxDebug
、OPcache
、ImageMagick
、Redis
、MongoDB
、Phalcon
、Swoole
などがあります。また、MySQLやPostgreSQL・MongoDBといった多数のデータベース、メッセージキュー、キャッシュシステムへの対応拡張も利用可能です。
拡張モジュールのオン/オフ手順:
- ServBay UIのPHP設定画面で、「拡張モジュール」等のタブを選択
- 必要な拡張(例:
xdebug
)を探す - スイッチボタンの切り替えで無効化/有効化
- 追加設定が必要な拡張(例:
xDebug
)は画面上でパラメータを直接編集(例:xdebug.mode
,xdebug.client_port
等) - 保存ボタンで変更を適用
ServBay対応の拡張モジュール一覧や詳細は、PHP拡張モジュール一覧(最新ドキュメント確認推奨)もご覧ください。
PHP設定ファイル構造の把握(手動編集は非推奨)
ServBay UIからの編集を強く推奨しますが、設定ファイルの配置や構造について知識があるとPHPの動作原理の理解が深まります。
ServBayのPHP設定ファイルは/Applications/ServBay/etc/php/<version>/
ディレクトリ内に生成されます。
php.ini
:メイン設定ファイルphp-fpm.conf
:PHP-FPMプロセスマネージャの設定conf.d/
:各拡張モジュールごとの.ini
ファイル
php.iniファイル構造例
php.ini
はINIフォーマットで記述されます。代表的な設定例は—
; メモリ制限の変更
memory_limit = 256M
; アップロードファイルの最大サイズ
upload_max_filesize = 50M
post_max_size = 50M
; タイムゾーン設定
date.timezone = "Asia/Shanghai" ; もしくは"UTC", "America/New_York"等、必要に応じて指定
; エラー表示の有効化(開発環境専用!)
display_errors = On
error_reporting = E_ALL
; 最大実行時間の変更
max_execution_time = 300
; ファイルシステムアクセス制限例
; open_basedir = /Applications/ServBay/www/:/tmp/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
php-fpm.confファイル構造例
php-fpm.conf
はグローバル設定とプール(pool)設定ブロックから構成されます。ServBayでは通常、www
という名前の既定プールを設定します。
[global]
; グローバルエラーログパス
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; リッスンアドレス・ポートまたはソケットファイル
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; ユーザー・グループ(通常ServBayは現在のユーザーで実行)
; user = servbay-demo
; group = staff
; プロセスマネージメント(static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; 最大子プロセス数
pm.start_servers = 2 ; 起動時生成プロセス数
pm.min_spare_servers = 1 ; 最小アイドルプロセス数
pm.max_spare_servers = 6 ; 最大アイドルプロセス数
pm.max_requests = 1024 ; 各子プロセスの最大処理数(到達時にリスタートしてメモリリークを回避)
; スローリクエストログ有効化
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; php.iniの同名設定上書き例
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PHPモジュールロード設定例(conf.d/)
conf.d/
配下の各.ini
ファイルは、特定PHP拡張の読み込みや設定を記述します。たとえばxdebug.ini
には以下のように記載されます:
[Xdebug]
; Xdebug拡張の読み込み
zend_extension = xdebug.so
; Xdebugモード(debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; デバッグ起動モード(yes, trigger, develop)
; yes: 常にデバッグを開始
; trigger: 特定トリガ(GET/POSTパラメータやcookie等)で開始
; develop: 開発用機能のみ有効(例:スタックトレース)
xdebug.start_with_request=yes
; デバッグ用IDE接続のホスト・ポート
xdebug.client_host=localhost
xdebug.client_port=39083
; Xdebugログパス
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
繰り返しますが、これらのファイルは場所確認のみとし、設定変更は必ずServBay UI経由で行ってください。
設定適用:PHPサービスの再起動
ServBay UIを通じて設定変更を行うと、ServBayは自動的に変更を検知し反映します。ただし設定によっては、全てを完全に反映させるためPHPサービスの再起動が必要な場合があります。
サービス再起動は以下の方法で行えます:
ServBayユーザーインターフェイスでの再起動
- ServBayのメインウィンドウを開く
- 左ナビゲーションバーで パッケージ をクリック
- 設定変更したPHPバージョンを探す
- そのPHPバージョン横の再起動ボタン(円形矢印アイコン)をクリック
servbayctl
コマンドラインツールでの再起動
CLI操作が得意な開発者向けに、ServBayはservbayctl
ツールも提供しています。これを使うとPHPの各バージョンのサービス管理(再起動含む)が行えます。
ターミナルを開き、以下コマンドを実行(8.3
部分は対象PHPバージョンに合わせてください):
servbayctl restart php 8.3
このコマンドにより、指定バージョンのPHP-FPMプロセスが再起動し新しい設定が反映されます。
よくある質問(FAQ)
Q:
php.ini
を手動編集したのに反映されない/元に戻ってしまいました。なぜですか?- A: ServBayは各ソフトウェアパッケージ設定ファイルを自動管理・生成します。手動編集した内容はServBayの設定再生成・サービス再起動等の際に上書きされてしまいます。PHP設定の編集は必ずServBay UI経由で行いましょう(推奨かつ永続的です)。
Q: PHPのメモリ制限やファイルサイズ上限を増やしたい場合は?
- A: ServBay UIで 言語 → PHPバージョンを選ぶ→ PHP FPM設定で
memory_limit
を調整(Web用)、php.ini設定でupload_max_filesize
とpost_max_size
を調整(グローバルだがWebはFPM設定が優先)。変更後は保存とPHP再起動をお忘れなく。
- A: ServBay UIで 言語 → PHPバージョンを選ぶ→ PHP FPM設定で
Q: Xdebugの有効化や設定はどうする?
- A: ServBay UIで 言語 → PHPバージョンを選ぶ→ 拡張モジュール設定で
xdebug
を有効化し、xdebug.mode
やxdebug.client_host
、xdebug.client_port
等を必要に応じて編集し、保存→PHP再起動で適用されます。
- A: ServBay UIで 言語 → PHPバージョンを選ぶ→ 拡張モジュール設定で
Q:
php.ini
とPHP-FPM設定の違い・どちらを編集すべき?- A:
php.ini
はグローバル設定(CLI/WEB共通)で、PHP-FPM(php-fpm.conf
)はWebサーバー環境専用です。同名項目はFPM側がWebで優先されます。Web環境特有設定(メモリ、実行時間、エラー表示等)はFPM側を、CLI等共通設定(タイムゾーン、関数無効化等)はphp.iniを編集します。ServBay UIではこの区分がわかりやすくまとめられています。
- A:
まとめ
ServBayは、php.ini
・PHP-FPM・多様な拡張モジュールを含むPHPの各設定を、ユーザーインターフェイスから安全かつ簡単に管理できるプラットフォームです。UI経由で設定を調整・保存し、PHPサービスをリスタートすることで、ご自身の開発ニーズに応じた最適な動作環境を構築できます。設定ファイルの配置や構造理解は有益ですが、実際の編集操作は必ずServBay UI経由で行い、手動編集による意図せぬ上書きを防ぎましょう。ServBayの強力な設定機能で、各プロジェクトに合致したPHP実行環境を自在にカスタマイズしてください。