本文共 1265 字,大约阅读时间需要 4 分钟。
这两天,笔者在搭建完LNMP环境之后,想要在这个环境下继续安装wordpress,然而不论是使用浏览器访
问还是使用 curl 测试,一直显示403,在经过多方资料的收集与高人的指点,终于解决,下面来总结一
下nginx常见403问题的原因与解决方法。
一、权限问题
nginx 的默认用户是nobody,如果我们用的是root或者其它用户的话,会没有权限,从而显示403。因
此,我们需要在配置文件/usr/local/nginx/conf/nginx.conf中加一条 user nobody nobody;
二、php索引问题
在虚拟主机配置文件中,我们一定要定义一个php的索引配制文件,不然nginx将不支持php的解析,从而
403。
配置文件如下:
server
{
listen 80;
server_name 114.215.129.177;
index index.html index.htm index.php;
root /data/www;
location ~ \.php$ {
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}
三、路径错误
同样是在上面的配置文件中,我们如果想要安装wordpress或者discuz这样的软件的话,将它放入指定的
目录之后,一定要在配置文件中修改相应的配置,比如笔者所放入的目录是/data/www,所以在配置文件
中也要在相应的地方设置成/data/www,同理,我们在测试php解析的时候,也要将配置文件中的路径改
成测试php文件的存放路径
四、默认主机的限制
通常,我们在LNMP环境中,为了安全起见,会定义一个默认虚拟主机的文件,里面会有一些限制,可能
会使我们的访问403
默认主机的配置内容如下:
server
{
listen 80 default_server;
server_name 114.215.129.177;
index index.html index.htm index.php;
root /tmp/tmp;
deny all;
}
注意:这里同样也需要php的索引,而且root对应的目录/tmp/tmp/一定要有(例)
笔者就是因为这里的deny的限制,从而访问显示403,我们可以将其改成allow
五、其它错误
除了上面例举的一些常规错误外,还有非常规的错误,比如我,导致所有的
网站链接被重置,导致了324的错误,不能返回数据
本文转自奇迹的少年博客51CTO博客,原文链接http://blog.51cto.com/raffaelexr/1730551如需转载请自行联系原作者
liliangchun