Apa direktori yang disarankan untuk menyimpan konten situs web?

21

Ketika saya pertama kali memulai pemrograman untuk web dan saya ingin membuat proyek baru saya selalu diajarkan untuk membuat direktori di /var/www/. Namun dalam banyak tutorial saya membaca orang cenderung membuat direktori /home/username/.

Saya tidak suka ide memasukkannya /home/username/.

Apakah ada tempat yang benar atau jika tidak apa kelebihan / kerugian dari menempatkannya di area tertentu pada sistem file?

Ternak
sumber
Itu preferensi ("terbaik" menyiratkan bahwa, mungkin Anda harus mengubahnya menjadi paling aman, dll.) Untuk pengembangan sebagian besar. Jika Anda melayani mereka dari sana juga, maka Anda mungkin ingin sesuatu yang terpencil untuk menjaga jarak antara file pribadi Anda dan hal-hal yang berbagi web. Tetapi ada sejuta konfigurasi. Saya tetap dengan /var/wwwdan biasanya memilikinya di drive lain (hanya preferensi).
nerdwaller
Tidak ada direktori "terbaik". Ini sepenuhnya penyimpangan Anda karena lokasi file tidak penting.
Ramhound

Jawaban:

36

Tidak ada direktori "terbaik". Dan sementara orang mungkin berpendapat bahwa pertanyaan ini adalah subjektif, atau bahwa penempatan sebenarnya file tidak peduli-dan mereka benar tentang yang terakhir-ada yang rekomendasi standar di mana untuk menempatkan apa yang di Unix-seperti sistem.

The Filesystem Hierarchy Standard mendefinisikan ini dan menawarkan Anda berikut ini:

  • /var- tempat untuk meletakkan data yang berubah selama operasi normal, seperti log, dll. /var/wwwAdalah direktori default untuk menempatkan konten web untuk Apache, tetapi penggunaannya tidak terstandarisasi sama sekali dan hanya "biasa" tempat Anda meletakkannya karena orang jangan terlalu sering mengubah pengaturan default.

  • /srv- direktori ini harus berisi data yang dilayani oleh sistem. Ini biasanya tempat yang Anda inginkan. FHS menjelaskan:

    Tujuan utama dari menentukan ini adalah agar pengguna dapat menemukan lokasi file data untuk layanan tertentu, dan agar layanan yang membutuhkan satu pohon tunggal untuk data yang dapat dibaca, data yang dapat ditulis dan skrip (seperti skrip cgi) dapat ditempatkan secara wajar. Data yang hanya menarik bagi pengguna tertentu harus masuk dalam direktori home pengguna tersebut. (...)

    Salah satu metode untuk menyusun data di bawah /srvadalah dengan protokol, misalnya. ftp, rsync, www, Dancvs

    Jadi, cukup buat /srv/wwwdirektori dan gunakan ini. Anda dapat membuat subfolder untuk setiap host virtual yang mungkin ingin Anda sajikan dengan mesin Anda.

  • /homeberisi file yang seharusnya hanya milik satu pengguna. Apache misalnya memungkinkan userdirs , sehingga Anda dapat mengakses file web pengguna melalui http://example.com/~username, dan mereka dilayani dari public_htmldirektori di rumah pengguna.

    Jika Anda menggunakan server yang dibagikan di antara banyak orang, dan Anda ingin mengizinkan semua orang meng-host skrip mereka sendiri, ini adalah tujuan mereka. Ingatlah untuk membuat direktori dapat ditulis oleh pengguna yang hanya mereka miliki.

Intinya /srv/wwwdan /var/wwwadalah direktori Anda harus membuat subdirektori untuk proyek web apa pun yang mungkin ingin Anda host. Anda kemudian dapat menetapkan berbagai izin pada direktori ini untuk memungkinkan pengguna tertentu atau grup pengguna untuk menulis kepada mereka. Jika Anda memiliki proyek untuk satu pengguna sekaligus, gunakan /home.

