php-fpm配置详解


由于篇幅和具体环境的限制,我无法在这里提供一个完整的`php-fpm`配置详解文档,但我可以为你概述一些关键的配置项及其作用,帮助你理解`php-fpm`配置的基本结构和常用选项。

`php-fpm`的配置文件通常名为`php-fpm.conf`,并且可能还包含多个池(pool)配置文件(例如`www.conf`),每个池代表了一组具有相同配置选项的PHP-FPM进程。

### 通用配置(php-fpm.conf)

- `pid`:指定php-fpm的PID文件路径。

- `error_log`:设置错误日志文件的路径。

- `log_level`:设置日志级别,如`notice`、`warning`、`error`等。

- `emergency_restart_threshold`:在指定时间内,如果崩溃的php-fpm子进程数达到这个值,则重启所有子进程。

- `emergency_restart_interval`:`emergency_restart_threshold`指定的时间范围,单位可以是s(秒)、m(分)、h(小时)或D(天)。

### 池配置(如www.conf)

- `listen`:指定php-fpm监听的地址和端口,或者Unix socket路径。

- `listen.allowed_clients`:如果`listen`是指定地址和端口,这个选项可以用来限制哪些客户端可以连接到这个端口。

- `pm`:选择进程管理器类型,如`static`(静态)、`dynamic`(动态)或`ondemand`(按需)。

- `pm.max_children`:对于`static`和`dynamic`类型,这个值指定了可以同时存在的子进程最大数量。

- `pm.start_servers`:启动时创建的子进程数量(仅对`dynamic`和`ondemand`有效)。

- `pm.min_spare_servers`和`pm.max_spare_servers`:`dynamic`类型下,分别指定空闲子进程的最小和最大数量。

- `pm.max_requests`:子进程在服务多少个请求后重启,有助于避免内存泄漏。

- `request_terminate_timeout`:请求超时时间,如果达到这个时间还没有完成,则会被强制终止。

- `slowlog`:慢日志的路径,用于记录执行时间超过`request_slowlog_timeout`的请求。

- `request_slowlog_timeout`:慢日志的阈值时间。

这些只是`php-fpm`配置中的一部分选项,实际上还有很多其他选项可以根据需要进行配置。由于篇幅限制,我无法在这里一一列举。

如果你需要更详细的配置信息,建议查阅PHP官方文档中关于`php-fpm`配置的部分,或者搜索相关的教程和指南。这些资源通常会提供更详细、更具体的配置示例和解释。