Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I setup a server with Nginx and i set my Public_HTML in -

/home/user/public_html/website.com/public

And its always redirect to -

/usr/local/nginx/html/

How can i change this ?

Nginx.conf -

user www-data www-data;
worker_processes  4;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     off;
    keepalive_timeout  5;

    gzip  on;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_types      text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /usr/local/nginx/sites-enabled/*;
}

/usr/local/nginx/sites-enabled/default -

 server  {
                listen       80;
                server_name  localhost;

                location /  {
                        root   html;
                        index  index.php index.html index.htm;
                               }

                # redirect server error pages to the static page /50x.html
                error_page   500 502 503 504  /50x.html;
                location = /50x.html
                               {
                                    root   html;
                               }
                    }

/usr/local/nginx/sites-available/website.com -

   server {
                listen 80;
                server_name website.com;
                rewrite ^/(.*) http://www.website.com/$1 permanent;
           }
    server {
                listen 80;
                server_name www.website.com;
                access_log
    /home/user/public_html/website.com/log/access.log;
                error_log
    /home/user/public_html/website.com/log/error.log;
                location / {
                            root
    /home/user/public_html/website.com/public/;
                            index index.php index.html;
                            }
                # pass the PHP scripts to FastCGI server listening on
                # 127.0.0.1:9000
                location ~ \.php$
                                    {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include /usr/local/nginx/conf/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME
    /home/user/public_html/website.com/public/$fastcgi_script_name;
                                    }
          }

The error message I get is

Fatal error: require_once() [function.require]: Failed opening required '/usr/local/nginx/html/202-config/functions.php'

the server try to find the file in the Nginx folder and not in my Public_Html

share|improve this question
    
Can you show us your config file please. –  Iain Sep 2 '12 at 7:37
    
And /usr/local/nginx/sites-enabled/default –  Iain Sep 2 '12 at 7:44
    
Are there oterh files in /usr/local/nginx/sites-enabled/ ? –  Iain Sep 2 '12 at 8:04
    
Yes - /usr/local/nginx/sites-available/website.com –  Ido B Sep 2 '12 at 8:06
    
let's see it then. –  Iain Sep 2 '12 at 8:08
show 2 more comments

1 Answer

You have placed your root directive within a location block, where it belongs in the server block just outside it. This is a very common nginx misconfiguration.

Once you move it to the correct spot, you should find your scripts start working.

server {
    #....
    root /home/user/public_html/website.com/public/;

    location / {
share|improve this answer
    
In which file i need to change it ? –  Ido B Sep 2 '12 at 8:50
1  
You change it in every location that it needs to be changed. –  Michael Hampton Sep 2 '12 at 8:59
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.