解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法

我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403,

于是查看nginx日志,路径为/var/log/nginx/error.log。打开日志发现报错Permission denied,详细报错如下:

2018/11/28 11:39:40 [error] 41772#41772: *130 "/home/hc/dists/autoAweme/dist/index.html" is forbidden (13: Permission denied), client: 192.168.3.139, server: 192.168.3.139, request: "GET / HTTP/1.1", host: "192.168.3.139"

原因一:由于启动用户和nginx工作用户不一致所致

1 查看nginx的启动用户

命令:

ps aux | grep "nginx: worker process" | awk  '{print $1}'
[root@localhost hc]# ps aux | grep "nginx: worker process" | awk  '{print $1}'
nginx
root

发现是nginx,而不是用root启动的

2. 将nginx.conf的user改为和启动用户一致

将nginx.conf文件中的 user 对应的nginx 改为 root ,改完后重启

[root@localhost hc]# vim /etc/nginx/nginx.conf
[root@localhost hc]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost hc]# nginx -s reload

二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

server {
listen 80;
server_name localhost;
index index.php index.html;
root / var/www;
}

如果在/ var/www下面没有index.php,index.html的时候,直接访问域名,找不到文件,会报403 forbidden。

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

chmod -R 755 / var/www

四、SELinux设置为开启状态(enabled)的原因

首先查看本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态

/usr/sbin/ sestatus -v

或者使用getenforce命令检查

如何关闭 SELinux 呢

1.临时关闭(不用重启)

setenforce  0

2. 永久关闭(需要重启)

修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled

    vi /etc/selinux/config
 

   #SELINUX=enforcing

   SELINUX=disabled

重启生效。

reboot

参考:https://blog.csdn.net/onlysunnyboy/article/details/75270533

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码农分享

2 目录结构

vonic-webpack-starter 是vonic-template下载后的目录,自动生成结构保持不变,只需要改变Src目录下的目录结构,对修改后的结构进...

1133
来自专栏Java后端技术

Centos7设置IP为固定值

注意:如果发现你的虚拟机连不上网,ping固定地址的时候出现:connect:Network is unreachable;而且使用以下命令查看ip时发现ip并...

964
来自专栏技术博文

linux scp 命令

scp 命令 scp 命令 意思是 secure copy 即安全拷贝,可以把它看做是 cp 命令的高级版,可以跨主机拷贝。 经常用来在局域网内不同主机之间分享...

5284
来自专栏CaiRui

Python os模块常用命令

1、os.name---判断现在正在实用的平台,Windows返回'nt';linux返回'posix' 2、os.getcwd()---得到当前工作的目录。 ...

2007
来自专栏大数据-Hadoop、Spark

Linux NAT网络设置访问外网

1.查看本地实体机的VMNet8的属性, ? 物理机VMNet8信息.png 实体机的网络信息 本地实体机的IP4地址:192.168.92.2 子网掩码...

9216
来自专栏佳爷的后花媛

github上搭建个人博客(有更新)

第三步:这个项目就是专门的放页面的,所以master分支即可. 如果是你的某个仓库的页面,你需要设置到 gh-pages 分支中.进入(设置页面)sett...

4772
来自专栏刘君君

Redis 集群规范

2935
来自专栏别先生

作为完美主义者(强迫症)如何将linux的eth1网卡修改为eth0网卡

1:由于你是克隆的虚拟机或者直接就是使用别人的Centos操作系统直接打开到自己本地的虚拟机,网卡可能就是eth1而不是eth0,下面简单写一下如何将eth1修...

2975
来自专栏自动化测试实战

flask第33篇——加载静态文件

静态文件主要包括css,JavaScript等脚本文件、图片等,在加载文件的时候主要是用url_for方法。

3852
来自专栏逻辑熊猫带你玩Python

Python | “当包管理器不能帮你安装pip时怎么办?”

小编最近更新演示环境,安装开发环境的时候发现这样一个问题,那就是Ubuntu Server 18.04LTS以及Ubuntu Server 16.04LTS版本...

1051

扫码关注云+社区

领取腾讯云代金券