Nginx nimmt Site nicht in Sites-fähig auf?

102

Nach über 10 Stunden Recherche habe ich nicht herausgefunden, warum dies nicht funktioniert! Ich versuche, meinen lokalen Host in meinen Sites-fähigen Ordner zu verschieben, der sich in / etc / nginx / sites-enabled / default befindet.

Es ist ein Symlink aus dem Ordner "Sites-Available". Bei Verwendung der folgenden Konfiguration wird mit localhost die Meldung "Verbindung nicht möglich" angezeigt: 8080 als Adresse

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

Websites verfügbar (/ etc / nginx / Websites verfügbar / Standard):

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

Ich kann das zum Laufen bringen, wenn ich die relevanten Informationen von Websites in die nginx.conf stelle. Ich kann nur nicht herausfinden, warum es so nicht funktioniert.

Vielen Dank!

Discorick
quelle
2
Sind Sie sicher, dass der Symlink nicht unterbrochen ist? ls -l / etc / nginx / sites-enabled /
catalogin.costache
1
Ja, ich habe den Symlink noch einmal überprüft, immer noch kein Glück
Discorick
siehe auch: askubuntu.com/questions/1195067/… .
Chris Halcrow

Antworten:

196

Ich hatte das gleiche Problem. Es war, weil ich versehentlich einen relativen Pfad mit der symbolischen Verknüpfung verwendet hatte.

Sind Sie sicher, dass Sie vollständige Pfade verwendet haben, z.

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Sam
quelle
Für mich hat das auch behoben! Vielen Dank!
Sander Versluys
4
Danke, dass du mein Leben gerettet hast!
MatTheCat
4
Möglicherweise ist ein Problem mit einem falschen Pfad im relativen Link mehr als ein relativer Link. Wenn Ihr Link beispielsweise nicht mit ../dem Durchlaufen eines Verzeichnisses beginnt , geben Sie Folgendes ein sites-available. Wenn Sie catden Symlink können und eine Ausgabe erhalten, sollte Nginx ihn auch lesen, wie @Hannes sagte. Die Verwendung eines absoluten Pfads erschwert die Ausführung eines falschen Pfads erheblich.
Bryson
Gibt es kein Befehlszeilentool, um den absoluten Pfad einer Datei abzurufen?
Ich kann nicht glauben, dass dies das Problem war. Hätte nicht gedacht, dies zu überprüfen! Vielen Dank!
Telefon512
35

Wechsel von:

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

zu

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

mein Problem behoben

Roy Robles
quelle
2
Das Problem wurde auch für mich unter Ubuntu 16.xx behoben
Jan Wiemers
2
Wie haben Sie das herausgefunden? Es hat bei mir funktioniert, aber das ist nicht offensichtlich
Uhr
2
Dies wurde für mich behoben, wenn ich mit Nginx und Docker spielte.
Eugen
1
dito, behoben es auf Ubuntu / Trusty64 Bild
Bryan A
2
Das war das Problem für mich! Aber in meinem Fall suchte es nach * .conf und meins hatte ein anderes Ende. Verrückt, ich habe Stunden damit verschwendet!
Nigel
16

Einschließen sites-available/defaultin sites-enabled/default. Es ist nur eine Zeile erforderlich.

In sites-enabled/default(neue Konfigurationsversion?):

Es scheint, dass der Include-Pfad relativ zu der Datei ist, in der er enthalten ist

include sites-available/default;

Siehe die includeDokumentation .


Ich glaube, dass bestimmte Versionen von nginx das Einschließen / Verknüpfen mit anderen Dateien nur durch eine einzige Zeile mit dem relativen Pfad zur enthaltenen Datei ermöglichen. (Zumindest sah es in einigen "geerbten" Konfigurationsdateien, die ich verwendet habe, so aus, bis eine neue Nginx-Version sie kaputt machte.)

In sites-enabled/default(alte Konfigurationsversion?):

Es scheint, dass der Include-Pfad relativ zur aktuellen Datei ist

../sites-available/default
Joel Purra
quelle