Nginx etkin sitelerde site seçmiyor mu?


105

10 saatten fazla araştırma yaptıktan sonra bunun neden işe yaramadığını anlamadım! Localhost'umu / etc / nginx / sites-enabled / default içindeki siteler etkin klasörüme taşımaya çalışıyorum.

Sitelerin mevcut klasöründen bir sembolik bağlantıdır. Aşağıdaki yapılandırmayı kullanırken localhost kullanarak bir "bağlanılamıyor" mesajı alıyorum: adresim olarak 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/*; 
}

kullanılabilir siteler (/ etc / nginx / sites-available / default):

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;
    }
}

İlgili bilgileri nginx.conf'a koyarsam bunu çalıştırabilirim, neden bu şekilde çalışmadığını anlayamıyorum?

Teşekkürler!


2
Sembolik bağın bozuk olmadığından emin misiniz? ls -l / etc / nginx / sites-enabled /
catalin.costache

1
Evet, sembolik bağlantıyı iki kez kontrol ettim, hala şansım yok
Discorick


Yanıtlar:


200

Ben de aynı sorunu yaşadım. Bunun nedeni, yanlışlıkla sembolik bağlantıyla göreli bir yol kullanmış olmamdı.

Tam yolları kullandığınızdan emin misiniz, örneğin:

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

Benim için bu da düzeltti! Teşekkürler!
Sander Versluys

4
Hayatımı kurtardığın için teşekkürler!
MatTheCat

4
Göreceli bağlantıdaki yanlış yol, göreli bir bağlantı olmaktan çok, bir sorun olabilir. Örneğin, bağlantınız ../bir dizinde yukarı gitmekle başlamazsa , girin sites-available. catSembolik bağ kurabilir ve çıktı alabilirseniz, Nginx de @Hannes'ın dediği gibi okumalıdır. Mutlak bir yol kullanmak, yanlış bir yolu yapmayı çok daha zor hale getirir.
Bryson

bir dosyanın mutlak yolunu almak için bir komut satırı aracı yok mu?

Sorunun bu olduğuna inanamıyorum. Bunu kontrol etmeyi tahmin edemezdim! Teşekkürler!
phouse512

39

Değişim:

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

-e

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

sorunumu çözdüm


2
Ubuntu 16.xx
Jan Wiemers

2
bunu nasıl anladın? Benim için çalıştı, ancak bu açık değil
2018

2
nginx ve Docker ile oynarken bu benim için düzeltildi.
Eugen

1
aynen, ubuntu / trusty64 görüntüsünde düzeltildi
Bryan A

2
Benim için sorun buydu! Ama benim durumumda, * .conf arıyordu ve benimkinin farklı bir sonu vardı. Deli bunun için saatler harcadım!
Nigel

16

Dahil sites-available/defaultiçinde sites-enabled/default. Yalnızca bir satır gerektirir.

İçinde sites-enabled/default(yeni yapılandırma sürümü?):

İçerme yolunun, onu içeren dosyaya göre olduğu görülüyor

include sites-available/default;

includeBelgelere bakın .


Nginx'in belirli sürümlerinin, yalnızca dahil edilen dosyanın ilgili yolunu içeren tek bir satıra sahip olarak diğer dosyalara dahil etmeye / bağlanmaya izin verdiğine inanıyorum. (En azından, yeni bir nginx sürümü onları bozana kadar, kullandığım bazı "devralınan" yapılandırma dosyalarında böyle görünüyordu.)

İçinde sites-enabled/default(eski yapılandırma sürümü?):

Görünüşe göre içerme yolu mevcut dosyaya göre

../sites-available/default
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.