Wenn Ihre Konfiguration keine root /some/absolute/path;
Anweisung enthält oder eine Anweisung, die einen relativen Pfad wie verwendetroot some/relative/path;
, hängt der resultierende Pfad von den Optionen zur Kompilierungszeit ab.
Wahrscheinlich der einzige Fall, in dem Sie eine fundierte Vermutung anstellen können, was dies für Sie bedeutet, wenn Sie die Quelle selbst herunterladen und kompilieren würden. In diesem Fall wären die Pfade relativ zu dem, was --prefix
verwendet wurde. Wenn Sie es nicht geändert haben, wird standardmäßig verwendet /usr/local/nginx
. Sie finden die Parameter, mit denen nginx kompiliert nginx -V
wurde. Es wird --prefix
als erstes aufgeführt.
Da die root
Richtlinie standardmäßig verwendet wirdhtml
, würde dies natürlich /usr/local/nginx/html
zur Antwort auf Ihre Frage führen.
Wenn Sie nginx jedoch auf andere Weise installiert haben, sind alle Wetten ungültig. Ihre Distribution verwendet möglicherweise völlig andere Standardpfade. Zu lernen, herauszufinden, welche Art von Standardeinstellungen Ihre Verteilung der Auswahl für Dinge verwendet, ist eine ganz andere Aufgabe.
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'
gibt Ihnen das Nginx HOME.Wenn Sie Ubptu mit apt-get installieren, versuchen Sie es
/usr/share/nginx/www
.BEARBEITEN:
In neueren Versionen wurde der Pfad geändert in:
/usr/share/nginx/html
2019 EDIT:
Könnte es auch versuchen
/var/www/html/index.nginx-debian.html
.quelle
Das Standard-Nginx-Verzeichnis unter Debian ist
/var/www/nginx-default
.Sie können die Datei überprüfen:
/etc/nginx/sites-enabled/default
und finde
Die Wurzel ist der Standardspeicherort.
quelle
html
.default site
es aktiviert ist?'Standard Public Web Root' kann aus der Ausgabe von nginx -V gefunden werden:
Der Wert --prefix ist die Antwort auf die Frage. Für das Beispiel über der Wurzel ist / var / lib / nginx
quelle
Unter Mac OS X wird bei der Installation von Nginx mit Brew das Standardverzeichnis erstellt:
So:
meint
Es gibt kein HTML-Verzeichnis, daher müsste es manuell erstellt werden.
quelle
root html
,index.html
und50x.html
wird gesetzt direkt in/usr/local/var/www
. Daher bezweifle ich die Existenz eineshtml
Ordners. Könnten Sie mir dabei helfen?/usr/local/Cellar/nginx/1.10.2_1/html
dem 1.10.2_1 die Nginx-Version ist./usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/
und dienginx -V
zeigt:--prefix=/usr/local/Cellar/nginx/1.12.0_1
soroot html
ist eine über diesen Link umgeleitet.Sie können den Stammordner von nginx einfach dem Speicherort Ihrer Website zuordnen:
Suchen Sie in der Standarddatei nach dem Stammverzeichnis im Server-Tag und ändern Sie den Standardordner Ihrer Website, z. B. befinden sich meine Websites unter / var / www
Als ich nginx, apache2 und lighttpd evaluierte, habe ich sie alle meiner Website unter / var / www zugeordnet . Ich fand dies der beste Weg, um effizient zu bewerten.
Dann können Sie den Server Ihrer Wahl starten / stoppen und sehen, welcher die beste Leistung erbringt.
z.B
Übrigens ist Nginx tatsächlich sehr schnell!
quelle
Wie die meisten Benutzer hier sagten, befindet es sich unter diesem Pfad:
Dies ist der Standardpfad, aber Sie können Ihren auch erstellen.
Sie müssen lediglich eine im Stammbaum des Webservers erstellen und ihm einige Berechtigungen "nicht 0777" und nur für einen Benutzer erteilen, die nur für diesen Benutzer sichtbar sind. Das Ende des Pfads ist jedoch seit dem Ende des Pfads für alle sichtbar ist, was Ihre Dateien und Ordner von der Öffentlichkeit angezeigt werden.
Sie können beispielsweise eine davon erstellen:
Wenn Sie in Nginx einen virtuellen Host erstellen, können Sie Ihren eigenen Stammpfad anpassen. Fügen Sie einfach Folgendes in Ihren Serverblock ein:
quelle
/usr/share/nginx/html/
Ordner ist. Gibt es einen Grund, diesen Pfad überhaupt zu ändern (aus Sicherheitsgründen oder aus anderen Gründen)? Ist es in Ordnung, es im Standardordner zu belassen, wenn ich der einzige Benutzer sein werde und nur 1 Website darin hosten werde?Der Standard-Webordner für nginx hängt davon ab, wie Sie ihn installiert haben. Normalerweise befindet er sich jedoch an folgenden Speicherorten:
quelle
Für Ubuntu- und Docker-Images:
quelle
Führen Sie den Befehl aus
nginx -V
und suchen Sie nach dem--prefix
. Verwenden Sie diesen Eintrag, um Ihre Standardpfade zu suchen.quelle
Speichern Sie die Konfiguration:
Was Sie erhalten, kann anders sein, da es davon abhängt, wie Sie
nginx
konfiguriert / installiert wurden.Verweise:
-T
Option auf derman
Seite-T
Option in der HilfemeldungUpdate: Es gibt einige Verwirrung in Bezug auf die Frage, ob / wann die
-T
Option hinzugefügt wurdenginx
. Es wurde in der Manpage von vl-homutov am 16. Juni 2015 dokumentiert , die Teil der Version 1.9.2 wurde . Es wird sogar in den Versionshinweisen erwähnt . Die-T
Option ist seitdem in jedernginx
Version vorhanden, einschließlich der unter Ubuntu 16.04.1 LTS verfügbaren:quelle
-T
Option zeigen. Fehlt die-T
Option in Ihrer speziellen Installation? Können Sie etwas zeigen, um Ihre Behauptung zu begründen?Schauen Sie sich die Nginx-Konfigurationsdatei an, um sicherzugehen. Dieser Befehl greift nach dem, was auf Ihrem Computer konfiguriert ist:
Auf meinem Computer war es: `root / usr / share / nginx / www;
quelle
Auf dem Mac installieren Sie Nginx mit Brew:
/usr/local/etc/nginx/nginx.conf
quelle
Für CentOS, Ubuntu und Fedora ist das Standardverzeichnis
/usr/share/nginx/html
quelle
var/www/html
.Für AWS EC2 Linux finden Sie hier:
quelle
In meinem Fall war es in
/usr/share/nginx/html
Sie können versuchen zu finden, indem Sie eine Suche durchführen
quelle
Wenn Sie mit Ubuntu 14.04 arbeiten, finden Sie das Verzeichnis nginx www unter folgendem Pfad:
quelle
var/www/html
.Sie können danach suchen, unabhängig davon, wo sie es verschoben haben (Systemadministrator verschoben oder neuere Version von nginx)
quelle
Wenn Sie den öffentlichen Stammordner von nginx herausfinden möchten, der zum Zeitpunkt der Kompilierung definiert wurde, können Sie einfach Ihre Datei access.log überprüfen.
Hier ist ein Beispiel aus dem http-Abschnitt von nginx.conf mit der geänderten Anweisung log_format . $ Document_root wird am Anfang der Zeichenfolge hinzugefügt:
Sichern Sie dann alle Konfigurationsdateien * .conf im Verzeichnis conf.d und erstellen Sie dort die Konfigurationsdatei test.conf mit den folgenden Zeilen:
Fügen Sie der Datei / etc / hosts folgende Zeile hinzu:
127.0.0.1 localhost
Nginx-Konfiguration neu laden:
nginx -s reload
Senden Sie die GET-Anfrage an http: // localhost :
curl http://localhost
Überprüfen Sie die letzte Zeichenfolge von access.log :
tail -n 1 /var/log/nginx/access.log
Hier ist die Beispielausgabe dieses Befehls, wobei / etc / nginx / html der zum Zeitpunkt der Kompilierung definierte Standarddokumentstamm ist:
quelle
Sie können auf die Datei config nginx zugreifen, Sie können root / path sehen. in dieser Standardeinstellung von Nginx Apache bei
/var/www/html
quelle
/var/www/html
ist das Standard-Webstammverzeichnis für Apache, nicht für Nginx.* In var / www / html zugewiesene Standardseiten-Web * Standardkonfigurationsserver usw. / nginx / sites / avaliable / nginx.conf
* Standardkonfigurationsserver usw. / nginx / nginx.conf
Inhalt..
Standardzugriffsprotokolle mit IP-Clients var / log / nginx / ...
quelle
Nur um zu beachten, dass auf der Standardindexseite für den Nginx-Server auch der Stammspeicherort angezeigt wird. Von nginx (1.4.3) unter Amazon Linux AMI erhalten Sie Folgendes:
Dies ist die Standardseite index.html, die mit nginx unter Amazon Linux AMI verteilt wird. Es befindet sich in / usr / share / nginx / html.
Sie sollten Ihren Inhalt jetzt an einem Speicherort Ihrer Wahl ablegen und die Root-Konfigurationsanweisung in der Nginx-Konfigurationsdatei /etc/nginx/nginx.conf bearbeiten
quelle
Mein Nginx unter Ubuntu ist "Nginx-Version: Nginx / 1.9.12 (Ubuntu)" und der Root-Pfad ist / var / www / html /
Ubuntu Info ist: Es sind keine LSB-Module verfügbar. Distributor ID: Ubuntu Beschreibung: Ubuntu 16.04 LTS Release: 16.04 Codename: xenial
Wenn Sie gerade nginx unter Ubuntu installiert haben, können Sie unter "/ etc / nginx / sites-available" die Standarddatei überprüfen. Es gibt eine Konfiguration wie "root / web / root / path / goes / here". Und genau das suchen Sie.
quelle
Sie finden es in / var / www /, dem Standardverzeichnis für Nginx und Apache, aber Sie können es ändern. Schritt 1 Wechseln Sie in den folgenden Ordner / etc / nginx / sites-available
Schritt 2 Bearbeiten Sie die Standarddatei so, dass Sie einen Serverblock finden, unter dem sich eine Zeile mit dem Namen root befindet, die den Speicherort definiert.
quelle
in ubuntu 19.04 fanden wir es am
quelle
Für nginx / 1.4.6 (Ubuntu)
quelle
In Ubuntu ist der Standardspeicherort für das Nginx-Stammverzeichnis
/usr/share/nginx/html
quelle
Die Standardeinstellung bezieht sich auf die
prefix
Option desconfigure
Skripts beim Kompilieren von Nginx. Hier ist ein seltsames Beispiel von Debian:Anschließend wird der Standardwert
root
wird auf das eingestelltehtml
Verzeichnis (nach der Dokumentation derroot
Richtlinie ), die innerhalb passiert zu seinprefix
, als indem man die überprüft werden können$document_root
Variablen aus einer einfachen Konfigurationsdatei:Böse Distributionen wie Debian scheinen es jedoch ziemlich zu modifizieren, um Sie besonders zu unterhalten:
In dieser Instanz von Debian können Sie also sehen, dass die Wurzel endlich auf gesetzt ist
/usr/share/nginx/www
.Wie Sie jedoch bei der Beispielserverkonfiguration gesehen haben, die ihren
$document_root
Wert über httproot
erfüllen würde , ist die Konfiguration von nginx so einfach, dass Sie Ihre eigene Konfiguration in ein oder zwei Zeilen schreiben können, wobei Sie die erforderliche Konfiguration angeben , um Ihre genauen Anforderungen zu erfüllen.quelle
root html;
, ich meine, was ist der wahre Weg?Ich hatte dieses Problem auch bei Digital Ocean, wo eine WordPress-Website mit nginx ausgeführt wurde.
Meine Lösung bestand darin, Folgendes zu tun:
/etc/nginx/nginx.conf
Datei wie folgt:Ich musste dann
sudo service nginx restart
nginx -V
Der Befehl zeigt Ihnen auch, wo sich Ihre Nginx-Konfigurationsdatei befindet (auf meine wurde verwiesen/etc/nginx/nginx.conf
).quelle
Alpine Linux hat überhaupt keinen Standardspeicherort. Die Datei
/etc/nginx/conf.d/default.conf
sagt:Ersetzen Sie diese durch eine Linie
root /var/www/localhost/htdocs
, die auf das gewünschte Verzeichnis verweist. Dannsudo service nginx restart
neu starten.quelle
nginx:alpine
Bild ausprobiert und es liefert sofort einsatzbereite Inhalte/usr/share/nginx/html
.apk add nginx
installieren und nginx manuell über den eigenen Paketmanager von Alpine installieren, wird die in meiner Antwort beschriebene Situation angezeigt (oder das war der Fall, als ich es vor einigen Monaten trotzdem ausprobiert habe).