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.