Nginx: opendir() failed (13: permission denied)

By in ,
No comments

This error could be due to nginx not being to access the folder. We can fix this by adding www-data/nginx as the owner of the directory and sub directory. We can give persmissions to www-data/nginx user to the directory. Also we need to add executable permission to the path of the folder.

chmod +x /home/
chmod +x /home/username
chmod +x /home/username/siteroot

Also if you are using a centos 7 box, SELinux is enabled by default. We can set it to persmissive mode by using the following command.

sudo setenforce permissive

But SELinux will be enabled again on restart.
We can fix this by

yum install -y policycoreutils-devel
grep nginx /var/log/audit/audit.log | audit2allow -M nginx
semodule -i nginx.pp

Also if you do not want to meddle with SELinux, we can run

chcon -Rt httpd_sys_content_t /home/username/siteroot
sudo semanage port -a -t http_port_t  -p tcp <port-number>

StackOverflow Link

Leave a Reply

Your email address will not be published. Required fields are marked *