Als ich anfing, für das Web zu programmieren und ein neues Projekt erstellen wollte, wurde mir immer beigebracht, ein Verzeichnis in zu erstellen /var/www/
. In vielen Tutorials habe ich jedoch gelesen, dass Leute dazu neigen, ein Verzeichnis zu erstellen /home/username/
.
Ich mag die Idee nicht, es einzubauen /home/username/
.
Gibt es einen korrekten Ort oder wenn nicht, welche Vor- / Nachteile ergeben sich aus der Platzierung in bestimmten Bereichen des Dateisystems?
linux
unix
filesystems
apache-http-server
Pattle
quelle
quelle
/var/www
und habe das normalerweise auf einem anderen Laufwerk (nur Präferenz).Antworten:
Es gibt kein "bestes" Verzeichnis. Und während die Leute vielleicht argumentieren, dass diese Frage subjektiv ist oder dass die tatsächliche Platzierung von Dateien keine Rolle spielt - und sie haben Recht mit letzterer -, gibt es standardisierte Empfehlungen, wo was in Unix-ähnlichen Systemen abgelegt werden soll.
Der Dateisystem-Hierarchiestandard definiert dies und bietet Ihnen Folgendes:
/var
- Ein Ort zum Speichern von Daten, die sich während des normalen Betriebs ändern, wie z. B. Protokolle usw.,/var/www
ist das Standardverzeichnis zum Speichern von Webinhalten für Apache. Die Verwendung ist jedoch nicht standardisiert, sondern nur der "übliche" Ort, an dem Sie sie ablegen würden, weil Benutzer ändere die Standardeinstellungen nicht sehr oft./srv
- Dieses Verzeichnis sollte Daten enthalten, die vom System bereitgestellt werden. Dies ist normalerweise der gewünschte Ort. Die FHS erklärt:Erstellen Sie einfach ein
/srv/www
Verzeichnis und verwenden Sie dieses. Sie können Unterordner für jeden virtuellen Host erstellen, den Sie möglicherweise mit Ihrem Computer bereitstellen möchten./home
Enthält Dateien, die eigentlich nur einem Benutzer gehören sollten. Apache erlaubt beispielsweise Userdirs , sodass Sie über auf die Webdateien eines Benutzers zugreifen könnenhttp://example.com/~username
und diese über daspublic_html
Verzeichnis im Haus des Benutzers bereitgestellt werden .Wenn Sie einen Server verwenden, der von mehreren Personen gemeinsam genutzt wird, und Sie möchten, dass alle ihre eigenen Skripte hosten können, sollten sie dies tun. Denken Sie daran, die Verzeichnisse für den Benutzer beschreibbar zu machen, dem sie nur gehören.
Im Wesentlichen
/srv/www
und/var/www
sind Verzeichnisse, in denen Sie Unterverzeichnisse für jedes Webprojekt erstellen sollten, das Sie möglicherweise hosten möchten. Sie können dann unterschiedliche Berechtigungen für diese Verzeichnisse definieren, damit bestimmte Benutzer oder Benutzergruppen darauf schreiben können. Wenn Sie Projekte für jeweils einen Benutzer haben, verwenden Sie/home
.quelle
http://example.com/~username
Regel nicht auf/home/username/
, sondern auf/home/username/public_html/
./var/www
ist es Zeit für Veränderungen!www
klingt eher wie eine Sub - Domain zu mir.Nun, Sie können Dateien überall ablegen, solange die Dinge ordnungsgemäß darauf zugreifen können. Überfüllte Dateisysteme bereiten jedoch Kopfzerbrechen, wenn später jemand hereinkommt.
/srv
Das logischste Plus, wenn Sie dem Dateisystem-Hierarchie-Standard folgen, ist, dass er hierher führt.Wenn Sie mehrere Domains erstellen, können Sie
/srv/domain1
/srv/domain2
dort einen Unterordner anlegen/ftp
/www
/tftp
/logs
/etc.etc.etc
Für mich ist das eine sehr solide Struktur, auf der man aufbauen und leicht kontrollieren kann
Aber als Administrator können Sie so sauber oder chaotisch vorgehen, wie Sie möchten.
quelle
Ok, einfach, schnelle Antwort.
Wenn Ihre Webdateien auf dem System nur von EINEM Benutzer auf dem Linux-System aufgerufen werden. Verwenden Sie das Home-Verzeichnis des Benutzers (
~/
).Wenn MULTIPLE Benutzer auf dem Linux-System auf Ihre Webdateien auf dem 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:
Bonus: www? ftp? Nach Protokoll organisieren? Huh?
Wie hier unter http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM angegeben
~/http/your-website-directory/
oder (https-Protokoll) dann:~/https/your-website-directory/
~/your-website-directory/
/srv/http/your-website-directory/
oder (https-Protokoll) dann:/srv/https/your-website-directory/
/srv/your-website-directory/
Huh warum nicht www? Dies ist ein Erbe aus der Apache-Zeit. www gibt nicht an, welches Protokoll verwendet wird. Debian verwendet dies noch heute, während beispielsweise Arch Linux / srv / http verwendet.
quelle
Apache-Webserver haben eine Standardwebsite unter
/var/www/
, es wird jedoch empfohlen, andere Websites unter zu stellen/srv/
Ich habe dies auf Ubuntu Server 14.04 LTS bemerkt. Die Standarddatei
apache2.conf
enthält einen kommentierten Block:quelle