Vraag Moeten websites in / var / of / usr / volgens aanbevolen gebruik leven?


Volgens een gids over de Linux-directorystructuur, /usr/ is voor toepassingsbestanden, en /var/ is voor bestanden die veranderen (ik neem aan dat dit betekent "bestanden die bij de applicaties horen"). Is dit correct?

Als dit het geval is, ben ik een beetje verscheurd tussen het gebruik van een van beide. Een website is een applicatie (als het dynamisch is, om zo te zeggen), maar in andere gevallen is het slechts een verzameling bestanden die door Apache worden gebruikt.

De standaard www-hoofd leeft in /var/www/, dus moeten we dit voorbeeld volgen door te gebruiken /var/websites/ (of iets dergelijks), of kies /usr/websites/ omdat het mogelijk applicaties zijn?

Dit is een heel triviale vraag, maar het irriteert me toch. Voor ons geval, neig ik naar /usr/web of iets dergelijks, aangezien onze websites allemaal applicaties zijn.

Bijwerken:

Dit is voor onze bedrijfswebsites; het is geen shared hosting-server, dus we hoeven ons geen zorgen te maken over het scheiden ervan /home/ of zoiets.


56
2018-01-14 08:04


oorsprong


Ik denk niet dat de vraag zo triviaal is; het is eigenlijk een behoorlijk goede. Interessant. - Aron Rotteveel


antwoorden:


Volgens de FHS, /usr is voor shareable, read-only data - niet waar je de website wilt plaatsen. Dit is waar je je code zou moeten zetten (bijvoorbeeld Fedora doet dit voor Wordpress). Zie ook de webactiva verpakkingsgids voor Fedora.

/var is "variabele databestanden. Dit omvat spool-mappen en -bestanden, administratieve en logginggegevens en tijdelijke en tijdelijke bestanden." - beter, maar nog steeds niet helemaal goed - maar veel systemen zullen gebruiken /var/www, dus zelfs als je het verkeerd hebt om het daar te plaatsen, ben je in goed gezelschap.

/srv is voor "sitespecifieke gegevens die door dit systeem worden aangeboden." - wat een goede match lijkt, maar veel minder gebruikelijk is dan /var/www.

De andere gemeenschappelijke plaats om de sitebestanden te plaatsen is onder /home - door een speciale gebelde gebruiker te maken website of zodanig, dan het plaatsen van de bestanden binnen de homedir van die gebruiker (bijv. /home/website).


60
2018-01-14 08:54



Ah, mijn werk gebruikt /srv - zoals ik dit nog nooit eerder had gezien, dacht ik dat het door hen was gemaakt. Is het een Redhat / CentOS ding? - Nick Bolton
De standaardinstelling is alleen ingesteld op /var/www omdat distributies niet mogen aanraken /srv; dat is voor de systeembeheerder om te configureren. Dus daarom is het "veel minder vaak" en ook correct. - Michael Hampton♦


Bekijk de Filesystem Hierarchy Standard (Wikipedia). Ik gebruik zelf / srv / web / $ domain / {htdocs, logs, cgi-bin, ...}.


28
2018-01-14 08:09



Ik doe het ook zo, maar in plaats van "www" gebruik ik altijd de servicenaam "httpd". Dus ik heb / srv / httpd / $ domein ... of / srv / smbd / sharename ... Op deze manier is het eenvoudiger om te zien welke service de bestanden dient. Bijvoorbeeld op sommige systemen hebben we / srv / nginx / $ domein - Raffael Luthiger


Websites moeten in de persoonlijke mappen van gebruikers wonen. Het zijn gebruikersgegevens, moeten worden geïsoleerd door één gebruiker per site en dynamische inhoud moet opnieuw als afzonderlijke gebruiker worden uitgevoerd, met bestanden die de dynamische inhoud moet lezen en wijzigen, met de juiste machtigingen om dit te doen.

Bijwerken:

Alleen omdat het geen shared hosting-server is, betekent dit nog niet dat u zich niet moet bezighouden met goede beveiligingspraktijken en onafhankelijke rollen moet scheiden in hun eigen beveiligingszones.


9
2018-01-14 08:59





De definitieve gids is de Filesystem Hierarchy Standard dat zegt dat /srv is de juiste plaats.


7
2018-01-14 08:36



Ik lees het niet op die manier - althans, ik lees het als dubbelzinnig op dit punt. De meeste websites worden niet eenvoudig bediend by this system, ze worden bediend door een hele cluster van systemen; en de twee zinnen beginnen bij This setup will differ from host to host. suggereren dat dit niet de plaats is voor bestanden die op veel servers worden gedeeld. Het is echter een redelijk waarschijnlijke plaats - zeker meer geschikt dan /usr, en aantoonbaar beter dan /var - James Polley
Ik denk niet dat de FHS definitief is. Re: (Uit Wikipedia): De meeste Linux-distributies volgen de FHS en verklaren het hun eigen beleid om FHS-naleving te handhaven. Echter, de overgrote meerderheid (vanaf 2009) van distributies, inclusief die ontwikkeld door leden van de Free Standards Group, volgen de voorgestelde standaard niet volledig. - Michael Graff
Dat is het leuke van normen - er zijn er zoveel om uit te kiezen! :) - James Polley


