赞
踩
1、由于启动用户和nginx工作用户不一致所致
查看nginx的启动用户,发现是nobody,而为是用root启动的
命令:ps aux | grep "nginx: worker process" | awk' {print $1}'
将nginx.config的user改为和启动用户一致
2、缺少index.html或者index.php文件,
就是配置文件中index index.html index.htm这行中的指定的文件。
server {
listen 80;
server_name localhost;
index index.php index.html;
root /data/www/;
}
如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。
3、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
chmod -R 777 /data
chmod -R 777 /data/www/
4、SELinux设置为开启状态(enabled)的原因。
查看当前selinux的状态。
sestatus
将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
重启生效
1、nginx的配置文件问题
即 /usr/local/nginx/nginx.conf (个人的,你们的路径不一定是这个)中的 fastcgi_param 参数配置问题,nginx默认配置为:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
但是,如果你在nginx.conf 中设置了设置你本地的 root 目录(服务根目录),例如:
root /var/www/console/frontend/www/;
那么需要将 fastcgi_param 参数修改为:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
配置完成后,尝试重启 nginx 和 php-fpm, 看下服务是否恢复了,如果没有恢复,请接着往下看:
2、默认的php-fpm.conf 中会 include 这个一个文件夹(可能会不同):
include=/usr/local/etc/php/7.1/php-fpm.d/*.conf
意思是把 php-fpm.d 文件夹下面的所有 .conf 结尾的文件都 include 进来,一般情况下,会在这些 .conf 文件中配置 user/group
进行到这里,你可以执行一下下面这条命令,看下你目前的 php-fpm 是用什么身份运
ps aux | grep -v root | grep php-fpm | cut -d\ -f1 | sort | uniq
特别的,在OS X 系统下,用户应该是 :
user = [your username]
group = staff
如果发现用户不对,比如,你的身份是 admin ,但是上面命令的执行结果却是 nobody,那么你需要将 php-fpm.d 文件夹(或者其他文件夹,或者直接在 php-fpm.conf 中进行设置,视个人情况而定)下的 user 修改为你当前的身份,同样的,修改完成后重启 nginx 和 php-fpm 看下是否正常
如果还是不正常,那么请参考下其他的解决方案,不过大部分情况,上面两种case 应该都包含进去了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。