2012-10-03 170 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下的问题 –