CentOS中,使用PHP-FPM+Nginx运行PHP网站

前端之家收集整理的这篇文章主要介绍了CentOS中,使用PHP-FPM+Nginx运行PHP网站前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

安装NginxPHP-fpm

yum install Nginx PHP-fpm

PHP-fpm增加反向代理

cat >/etc/Nginx/conf.d/my_PHP.conf<<EOF
server {
  listen 80;
  server_name my_PHP.lslxdx.com my_PHP.lslxdx.com;
  root /var/www/html/my_PHP;

  location / {
    expires -1s;
    try_files \$uri =404;
    fastcgi_split_path_info ^(.+\.PHP)(/.+)\$;
    fastcgi_param PATH_INFO \$fastcgi_path_info;
    fastcgi_index index.PHP;

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }

  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root html;
  }
}
EOF

创建网站目录

mkdir -p /var/www/html/my_PHP

添加测试PHP文件

cat > /var/www/html/my_PHP/info.PHP<<EOF <?PHP PHPinfo(); ?> EOF

启动NginxPHP-fpm

Nginx 
service PHP-fpm restart

注意

  1. PHP-fpm的默认监听9000端口,且仅接受127.0.0.1地址的访问,这些配置在/etc/PHP-fpm.d/www.conf文件
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
  1. PHP-fpm是PHP的容器,在使用Nginx做反向代理时,应该使用fastcgi_pass,而非proxy_pass,这很关键

  2. 建议使用unix socket做本地转发,而非127.0.0.1:9000的方式,此时应该修改2个文件

# /etc/PHP-fpm.d/www.conf
listen = /tmp/my_PHP_fpm.sock
# /etc/Nginx/conf.d/my_PHP.conf
fastcgi_pass unix:/tmp/my_PHP_fpm.sock;

使用unix socket可能会导致404,原因是PHP-fpm没有对/tmp/my_PHP_fpm.sock的rw权限:
ll /tmp/my_PHP_fpm.sock
srw-rw—- 1 root root 0 7月 11 17:07 /tmp/my_PHP_fpm.sock
此时需要chmod a+rw /tmp/my_PHP_fpm.sock(这种方法不推荐,因为每次启动PHP-fpm后,都需要手动chmod),如果想从根本上解决这个问题,应该使用/etc/PHP-fpm.d/www.conf文件中配置的user,启动PHP-fpm

参考:

  1. Nginx + PHP-FPM + MySQL + phpMyAdmin on Ubuntu 12.04
  2. 安装了php-fpm,就不需要安装php了(不确定)
原文链接:https://www.f2er.com/centos/381667.html

猜你在找的CentOS相关文章