CentOS 7 配置 Nginx 的步骤如下:
首先更新 yum,没有安装 yum 的自行安装
yum update
1. 安装 Nginx
yum install nginx
开启 Nginx 并设置开机启动
systemctl start nginx
systemctl enable nginx
2. 安装最新版本的 PHP、PHP-FPM
yum install php php-fpm php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml php-pdo php-pgsql php-pecl-redis php-soap
安装成功后,运行如下命令查看 php 版本
php -v
默认的 php-fpm 安装成功后,/var/run/php-fpm 下会有一个文件 php-fpm.pid
3. 配置 nginx 解析 php
1)修改 nginx 配置文件
vim /etc/nginx/nginx.conf
在 server 中插入如下代码:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
###Save user landing page to cookie: srcid for PHP files
##add_header Set-Cookie $srcid;
}
2) 修改 php-fpm 配置文件
vim /etc/php-fpm.d/www.conf
找到以下三行代码并修改如下
user = nginx group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nignx
listen.group = nginx
listen.mode = 0660
如果没有配置这一步,浏览器打开 php 文件会报错
“The page you are looking for is temporarily unavailable. Please try again later”
3)修改 php.ini
找到 cgi.fix_pathinfo 并修改为 0
cgi.fix_pathinfo=0
以上配置完成后,重启 nginx、php-fpm
systemctl restart php-fpm nginx
测试配置是否成功
vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
php访问不了 错误
日志目录 /var/log/nginx/ error.log
*13 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 218.70.106.202, server: localhost, request: “GET /index.php HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php-fpm/php-fpm.sock:”,
在centos7上安装好nginx、php后无法成功访问php代码写的网页,查看日志发现了这个错误意思就是连接sock文件失败(拒绝访问),也就是说权限不足,查看此文件属性发现属于root用户的,改为nginx用户即可
具体操作:
vim /etc/php-fpm.d/www.conf
listen.owner=nobody
listen.group=nobody
修改为:
listen.owner=nginx
listen.group=nginx
然后修改php-fpm.sock文件的属性:
进入此文件所在目录:
cd /var/run/php-fpm
chown nginx php-fpm.sock
chgrp nginx php-fpm.sock
重启 nginx、php-fpm
systemctl restart php-fpm nginx