Web siteleri önerilen kullanıma göre / var / veya / usr / içinde mi yaşamalıdır?


62

Linux dizin yapısındaki bir kılavuza göre , /usr/uygulama dosyaları içindir ve /var/değişen dosyalar içindir (Bunun "uygulamalara ait dosyalar" anlamına geldiğini farz ediyorum). Bu doğru mu?

Bu durumda, o zaman ikisini de kullanıyorum. Bir web sitesi bir uygulamadır (eğer dinamikse, tabiri caizse), fakat diğer durumlarda Apache tarafından kullanılan dosyalar topluluğudur.

Varsayılan www dir içinde yaşar /var/www/, bu yüzden /var/websites/(ya da benzer bir şeyi kullanarak) uygun olanı /usr/websites/mı takip etmeli ya da uygulama olabileceğinden mi seçmeliyiz ?

Bu çok önemsiz bir soru, ama yine de beni rahatsız ediyor. Bizim durumumuzda, /usr/webweb sitelerimizin hepsi birer uygulama olduğu için buna ya da bunun gibi bir şeye yaslanıyorum .

Güncelleme:

Bu firmamızın web siteleri için; bu paylaşılan bir barındırma sunucusu değil, bu yüzden onları ayırma konusunda endişelenmenize gerek yok /home/.


10
Sorunun bu kadar önemsiz olduğunu düşünmüyorum; aslında oldukça iyi bir tane. İlginç.
Aron Rotteveel

Yanıtlar:


63

Göre FHS , /usriçindir shareable, read-only dataweb sitesini koymak istemiyor nerede -. Bu, kodunuzu girmeniz gereken yerdir (örneğin, Fedora bunu Wordpress için yapar). Ayrıca Fedora için web varlıklarını paketleme kılavuzuna bakın.

/var"değişken veri dosyaları. Bu, biriktirme dizinlerini ve dosyalarını, yönetimsel ve günlük verilerini ve geçici ve geçici dosyaları içerir." - daha iyi, ama yine de tam olarak doğru değil - ama birçok sistem kullanacak /var/www, bu yüzden oraya koymakta yanlış olsanız bile, iyi bir şirketdesiniz.

/srv"Bu sistem tarafından sunulan siteye özgü veriler." - ki bu iyi bir eşleşme gibi gözüküyor, fakat bundan daha az yaygın /var/www.

Site dosyalarını koymak için başka bir ortak yer altında /home- özel bir kullanıcı websiteveya benzeri özel bir kullanıcı oluşturarak , dosyaları bu kullanıcının homedir (örneğin, /home/website) içine yerleştirerek .


4
Ah, işim kullanıyor /srv- bunu daha önce hiç görmediğim gibi, onlar tarafından yaratıldığını sanıyordum. Redhat / CentOS olayı mı?
Nick Bolton,

12
Varsayılan ayar yalnızca /var/wwwdağıtımların dokunmasına izin verilmediğinden ayarlanmıştır /srv; Bu sistem yöneticisinin yapılandırması içindir. Demek bu yüzden "çok daha az yaygın" ve aynı zamanda doğru.
Michael Hampton

28

Dosya Sistemi Hiyerarşisi Standardına ( Wikipedia ) bir göz atın . Ben kendim / srv / web / $ domain / {htdocs, log, cgi-bin, ...} kullanıyorum.


3
Ben de böyle yapıyorum ama "www" yerine "httpd" servis ismini her zaman kullanıyorum. Bu yüzden / srv / httpd / $ domain ... veya / srv / smbd / sharename ... Bu dosyalara hangi servisin hizmet verdiğini görmek daha kolay. Örneğin bazı sistemlerde / srv / nginx / $ alan
adımız var

9

Web siteleri kullanıcıların ev dizinlerinde yer almalıdır. Bunlar kullanıcı verileridir, site başına bir kullanıcı tarafından izole edilmeli ve dinamik içeriğin uygun izinleri verilenleri okuması ve değiştirmesi gereken dosyalar ile birlikte dinamik içerik tekrar ayrı bir kullanıcı olarak çalıştırılmalıdır.

Güncelleme:

Bunun nedeni paylaşımlı bir barındırma sunucusu olmaması, iyi güvenlik uygulamalarına girmemeniz ve bağımsız rolleri kendi güvenlik bölgelerine ayırmamanız gerektiği anlamına gelmez.


7

Kesin kılavuz , bunun doğru yer olduğunu söyleyen Dosya Sistemi Hiyerarşisi Standardıdır/srv .


2
Bu şekilde okumam - ya da en azından bu noktada belirsiz olarak okudum. Çoğu web sitesi basit bir şekilde sunulmaz by this system, bir dizi sistem tarafından sunulur; ve başlayan iki cümle This setup will differ from host to host., bunun birçok sunucuda paylaşılan dosyaların yeri olmadığını gösteriyor. Yine de oldukça muhtemel bir yer - kesinlikle daha uygun /usrve tartışmalı olarak daha iyi/var
James Polley,

