Cara mengkonfigurasi Apache (situs-tersedia vs httpd.conf)

27

Saya telah mencoba mengikuti beberapa tutorial dasar yang menjelaskan cara menjalankan dan menjalankan Apache (di ubuntu, berjalan di Amazon). Saya sebagian besar muncul kosong, karena semua tutorial mengatakan kepada saya untuk mengkonfigurasi httpd.conf (untuk menambahkan DocumentRoot, dll.).

Saya sekarang telah menemukan satu tutorial yang mengatakan kepada saya untuk menambahkan konfigurasi situs ke direktori situs yang tersedia (di bawah / etc / apache), dan kemudian symlink ke sana dari situs yang diaktifkan. Mengkonfigurasi cara ini tampaknya berhasil.

Tapi sekarang saya bingung - bagaimana saya bisa mengkonfigurasi Apache? Kebanyakan tutorial sepertinya mengatakan bahwa saya harus menggunakan httpd.conf. Yang mana yang harus saya gunakan? Apa bedanya? Mengapa semua tutorial "salah" (jika ya)?

Edan Maor
sumber

Jawaban:

35

The sites-availableMetode umumnya dianggap sebagai "Debian Way":

  • konfigurasi "utama" /etc/apache2/apache2.conf
  • konfigurasi "pengguna" /etc/apache2/httpd.conf
  • vhosts dalam /etc/apache2/sites-availablefile (satu per file, biasanya)
    • Anda mungkin ingin memberi nomor, misalnya 00-domain.com, 01-otherdomain.com
  • port ( Listenarahan) di/etc/apache2/ports.conf
  • mods dalam /etc/apache2/mods-available

Anda dapat memanipulasi ini dengan symlink atau dengan a2serangkaian perintah:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

Tergantung pada preferensi pribadi, Anda dapat me-restart Apache menggunakan apachectl, /etc/init.d/apache2 (start|stop|reload|restart)atauservice apache2 (start|stop|reload|restart)

Contoh di mana Anda akan menggunakan httpd.confbukannya entri vhost akan untuk aturan redirect global atau menulis ulang, misalnya. Berita menarik lainnya - umumnya, Anda harus pergi apache2.confsendiri, dan pastikan Anda menyiapkan skema penamaan yang konsisten untuk vhosts di sites-availabledirektori.

Sam Halicke
sumber
Ringkasan hebat! Jauh lebih jelas dan ringkas daripada yang saya kerjakan. +1.
Steven Monday
2
Situs yang tersedia menyediakan modularisasi konfigurasi yang baik. Ini memungkinkan Anda untuk fokus pada konfigurasi satu situs dengan mudah. Ini juga membuatnya lebih mudah untuk membandingkan situs di server atau untuk memindahkan atau mereplikasi situs di antara server.
BillThor
+1. Saat Anda perlu mempertahankan konfigurasi ini, buka 'situs-aktif' alih-alih 'situs-tersedia' dan akses langsung dari sana. Dengan cara ini Anda akan selalu dapat menentukan dan mengakses konfigurasi situs yang saat ini digunakan.
Ross
9

Lokasi dan organisasi file konfigurasi dapat dikonfigurasi dan dapat berubah antara rilis utama atau antara distribusi.

Apache Wiki memiliki panduan praktis untuk nama dan lokasi file konfigurasi.

Karena file konfigurasi dapat berisi includearahan, bagian dari konfigurasi dapat dipisahkan menjadi file yang lebih kecil. Karena file konfigurasi Apache standar berisi banyak komentar dan banyak item standar, masuk akal untuk memisahkan bagian-bagian yang paling mungkin Anda ubah.

Nama file konfigurasi utama dapat diubah pada waktu kompilasi dan dalam rilis baru-baru ini telah berubah dari httpd.confmenjadiapache2.conf

Selama bertahun-tahun telah ada beberapa evolusi dalam organisasi file konfigurasi yang disertakan juga.

Sebagai contoh, saya menginstal Apache2 pada sistem berbasis Ubuntu menggunakan apt-get install apache2- inilah file yang disertakan

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Jadi beberapa pengaturan konfigurasi yang paling menarik bagi Anda sekarang /etc/apache2/sites-available/default.

Saya dapat melihat bahwa ini konsisten dengan dokumentasi Ubuntu untuk Apache yang saya sarankan Anda baca dulu. Jika Anda memiliki dokumentasi lain untuk versi Apache yang lebih lama (atau distribusi lainnya), Anda dapat menyesuaikan informasi tersebut agar sesuai dengan cara berbagai hal diatur di Ubuntu.

RedGrittyBrick
sumber
-2

Apache di linux dapat diinstal oleh dua jenis. satu dengan apt-get dan file tar unduhan lainnya dan mengekstrak .... Dengan demikian dalam proses situs apt-get disajikan dari / etc / apache2 / folder yang mendukung situs karena setiap situs yang melayani dunia luar dikonfigurasi dalam folder ini oleh contoh file .conf 000-default.conf adalah situs default yang diaktifkan untuk menampilkan karya apache.

dengan demikian dengan membuat file .conf apa pun di situs yang diaktifkan dan mengarahkannya ke lokasi konten .. situs ini dilayani.

Jadi untuk menambahkan situs statis baru, file .conf baru harus dibuat di folder yang didukung situs dengan nama contoh example.conf. dan harus menambahkan baris di bawah ini di dalamnya

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log digabungkan

Sedangkan, *: 80 menunjukkan "terbuka ke dunia melalui port 80" DocumentRoot / var / www / html menunjukkan "jalur konten situs"

Basutkar. Karthik
sumber
Ini salah dan menyesatkan. Anda membuat file Anda di situs-tersedia sehingga alat (disarankan) seperti a2ensite dapat bekerja. Biasanya Anda menghubungkan file conf ini menggunakan a2ensite ke situs-enabled. apt-get tidak ada hubungannya dengan mengkonfigurasi situs Anda.
HörmannHH