修改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 版本,就會在右側看到編輯選單。一個典型的介面如下圖
介面上,分為 3 個不同的配置項。分別對應配置 PHP-FPM、 PHP、PHP 模組。下面將會逐個展開說明。
PHP FPM
提示
php-fpm.conf
對應 Web 服務中 PHP 運行的表現,所有配置會優先於(覆蓋) php.ini
中的配置。
但是,這裡的設置不會影響到代碼在 CLI 中的表現。
首先是 PHP FPM 配置界面。不管是 Caddy 還是 NGINX,ServBay Web 服務中的 PHP 都是以 FPM 方式運行。在這個界面,你可以配置 FPM 程序的數量、記憶體限制、log 的錯誤級別、是否在瀏覽器中顯示錯誤信息等。
比如,我們希望在 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
的設置有可能會被 php-fpm.conf
在 Web 中覆蓋。
PHP 配置部分,對應的是 php.ini
中的配置項,這是 PHP 的核心配置文件。
在這裡,你可以配置大部分 php.ini
的選項,比如影響 POST 表單的 post_max_size
和影響到上傳文件大小的 upload_max_filesize
。還有禁用函數的 disable_functions
和 disable_classes
等。
注意,因為設置是全局的,如果你要設置 open_basedir
,建議把網站項目都統一放到 /Applications/ServBay/www
中,這樣在設置 open_basedir
時可以避免設置多個目錄。
詳細的配置字段,請參考 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/Hong_Kong"
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 服務以使更改生效。