温馨提示×

PHP-FPM在Linux上的最佳实践

小樊
56
2025-06-25 04:52:43
栏目: 编程语言

在Linux上配置和优化PHP-FPM(FastCGI Process Manager)可以显著提高PHP应用程序的性能。以下是一些常见的配置和优化步骤:

安装PHP-FPM

首先,确保你已经安装了PHP-FPM。你可以使用包管理器来安装,例如在Ubuntu上:

sudo apt update sudo apt install php-fpm php-mysql 

配置PHP-FPM

PHP-FPM的配置文件通常位于 /etc/php/{version}/fpm/pool.d/www.conf,其中 {version} 是你安装的PHP版本号。

基本配置

  • listen: 指定PHP-FPM监听的地址和端口。通常设置为 /run/php/php{version}-fpm.sock127.0.0.1:9000
  • listen.ownerlisten.group: 设置监听套接字的属主和属组。
  • usergroup: 设置PHP-FPM进程的用户和组。

进程管理

  • pm: 进程管理模式,可选 dynamicondemandstatic
  • 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 

配置Web服务器

如果你使用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

启动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扩展库,以获得性能改进和安全修复。

通过以上步骤,你可以有效地配置和优化PHP-FPM,从而提升你的PHP应用程序的性能。

0