在Linux上配置和优化PHP-FPM(FastCGI Process Manager)可以显著提高PHP应用程序的性能。以下是一些常见的配置和优化步骤:
首先,确保你已经安装了PHP-FPM。你可以使用包管理器来安装,例如在Ubuntu上:
sudo apt update
sudo apt install php-fpm php-mysql
PHP-FPM的配置文件通常位于 /etc/php/{version}/fpm/pool.d/www.conf
,其中 {version}
是你安装的PHP版本号。
基本配置:
listen
: 指定PHP-FPM监听的地址和端口。通常设置为 /run/php/php{version}-fpm.sock
或 127.0.0.1:9000
。listen.owner
和 listen.group
: 设置监听套接字的属主和属组。user
和 group
: 设置PHP-FPM进程的用户和组。进程管理:
pm
: 进程管理模式,可选 dynamic
、ondemand
、static
。pm.max_children
: 最大子进程数。pm.start_servers
: 启动时的服务器进程数。pm.min_spare_servers
: 最小空闲服务器进程数。pm.max_spare_servers
: 最大空闲服务器进程数。pm.max_requests
: 每个子进程在重启前处理的请求数。性能优化:
request_terminate_timeout
: 设置请求超时时间。slowlog
: 慢查询日志。示例配置:
[www]
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 1000
request_terminate_timeout = 30s
slowlog = /var/log/php-fpm/www-slow.log
slowlog_latency = 10s
如果你使用Nginx或Apache作为Web服务器,确保正确配置它们以使用PHP-FPM。
Nginx配置示例:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Apache配置示例:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
启动PHP-FPM服务并设置开机自启动:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
监控PHP-FPM状态:
sudo systemctl status php7.4-fpm
确保Nginx和PHP-FPM的运行用户和用户组设置正确,以限制对敏感文件和目录的访问。
始终使用最新版本的PHP和PHP扩展库,以获得性能改进和安全修复。
通过以上步骤,你可以有效地配置和优化PHP-FPM,从而提升你的PHP应用程序的性能。