Tujuan dari dir “debian“ sites-available ”dan“ sites-enabled "

60

Adakah yang bisa memberi tahu saya — secara singkat — apa tujuan kedua direktori ini di Debian?

/etc/apache2/sites-enabled
/etc/apache2/sites-available

Saya melihat perbedaan sites-available/000-defaultdan sites-enabled/defaultmenunjukkan mereka identik.

Apa yang menyebabkannya?

aaaidan
sumber

Jawaban:

63

sites-available berisi file konfigurasi apache untuk setiap situs Anda. Sebagai contoh:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin [email protected]

  DirectoryIndex index.php
  DocumentRoot /home/user/public_html/site.mysite.com/public

  LogLevel warn
  ErrorLog /home/user/public_html/site.mysite.com/logs/error.log
  CustomLog /home/user/public_html/site.mysite.com/logs/access.log combined
</VirtualHost>

Ketika Anda ingin menambahkan situs baru (misalnya, site.mysite.com), Anda menambahkannya di sini, dan gunakan:

a2ensite site.mysite.com

Untuk mengaktifkan situs. Setelah situs diaktifkan, symlink ke file config ditempatkan di direktori yang diaktifkan situs, yang menunjukkan bahwa situs tersebut diaktifkan.

Jason Leveille
sumber
12
Jika Anda ingin menonaktifkan situs, Anda akan menjalankan situs a2dissite.mysite.com
2
a2ensitedan a2dissiteterletak di /usr/sbinmana saat ini tidak termasuk dalam jalur pengguna default sehingga penyelesaian tab tidak akan berfungsi. Saat mengetik sudo a2dan menekan tombol tab namun Anda akan ditawari keduanya a2ensitedan a2dissite.
Stefan Schmidt
22

Lebih penting daripada mekanisme sistem adalah alasan ...

Debian menyediakan dua direktori terpisah sehingga jika Anda secara otomatis mengelola konfigurasi Apache Anda, Anda hanya bisa memasukkan semua vhost ke sites-availablesemua mesin Anda, dan kemudian masing-masing vhosts dapat diaktifkan di server yang benar-benar akan melayani mereka. Ini juga berarti Anda dapat menonaktifkan situs secara instan jika menyebabkan masalah ( a2dissite example.com; /etc/init.d/apache2 reload).

womble
sumber
1
Ini adalah jawaban yang benar untuk pertanyaan awal.
silpol
5

Untuk menambah yang di atas, file dalam sites-enabledadalah symlink ke sites-availablefile:

ls -l /etc/apache2/sites-enabled/

Ini bukan hanya konten yang sama, itu file aktual yang sama!

JakeGould
sumber
5

Informasi penting:

Anda harus mengedit file hanya di sites-availabledirektori.

Jangan pernah mengedit file di dalam sites-enableddirektori, jika tidak Anda dapat memiliki masalah jika editor Anda kehabisan memori atau, karena alasan apa pun, ia menerima SIGHUP atau SIGTERM.

Misalnya: jika Anda menggunakan nanountuk mengedit file sites-enabled/defaultdan kehabisan memori atau, karena alasan apa pun, ia menerima SIGHUP atau SIGTERM, maka nanoakan membuat file darurat yang disebut default.save, di dalam sites-enableddirektori. Jadi, akan ada file tambahan di dalam sites-enableddirektori. Itu akan mencegah Apache atau NGINX untuk memulai. Jika situs Anda berfungsi, itu tidak akan lagi. Anda akan mengalami kesulitan sampai Anda menemukan, dalam log, sesuatu yang terkait dengan default.savefile dan kemudian menghapusnya.

Pada contoh di atas, jika Anda mengedit file di dalam sites-availabledirektori, tidak ada hal buruk yang akan terjadi. File tersebut sites-available/default.saveakan dibuat, tetapi tidak akan membahayakan di dalam sites-availabledirektori.

Vini
sumber
Sangat menarik! Adakah yang bisa mengkonfirmasi ini?
aaaidan
Berikut adalah contoh seseorang yang memiliki masalah ini: stackoverflow.com/questions/36808705/…
Vini
Hal serupa terjadi pada tautan berikut. Lihat Melvyn comment di answaer, tentang mengedit file di situs-enabled. stackoverflow.com/questions/26210115/…
Vini