1
FHS'nin kesin olduğunu sanmıyorum. Ynt: (Wikipedia'dan): Çoğu Linux dağıtımı FHS’yi izler ve FHS’nin uyumluluğunu korumak için kendi politikalarını ilan eder. Bununla birlikte, Serbest Standartlar Grubu üyeleri tarafından geliştirilenler de dahil olmak üzere, dağıtımların büyük çoğunluğu (2009 itibariyle) önerilen standardı tamamen takip etmemektedir.
Michael Graff

6
Standartlar hakkındaki güzel şey bu - aralarından seçim yapabileceğiniz çok fazla şey var! :)
James Polley

3

Diskte yaşadıkları yer çok az önemli. Onları istediğin yer burası.

Tüm makinelerimde / www 'den gerçekten yaşadıkları yere bir bağlantı veriyorum, bu yüzden asla makineden makineye merak etmem gerekmiyor. Bazı eski makinelerde kullanıcı diskleri için / u0 ve / u1 bulunur ve web sayfalarını oraya yerleştiririm. Bazıları doğrudan / evine monte edilmiş, oraya gidiyorlar, ancak / www her zaman doğru yere işaret ediyor.

Ayrıca / usr içinde ve / var içinde herhangi bir yapılandırma koymuyorum. İçerisine / yereline gider (tahmin ettiğiniz gibi, tipik olarak / u0 veya / u1 üzerinde bir yerde bir sembolik bağlantıdır). Bu, işleri yedeklemeyi kolaylaştırır. Sadece kullanıcı disklerini yedekledim.

Tabii ki, tercih ettiğim işletim sistemi NetBSD için bir ana dağıtım sitem var. Sistemi bu ana makinede (gerçekten bir xen örneği) ve çevresinde rsync / usr'da istediğim gibi yapıyorum. Hayatımı kolaylaştırıyor.


6
Tek kişilik bir operasyon veya belki de birlikte çalışan ve birbirlerinin foiblerine aşina olan küçük bir ekibiniz varsa bu iyi bir şeydir - 'doğru' yolunu öğrenmek muhtemelen sadece yapmaktan daha uzun sürecektir. o. Büyük bir operasyonunuz varsa ve sık sık yeni kişileri de yanınıza alıyorsanız, bunun gibi bir düzene sahip olmalarını hızlandırmak zorunda kalmak çok zaman alacak - FHS’ye (veya en azından yakın) Takıma getirdiğin her yeni kişiyle zaman kazanacaksın.
James Polley,

5
8 farklı işletim sistemi kullandığınızda, kurum içi standartların öğrenilmesi, her birinin kendi kendine yaptığı sistemden çok daha kolaydır.
Michael Graff

1
@James Polley Yeni bir işe "bir şeyler koyduk" demek ne kadar sürüyor /path/we/chose?
ceejayoz

@ceejayoz Eğer ikiden fazla "şeyler" kategorisinden daha fazlasına sahipseniz, bazı "şeyler" için bazı ek detaylar gerektirmesine rağmen, "FHS’yi izleriz" demeniz çok daha kolaydır.
üçlü

3

Apache web sunucusu / var / www / altında varsayılan web sitesine sahiptir , ancak diğer web sitelerinin / srv / altında bırakılması önerilmektedir.

Bunu Ubuntu Server 14.04 LTS'de farkettim. Varsayılan apache2.conf dosyası yorumlanmış blok içeriyor:

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

2

Bana göre, ASLA ve ASLA ASLA ortak sistem bölgesine herhangi bir İnternet Hizmeti koymamalısınız.

İnternet Servisleriniz (Apache / Tomcat / SSH vb.) Bir ön kapıdır, o zaman bu servisleri Sistem bölgenize yerleştirirseniz, bazı saldırılara karşı potansiyel olarak savunmasız kalırsınız.

Farklı hizmetlerinizi başka bir ayırma bölümü gibi güvenli bir sanal alan içine koyduğunuzdan daha fazlası.

İşte kullanabileceğiniz bir yapı örneği:

/ --> 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.)

1
"Ortak sistem bölgesi" nde genişleyebilir misiniz? Daha önce duyduğum bir terim değil ve ne demek istediğinden emin değilim. /srv/binİkili /srvveriler için değil, veriler için olduğunu belirten FHS'yi ihlal ediyor gibi görünüyor
James Polley

İyi Ortak sistem bölgesi, işletim sisteminin hesap, şifre, Yönetici ikili dosyaları ve Kütüphane gibi tüm Sistem bileşenlerini depoladığı kısım anlamına gelir. Kurulumumun FHS'ye tamamen saygı göstermediğini biliyorum ama işletim sistemini tamamen ikiye bölebiliyorum. 1 ° / - Oldukça sabit olan sistem (güncelleme ve yönetim araçları kurulumu hariç) 2 ° / - Uygulamalar, veriler ve KULLANICI YERLER. Bu şekilde, sisteminizde veya verilerinizle ilgili bazı sıkıntılar yaşarsanız, tüm verileri kaybetmezsiniz.
Dr I

Anlıyorum. Bu mantıklı - çoğu masaüstünün /homeayrı bir bölüme yerleştirilmesinin nedeni budur - bölüm dışındaki her şeyi /homeparçalayabilir ve kullanıcı verilerini kaybetme konusunda endişelenmenize gerek kalmaz. Verileri ayırmak için +1.
James Polley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.