在Linux系统中,PHP-FPM(FastCGI Process Manager)与Nginx的搭配使用可以提供高性能的PHP处理能力。以下是一些搭配使用技巧:
首先,确保你已经安装了PHP-FPM。你可以使用包管理器来安装,例如在Ubuntu上:
sudo apt-get update
sudo apt-get install php-fpm
编辑PHP-FPM的配置文件,通常位于/etc/php/7.x/fpm/pool.d/www.conf(根据你的PHP版本调整路径)。确保以下配置项正确设置:
; 监听的socket或端口
listen = /run/php/php7.x-fpm.sock ; 使用socket
; 或者
; listen = 127.0.0.1:9000 ; 使用端口
; 用户和组
user = www-data
group = www-data
; PM模式
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
编辑Nginx的配置文件,通常位于/etc/nginx/sites-available/default。确保以下配置项正确设置:
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.x-fpm.sock; ; 使用socket
; 或者
; fastcgi_pass 127.0.0.1:9000; ; 使用端口
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启动并启用PHP-FPM和Nginx服务:
sudo systemctl start php7.x-fpm
sudo systemctl enable php7.x-fpm
sudo systemctl start nginx
sudo systemctl enable nginx
pm.max_children等参数。opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
...
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
location / {
...
proxy_cache my_cache;
proxy_pass http://unix:/run/php/php7.x-fpm.sock;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
systemd-cgtop或htop监控PHP-FPM进程的资源使用情况。/var/log/nginx/error.log和/var/log/php7.x-fpm.log。通过以上步骤和技巧,你可以有效地搭配使用PHP-FPM和Nginx,提升Web应用的性能和稳定性。