闲来无事,研究了一下别人的 PHP,发现很多人的 php-fpm 弃用了端口模式,于是我也改造了一下。
PHP 的配置
修改 php-fpm 配置,将原来的端口监听改为 socket 方式。注意需要指定监听使用的用户和对应权限
;listen = 127.0.0.1:9000 listen = /var/run/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
修改好后重启 php-fpm 服务即可
service php-fpm restart
Nginx 的配置
修改站点模板,将 fastcgi_pass 127.0.0.1:9000
注释掉,并添加 fastcgi_pass unix:/var/run/php-fpm.sock
对应 php-fpm 的 socket 文件配置。注意此文件权限必须为 nginx 可访问的权限。例配如下所示
location ~ \.php$ { root /website; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
配置好后重启 Nginx 即可。
systemctl restart nginx.service
其他配置
第一个当然是配置一下 sock 文件的权限,当然,如果你选择重启,会删除重建,此时就不用管权限了
chown nginx:nginx /var/run/php-fpm.sock
最后顺便贴一份别人在 nginx 配置中针对 php 的优化
# 添加 fastcgi 关于 50*错误的快速转发 fastcgi_intercept_errors on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k;