GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist das empfohlene Verzeichnis zum Speichern von Website-Inhalten?

Es gibt kein "bestes" Verzeichnis. Und während die Leute argumentieren mögen, dass diese Frage subjektiv ist oder dass die tatsächliche Platzierung von Dateien keine Rolle spielt – und sie haben Recht mit letzterem – gibt es sie standardisierte Empfehlungen, wo was in Unix-ähnlichen Systemen abgelegt werden soll.

Der Filesystem Hierarchy Standard definiert dies und bietet Ihnen folgendes:

  • /var – Platz für Daten, die sich während des normalen Betriebs ändern, wie Protokolle usw. /var/www ist das Standardverzeichnis zum Platzieren von Webinhalten für Apache, aber seine Verwendung ist überhaupt nicht standardisiert und nur der "übliche" Ort, an dem Sie es ablegen würden, da die Leute die Standardeinstellungen nicht sehr oft ändern.

  • /srv – Dieses Verzeichnis sollte Daten enthalten, die vom System bereitgestellt werden. Dies ist normalerweise der gewünschte Ort. Die FHS erklärt:

    Der Hauptzweck dieser Angabe besteht darin, dass Benutzer den Speicherort der Datendateien für bestimmte Dienste finden können und dass Dienste, die einen einzigen Baum für schreibgeschützte Daten, schreibbare Daten und Skripte (wie CGI-Skripte) benötigen, sinnvoll platziert werden können. Daten, die nur für einen bestimmten Benutzer von Interesse sind, sollten im Home-Verzeichnis dieses Benutzers abgelegt werden. (…)

    Eine Methode zur Strukturierung von Daten unter /srv ist per Protokoll, z. ftp , rsync , www , und cvs

    Erstellen Sie also einfach eine /srv/www Verzeichnis und verwenden Sie dieses. Sie können Unterordner für jeden virtuellen Host erstellen, den Sie möglicherweise mit Ihrer Maschine bedienen möchten.

  • /home enthält Dateien, die eigentlich nur einem Benutzer gehören sollten. Apache erlaubt beispielsweise Benutzerverzeichnisse, sodass Sie über http://example.com/~username auf die Webdateien eines Benutzers zugreifen können , und sie werden von public_html bereitgestellt Verzeichnis im Home des Benutzers.

    Wenn Sie einen Server verwenden, der von mehreren Personen gemeinsam genutzt wird, und jedem erlauben möchten, seine eigenen Skripts zu hosten, sollten sie hierher gehen. Denken Sie daran, die Verzeichnisse nur für den Benutzer beschreibbar zu machen, dem sie gehören.

Im Wesentlichen /srv/www und /var/www sind Verzeichnisse, in denen Sie Unterverzeichnisse für jedes Webprojekt erstellen sollten, das Sie hosten möchten. Auf diesen Verzeichnissen können Sie dann unterschiedliche Berechtigungen definieren, um bestimmten Benutzern oder Benutzergruppen das Schreiben zu erlauben. Wenn Sie Projekte für jeweils einen Benutzer haben, verwenden Sie /home .


Nun, Sie können Dateien überall ablegen, solange die Dinge richtig darauf zugreifen können, aber überladene Dateisysteme bereiten Kopfschmerzen, wenn jemand später hereinkommt.

/srv ist das logischste Plus, wenn Sie dem Filesystem Hierarchy Standard folgen, würde es hier stehen.

Wenn Sie mehrere Domänen verwenden, können Sie /srv/domain1 ausführen /srv/domain2 etc etc dann Unterordner drin /ftp /www /tftp /logs /etc.etc.etc

Für mich fühlt sich das nach einer sehr soliden Struktur an, auf der man aufbauen und die man leicht kontrollieren kann

Aber als Administrator können Sie so sauber oder unordentlich machen, wie Sie möchten.


Ok, einfache schnelle Antwort.

Wenn auf Ihre Webdateien auf dem System nur EIN Benutzer auf dem Linux-System zugreift. Verwenden Sie das Home-Verzeichnis des Benutzers (~/ ).

Wenn auf Ihre Webdateien auf dem System MEHRERE Benutzer auf dem Linux-System zugreifen. Verwenden Sie /srv/ .

Dies ist genau das, was http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM angibt.

Hier ist das Zitat:

/srv enthält standortspezifische Daten, die von diesem System bereitgestellt werden.

Der Hauptzweck dieser Angabe besteht darin, dass Benutzer den Speicherort der Datendateien für bestimmte Dienste finden können und dass Dienste, die einen einzelnen Baum für schreibgeschützte Daten, beschreibbare Daten und Skripte (wie CGI-Skripte) benötigen, sinnvoll platziert werden können. Daten, die nur für einen bestimmten Benutzer von Interesse sind, sollten in das Home-Verzeichnis dieses Benutzers verschoben werden.

Bonus:www? ftp? Nach Protokoll organisieren? Häh?

Wie hier in http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

angegeben
  • Wenn Ihre Website nur von EINEM Benutzer auf dem System und NUR über den Browser (http-Protokoll) aufgerufen wird, dann:~/http/your-website-directory/
  • Wenn auf Ihre Website nur EIN Benutzer auf dem System zugreift und NICHT NUR über den Browser, sondern über mehrere Protokolle (z. B. http UND tcp UND ...), dann:~/your-website-directory/
  • Wenn Ihre Website von MEHREREN Benutzern auf dem System und NUR über den Browser (http-Protokoll) aufgerufen wird, dann:/srv/http/your-website-directory/
  • Wenn auf Ihre Website MEHRERE Benutzer des Systems zugreifen und NICHT NUR über den Browser, sondern über mehrere Protokolle (z. B. http UND ftp UND ...), dann:/srv/your-website-directory/

Hm, warum nicht www? Dies ist ein Erbe aus der Apache-Zeit. www gibt nicht an, welches Protokoll verwendet wird. Debian verwendet dies bis heute, während zum Beispiel Arch Linux /srv/http verwendet.


Linux
  1. Cloud-Backup vs. lokales Backup:Die sicherste Art, Daten zu speichern

  2. Was macht der Systemaufruf brk()?

  3. Was sollten die idealen Home-Verzeichnisberechtigungen in Linux sein?

  4. Welche Dateisysteme unter Linux speichern die Erstellungszeit?

  5. Was hat der Systemaufruf tuxcall gemacht?

Was ist Intel SGX und was sind die Vorteile?

Wie man die CPU-Auslastung findet, was das System zum Hängen bringt

Linux – Welche Dateisysteme unter Linux speichern die Erstellungszeit?

Absoluter vs. relativer Pfad in Linux:Was ist der Unterschied?

Was ist der Zweck des setgid-Verzeichnisses?

Was bedeutet das Suffix .d unter Linux?