Według przewodnika po strukturze katalogów systemu Linux , /usr/
jest dla plików aplikacji, a /var/
to dla plików, które zmieniają (Zakładam, że to znaczy „pliki należące do aplikacji”). Czy to jest poprawne?
Jeśli tak jest, to jestem trochę rozdarty między używaniem jednego z nich. Strona internetowa to aplikacja (jeśli tak można powiedzieć, dynamiczna), ale w innych przypadkach jest to tylko zbiór plików używanych przez Apache.
Domyślny www dir istnieje /var/www/
, więc czy powinniśmy pójść w jego ślady, używając /var/websites/
(lub czegoś podobnego), czy wybrać, /usr/websites/
ponieważ mogą to być aplikacje?
To bardzo trywialne pytanie, ale i tak mnie wkurza. W naszym przypadku opieram się na /usr/web
czymś takim, ponieważ nasze strony internetowe to aplikacje.
Aktualizacja:
Dotyczy to stron internetowych naszej firmy; nie jest to wspólny serwer hostingowy, więc nie musimy się martwić o ich rozdzielenie /home/
itp.
Odpowiedzi:
Zgodnie z FHS ,
/usr
jestshareable, read-only data
- nie tam, gdzie chcesz umieścić na stronie internetowej. Tutaj powinieneś umieścić swój kod (na przykład Fedora robi to dla Wordpress). Zobacz także przewodnik dotyczący pakowania zasobów internetowych dla Fedory./var
to „pliki danych zmiennych. Obejmuje to katalogi i pliki buforowania, dane administracyjne i dane rejestracyjne oraz pliki przejściowe i tymczasowe”. - lepiej, ale wciąż nie do końca dobrze - ale wiele systemów będzie z niego korzystać/var/www
, więc nawet jeśli nie masz racji, umieszczając go tam, jesteś w dobrym towarzystwie./srv
dotyczy „danych specyficznych dla witryny, które są obsługiwane przez ten system”. - co wydaje się dobrym dopasowaniem, ale jest znacznie mniej powszechne niż/var/www
.Innym powszechnym miejscem umieszczania plików witryny jest
/home
- tworzenie specjalnego użytkownika o nazwiewebsite
lub inny , a następnie umieszczanie plików w katalogu głównym tego użytkownika (np/home/website
.).źródło
/srv
- jak nigdy wcześniej tego nie widziałam, myślałam, że to oni ją stworzyli. Czy to jest sprawa Redhat / CentOS?/var/www
ponieważ dystrybucje nie mogą się dotykać/srv
; do skonfigurowania przez administratora systemu. Dlatego jest to „znacznie mniej powszechne”, a także poprawne.Spójrz na Standard systemu plików Hierarchia ( Wikipedia ). Sam używam / srv / web / $ domain / {htdocs, logs, cgi-bin, ...}.
źródło
Strony internetowe powinny znajdować się w katalogach domowych użytkowników. Są to dane użytkownika, powinny być izolowane przez jednego użytkownika na witrynę, a treść dynamiczna powinna ponownie działać jako osobny użytkownik, z plikami, które dynamiczna treść musi odczytać i zmodyfikować, biorąc pod uwagę odpowiednie uprawnienia.
Aktualizacja:
To, że nie jest to wspólny serwer hostingowy, nie oznacza, że nie powinieneś angażować się w dobre praktyki bezpieczeństwa i oddzielać niezależnych ról we własnych strefach bezpieczeństwa.
źródło
Ostatecznym przewodnikiem jest standard systemu plików, który mówi, że
/srv
jest to właściwe miejsce.źródło
by this system
, są obsługiwane przez cały klaster systemów; a dwa zdania zaczynające się odThis setup will differ from host to host.
sugerują, że nie jest to miejsce dla plików udostępnianych na wielu serwerach. Jest to dość prawdopodobne miejsce - z pewnością bardziej odpowiednie/usr
i prawdopodobnie lepsze niż/var
To, gdzie mieszkają na dysku, nie ma większego znaczenia. Tam, gdzie chcesz.
Mam dowiązanie symboliczne z / www na wszystkich moich komputerach do miejsca, w którym naprawdę żyją, więc nigdy nie muszę się zastanawiać od maszyny do maszyny. Niektóre starsze komputery mają / u0 i / u1 na dyski użytkowników, i umieszczam tam rzeczy internetowe. Niektóre mają / home montowane bezpośrednio, więc idą tam, ale / www zawsze wskazuje właściwe miejsce.
Nie umieszczam też żadnej konfiguracji w / usr ani w / var. Przechodzi do / local (co, jak się domyślacie, jest dowiązaniem symbolicznym gdzieś na / u0 lub / u1 zwykle). Ułatwia to tworzenie kopii zapasowych. Właśnie wykonuję kopię zapasową dysków użytkownika.
Oczywiście mam główną witrynę dystrybucyjną dla mojego wybranego systemu operacyjnego, NetBSD. Robię system tak, jak chcę na tym głównym komputerze (naprawdę instancja Xen) i rsync / usr. Ułatwia mi życie.
źródło
/path/we/chose
”?Serwer WWW Apache ma domyślną stronę pod / var / www /, ale sugeruje się umieszczenie innych stron pod / srv /
Zauważyłem to na Ubuntu Server 14.04 LTS. Domyślny plik apache2.conf zawiera skomentowany blok:
źródło
Według mnie NIGDY i NIGDY nie należy umieszczać żadnych usług internetowych we wspólnej strefie systemowej.
Twoje usługi internetowe (Apache / Tomcat / SSH itp.) Są frontowymi drzwiami, więc jeśli umieścisz te usługi w strefie Systemu, potencjalnie będziesz narażony na niektóre ataki.
Więcej niż jeśli umieściłeś swoje różne usługi w bezpiecznej strefie piaskownicy, tak jak inna partycja odłączania.
Oto przykład struktury, której możesz użyć:
źródło
/srv/bin
wydaje się naruszać FHS, który stwierdza, że/srv
chodzi o dane, a nie pliki binarne/home
ma oddzielną partycję - możesz zdmuchnąć wszystko na innej/home
partycji i nie martwić się utratą danych użytkownika. +1 za segregację danych.