Waar ze op schijf leven, heeft weinig belang. Het is waar je ze wilt.

Ik heb een symlink van / www op al mijn machines naar waar ze echt leven, dus ik hoef me nooit van machine naar machine te vragen. Sommige oudere machines hebben / u0 en / u1 voor gebruikersschijven, en ik plaats de webdingen daar. Sommige hebben / home direct gemonteerd, dus ze gaan daarheen, maar / www wijst altijd naar de juiste plaats.

Ik zet ook geen enkele configuratie in / usr noch in / var. Het gaat in / local (wat, je raadt het al, is een symlink ergens op / u0 of / u1 meestal). Dit maakt het maken van een back-up eenvoudig. Ik maak gewoon een back-up van de gebruikersschijven.

Natuurlijk heb ik een master-distributiesite voor mijn OS naar keuze, NetBSD. Ik maak het systeem zoals ik het wil op deze hoofdmachine (echt een xen-instantie) en rsync / usr in de buurt. Maakt mijn leven gemakkelijk.


3
2018-01-14 08:15



Dit is prima als je een eenmansoperatie bent, of misschien een klein team dat nauw samenwerkt en bekend bent met elkaars tekortkomingen - het leren van de 'juiste' manier om dit te doen zal waarschijnlijk langer duren dan alleen maar doen het. Als je een grote operatie hebt en vaak nieuwe mensen aan boord brengt, zal het erg veel tijd kosten om ze op de hoogte te brengen met een dergelijke lay-out - het vasthouden aan (of in ieder geval in de buurt van) de FHS is gaan tijd besparen met elke nieuwe persoon die je in het team brengt. - James Polley
Wanneer u 8 verschillende besturingssystemen gebruikt, zijn interne standaarden veel gemakkelijker te leren dan elke-os-doet-het-zijn-eigen-weg. - Michael Graff
@James Polley Hoeveel tijd kost het om een ​​nieuwe verhuurder te vertellen "we stoppen dingen in /path/we/chose"? - ceejayoz
@ceejayoz Als je meer dan ongeveer twee categorieën "dingen" hebt, is het veel eenvoudiger om ze te vertellen "we volgen de FHS", hoewel dat misschien extra details vereist voor sommige categorieën van "dingen". - tripleee


Volgens mij moet u NOOIT en NOOIT internetdiensten op de gemeenschappelijke systeemzone plaatsen.

Uw internetdiensten (Apache / Tomcat / SSH, enz.) Zijn een voordeur, en als u die services in uw systeemzone plaatst, bent u mogelijk kwetsbaar voor sommige aanvallen.

Meer dan als je je verschillende services in een veilige sandbox-zone hebt gezet zoals een andere ontkoppelingspartitie.

Hier is een voorbeeld van de structuur die u zou kunnen gebruiken:

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)

2
2018-03-08 14:43



Zou je de "common system zone" kunnen uitbreiden? Het is geen term die ik eerder heb gehoord en ik weet niet zeker wat je bedoelt. /srv/bin lijkt de FHS te schenden, waarin staat dat /srv is voor gegevens, niet voor binaire bestanden - James Polley
Goed gemeenschappelijke systeemzone betekent, het deel van het besturingssysteem waar alle systeemonderdelen, account, wachtwoord, binaire bestanden van beheerder en bibliotheek zijn opgeslagen. Ik weet dat Mijn installatie de FHS niet volledig respecteert, maar ik kan het besturingssysteem in twee delen volledig splitsen. 1 ° / - Het systeem dat redelijk hersteld is (behalve voor de installatie van update- en beheertools) 2 ° / - De applicaties, datas en USers Homeland. Op deze manier, als je wat problemen hebt met je systeem of datas, zal je niet alle gegevens verliezen. - Dr I
Ik snap het. Dit is logisch - dat is de reden waarom de meeste desktops bijvoorbeeld zijn geplaatst /home op een aparte partitie - je kunt alles weg blazen op de niet-/home partitie en maak je geen zorgen over het verliezen van gebruikersgegevens. +1 voor het scheiden van gegevens. - James Polley


Apache-webserver heeft standaardwebsite onder / Var / www / maar het suggereert om andere websites onder te brengen / Srv /

Ik heb dit opgemerkt op Ubuntu Server 14.04 LTS. Het standaard apache2.conf-bestand bevat een blok met opmerkingen:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

2