2016-04-29 15 views
0

サーバブロックで指定されたルートを持つnginx設定があります。このようなページ(https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/)によれば、場所/ブロックに同じルートを置く必要もなく、十分であるはずです。しかし、私が場所/ブロックにルート・ディレクティブを置かない限り、私は404エラーを受け取ります。ここに私のサーバブロックだ:サーバにルートがあるにもかかわらず、nginxの場所がルートなしで動作しない

server { 
    listen   80; 
    server_name  mysite.com 

    root /usr/local/nginx/sites/mysite; 
    index index.php index.html; 

    location/{ 
     root /usr/local/nginx/sites/mysite; 
     index index.php index.html index.htm; 
    } 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     include fastcgi.conf; 
    } 

    error_page 500 502 503 504 /50x.html; 
} 

だから、 "root /usr/local/nginx/sites/mysite;は" location /内にある場合、すべてが動作します。しかし、そうでない場合は、サーバーブロック内の同じルートディレクティブが無視されるようなものです。私はここで何が欠けていますか?

+3

前の行に ';'がありません。 –

答えて

1

構文エラーがあります。

server { 
    listen   80; 
    server_name  mysite.com; # <--- Missing semicolon 

    root /usr/local/nginx/sites/mysite; 
    index index.php index.html; 

    location/{ 
     root /usr/local/nginx/sites/mysite; 
     index index.php index.html index.htm; 
    } 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     include fastcgi.conf; 
    } 

    error_page 500 502 503 504 /50x.html; 
} 

これは、中括弧やセミコロンで区切られたようなキーワードが最初に出現しなければならないとして、root属性に盲目であることをnginxの原因となります。

関連する問題