Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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


And its always redirect to -


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/ -

   server {
                listen 80;
                rewrite ^/(.*)$1 permanent;
    server {
                listen 80;
                location / {
                            index index.php index.html;
                # pass the PHP scripts to FastCGI server listening on
                location ~ \.php$
                fastcgi_index index.php;
                include /usr/local/nginx/conf/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME

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/ – Ido B Sep 2 '12 at 8:06
let's see it then. – Iain Sep 2 '12 at 8:08

You have placed your root directive within a location block, but 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/;

    location / {
share|improve this answer
In which file i need to change it ? – Ido B Sep 2 '12 at 8:50
You change it in every location that it needs to be changed. – Michael Hampton Sep 2 '12 at 8:59
I wish all the tutorials out there mentioned this.... – Chris Apr 13 '15 at 16:59

Your Answer


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.