2012-10-03 135 views
74

經過10多個小時的研究,我還沒有想出爲什麼這不起作用!我試圖將我的本地主機移動到/ etc/nginx/sites-enabled/default中啓用了站點的文件夾中。Nginx沒有在啓用網站的網站中選取網站?

它是來自sites-available文件夾的符號鏈接。當採用下面的配置,我碰到一個 「無法連接」 使用本地主機:8080爲我的地址

nginx.conf(/usr/local/nginx/conf/nginx.conf):

user www-data; 
worker_processes 2; 

events { 
    worker_connections 1024; 
} 


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

    sendfile  on; 

    keepalive_timeout 65; 

    include /etc/nginx/sites-enabled/*; 
} 

網站 - 可選(在/ etc/nginx的/網站可用/默認):

server { 
    listen 8080; 
    root /home/myusername/myown/customdirectory; 
    index index.php index.html index.htm; 
    server_name localhost; 

    location/{ 
     try_files $uri $uri/ /index.html; 
    } 

    location /doc/ { 
     alias /usr/share/doc/; 
     autoindex on; 
     allow 127.0.0.1; 
     allow ::1; 
     deny all; 
    } 


    error_page 404 /404.html; 

    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root /usr/share/nginx/www; 
    } 

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

    location ~ /\.ht { 
     deny all; 
    } 
} 

我能得到這個工作,如果我把從可用到nginx.conf網站的相關信息,我只是想不通爲什麼它不以這種方式工作?

謝謝!

+2

你確定符號鏈接不破? ls -l /etc/nginx/ sites-enabled/ –

+0

是的,我沒有仔細檢查符號鏈接,仍然沒有運氣 – Discorick

+0

另請參閱:http://stackoverflow.com/questions/17413526/nginx-missing-sites-available-directory – 2013-12-18 17:54:09

回答

147

我有同樣的問題。這是因爲我不小心使用了符號鏈接的相對路徑。

你確定你使用的完整路徑,例如:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf 
+3

我的相對路徑工作得很好。 – Hannes

+26

謝謝!無法相信相關鏈接不起作用。 O.o –

+0

對我來說,這也解決了它!謝謝! –

14

sites-enabled/default包括sites-available/default。它只需要一條線。

sites-enabled/default(新配置版本?):

看來,包括路徑是相對於包含它

include sites-available/default; 

include documentation文件。


相信nginx的某些版本允許包括/純粹通過具有所包括的文件的相對路徑的單個線連接到其他文件。 (至少,這是什麼樣子的我一直在使用一些「繼承」配置文件,直到一個新的nginx版本打破了他們。)

sites-enabled/default(舊的配置版本?):

似乎該包括路徑是相對於當前文件

../sites-available/default 
6

改變從:

include /etc/nginx/sites-enabled/*; 

include /etc/nginx/sites-enabled/*.*; 

固定我的問題

+1

解決了我在Ubuntu 16.xx下的問題 –