slhck
sumber
3
The http://example.com/~usernamebiasanya tidak menunjuk ke /home/username/, tetapi untuk /home/username/public_html/.
choroba
Ya, terima kasih, itu seharusnya ditambahkan untuk kejelasan. Selesai
slhck
Setelah beberapa tahun menggunakannya /var/www, inilah saatnya untuk berubah!
sitilge
Juga, wwwterdengar lebih seperti subdomain bagi saya.
sitilge
Hanya untuk menambahkan ... Penggunaan / var / www adalah praktik umum untuk instance penyajian situs tunggal dan seperti yang dikatakan lokasi default Apache, sedangkan menggunakan / home / usr / was / adalah praktik umum untuk server pengecer atau multi-situs hosting diambil dari konsep pengguna == klien. Keduanya hanya praktik umum dan jawaban shlck adalah penggunaan yang lebih baik dari tujuan filesystem yang dimaksudkan.
Jools
4

Yah Anda dapat meletakkan file di mana saja selama hal-hal dapat mengaksesnya dengan benar, namun sistem file yang berantakan adalah sakit kepala jika seseorang datang nanti.

/srv adalah plus paling logis jika Anda mengikuti Filesystem Hierarchy Standard itu akan pergi di sini.

Jika Anda melakukan lebih dari satu domain, Anda dapat melakukan, /srv/domain1 /srv/domain2dll, dll. Lalu subfolder di luar sana/ftp /www /tftp /logs /etc.etc.etc

Bagi saya itu terasa struktur yang sangat kokoh untuk dibangun dan mudah dikendalikan

Tetapi sebagai administrator Anda dapat melakukan sebersih atau berantakan yang Anda inginkan.

jenny
sumber
1

Ok jawaban cepat mudah.

Jika file web Anda pada sistem hanya akan diakses oleh SATU pengguna di sistem linux. Gunakan direktori home pengguna ( ~/).

Jika file web Anda pada sistem akan diakses oleh pengguna GANDA di sistem linux. Gunakan /srv/.

Inilah tepatnya http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM menyatakan.

Berikut ini kutipannya:

/ srv berisi data spesifik situs yang dilayani oleh sistem ini.

Tujuan utama menentukan ini adalah agar pengguna dapat menemukan lokasi file data untuk layanan tertentu, dan agar layanan yang memerlukan satu pohon untuk data yang hanya dapat dibaca, data yang dapat ditulis dan skrip (seperti skrip cgi) dapat ditempatkan dengan wajar. Data yang hanya menarik bagi pengguna tertentu harus masuk dalam direktori home pengguna tersebut.

Bonus: www? ftp? Atur dengan protokol? Hah?

Sebagaimana dinyatakan di sini di http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

  • Jika situs web Anda hanya diakses oleh SATU pengguna di sistem dan HANYA melalui browser (protokol http) maka: ~/http/your-website-directory/atau (protokol https) maka:~/https/your-website-directory/
  • Jika situs web Anda hanya diakses oleh SATU pengguna di sistem dan TIDAK HANYA melalui peramban tetapi banyak protokol (ig http DAN tcp DAN ...), maka: ~/your-website-directory/
  • Jika situs web Anda diakses oleh pengguna MULTIPLE pada sistem dan HANYA melalui browser (protokol http) maka: /srv/http/your-website-directory/atau (protokol https) maka:/srv/https/your-website-directory/
  • Jika situs web Anda diakses oleh pengguna MULTIPLE pada sistem dan TIDAK HANYA melalui browser tetapi beberapa protokol (ig http DAN ftp AND ...), maka: /srv/your-website-directory/

Hah kenapa tidak www? Ini adalah warisan dari zaman Apache. www tidak menentukan protokol mana yang digunakan. Debian masih menggunakan ini sampai hari ini sementara misalnya Arch linux menggunakan / srv / http.

Karl Morrison
sumber
0

Server web Apache memiliki situs web standar di bawahnya /var/www/tetapi disarankan untuk menempatkan situs web lain di bawahnya/srv/

Saya perhatikan ini di Ubuntu Server 14.04 LTS. apache2.confFile default-nya berisi blok komentar:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
Maris B.
sumber