修改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服务以使更改生效。