Can't get nginx to run virtual hosts (403 Forbidden - modified root structure)

Posted June 2, 2015 22.5k views

Looking for help from someone out there. I’ve searched through a lot of tutorials, and I feel like I’m close to a solution, but haven’t gotten it yet.

I’m running CentOS 7 on a new droplet. I want to run nginx to serve multiple virtual hosts. Here’s the list of commands I used to attempt to get nginx running from beginning to end:

sudo yum install nginx -y
sudo nano /etc/php-fpm.d/www.conf
    change apache to nginx in this section: Unix user/group of processes
sudo nano /etc/nginx/nginx.conf
    change worker_processes to 4
    add this under http: server_names_hash_bucket_size  64;
sudo nano /etc/nginx/conf.d/virtual.conf
        this configuration is pasted into the blank file:

server {
    listen       80;
    error_log /home/user/public_html/;

    location / {
        root   /home/user/public_html/;
        index  index.php index.html index.htm;

    # pass the PHP scripts to FastCGI server listening on
    location ~ .php$ {
        fastcgi_index  index.php;
        root    /home/user/;
        fastcgi_param  SCRIPT_FILENAME  /home/user/public_html/$fastcgi_script_name;
        include fastcgi_params;

mkdir -p /home/user/public_html/
chmod -R 755 /home/user/public_html
nano /home/user/public_html/
        paste this code in the file:



sudo systemctl start nginx && systemctl enable nginx.service

My DNS is pointing to the IP of the server. The issue I’m having is that I continue to get a ‘403 forbidden error’ message when I try to visit the site. After a while the other posts found on Google start to repeat themselves so I’m not getting any new answers that way. Anyone have any ideas as to why this isn’t working?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

Hi! Do you see any errors in nginx’s error log?

tail /home/user/public_html/

What are the permissions on the home directory? Please post the output of ls -ld /home/user.

I finally got it. I found this page and used the permissions he listed, and it finally made nginx work: