Menurut panduan pada struktur direktori Linux , /usr/
adalah untuk file aplikasi, dan /var/
untuk file yang berubah (saya menganggap ini berarti "file yang termasuk dalam aplikasi"). Apakah ini benar?
Jika ini masalahnya maka saya agak terpecah antara menggunakan keduanya. Sebuah situs web adalah sebuah aplikasi (jika itu dinamis, jadi untuk berbicara), tetapi dalam kasus lain itu hanya kumpulan file yang digunakan oleh Apache.
Dir default www tinggal di /var/www/
, jadi haruskah kita mengikutinya dengan menggunakan /var/websites/
(atau sesuatu yang serupa), atau memilih /usr/websites/
karena mereka bisa menjadi aplikasi?
Ini adalah pertanyaan yang sangat sepele, tapi tetap saja mengganggu saya. Untuk kasus kami, saya condong ke arah /usr/web
atau sesuatu seperti itu, karena situs web kami semua aplikasi.
Memperbarui:
Ini untuk situs web perusahaan kami; itu bukan server hosting bersama, jadi kita tidak perlu khawatir tentang memisahkan mereka /home/
atau semacamnya.
Jawaban:
Menurut FHS ,
/usr
adalah untukshareable, read-only data
- bukan tempat Anda ingin meletakkan situs web. Di sinilah Anda harus meletakkan kode Anda (misalnya Fedora melakukan ini untuk Wordpress). Lihat juga panduan pengemasan aset web untuk Fedora./var
adalah "file data variabel. Ini termasuk direktori dan file spool, data administratif dan logging, dan file sementara dan sementara." - lebih baik, tetapi masih belum sepenuhnya benar - tetapi banyak sistem akan menggunakan/var/www
, jadi bahkan jika Anda salah meletakkannya di sana Anda berada di perusahaan yang baik./srv
adalah untuk "data spesifik situs yang dilayani oleh sistem ini." - yang sepertinya cocok, tetapi jauh lebih jarang/var/www
.Tempat umum lain untuk meletakkan file situs berada di bawah
/home
- dengan membuat pengguna khusus yang dipanggilwebsite
atau semacamnya, kemudian menempatkan file di dalam homedir pengguna itu (mis.,/home/website
).sumber
/srv
- karena saya belum pernah melihat ini sebelumnya, saya pikir itu diciptakan oleh mereka. Apakah ini Redhat / CentOS?/var/www
karena distribusi tidak diizinkan untuk disentuh/srv
; itu untuk administrator sistem untuk mengkonfigurasi. Jadi, itu sebabnya "jauh lebih jarang" dan juga benar.Lihatlah Hierarchy Filesystem Standard ( Wikipedia ). Saya sendiri menggunakan / srv / web / $ domain / {htdocs, log, cgi-bin, ...}.
sumber
Situs web harus hidup di direktori home pengguna. Mereka adalah data pengguna, harus diisolasi oleh satu-pengguna-per-situs, dan konten dinamis harus dijalankan sebagai pengguna yang terpisah lagi, dengan file yang perlu dibaca dan dimodifikasi oleh konten dinamis yang diberikan izin yang sesuai untuk melakukannya.
Memperbarui:
Hanya karena itu bukan server hosting bersama bukan berarti Anda tidak boleh terlibat dalam praktik keamanan yang baik dan memisahkan peran independen ke dalam zona keamanan mereka sendiri.
sumber
Panduan definitif adalah Filesystem Hierarchy Standard yang mengatakan itu
/srv
adalah tempat yang tepat.sumber
by this system
, tetapi dilayani oleh sekelompok sistem; dan dua kalimat mulai dariThis setup will differ from host to host.
menyarankan bahwa ini bukan tempat untuk file yang dibagikan di banyak server. Ini adalah tempat yang cukup mungkin - tentu saja lebih tepat daripada/usr
, dan bisa dibilang lebih baik daripada/var
Tempat mereka tinggal di disk memiliki sedikit masalah. Itu tempat Anda menginginkannya.
Saya memiliki symlink dari / www di semua mesin saya ke tempat mereka benar-benar tinggal, jadi saya tidak perlu bertanya-tanya dari mesin ke mesin. Beberapa mesin yang lebih tua memiliki / u0 dan / u1 untuk disk pengguna, dan saya menempatkan hal-hal web di sana. Beberapa memiliki / home mount secara langsung, sehingga mereka pergi ke sana, tetapi / www selalu menunjuk ke tempat yang tepat.
Saya juga tidak menaruh konfigurasi di / usr atau di / var. Ini masuk / lokal (yang, Anda dapat menebaknya, adalah symlink di suatu tempat di / u0 atau / u1 biasanya). Ini membuat membuat cadangan hal-hal mudah. Saya baru saja mencadangkan disk pengguna.
Tentu saja, saya memiliki situs distribusi utama untuk OS pilihan saya, NetBSD. Saya membuat sistem seperti yang saya inginkan pada mesin utama ini (contohnya xen) dan rsync / usr. Membuat hidup saya mudah.
sumber
/path/we/chose
"?Server web Apache memiliki situs web standar di bawah / var / www / tetapi menyarankan untuk menempatkan situs web lain di bawah / srv /
Saya perhatikan ini di Ubuntu Server 14.04 LTS. File apache2.conf default-nya berisi blok komentar:
sumber
Menurut saya Anda harus TIDAK PERNAH dan TIDAK PERNAH menempatkan Layanan Internet di zona sistem umum.
Layanan Internet Anda (Apache / Tomcat / SSH dll) adalah pintu depan, maka jika Anda memasukkan layanan tersebut ke zona Sistem Anda, Anda akan berpotensi rentan terhadap beberapa serangan.
Lebih dari jika Anda telah menempatkan layanan differents Anda ke zona kotak pasir yang aman seperti partisi detach lainnya.
Berikut adalah contoh struktur yang dapat Anda gunakan:
sumber
/srv/bin
tampaknya melanggar FHS, yang menyatakan itu/srv
untuk data, bukan binari/home
partisi yang terpisah - Anda dapat membuang semua yang ada di non-/home
partisi dan tidak khawatir kehilangan data pengguna. +1 untuk memisahkan data.