Apache Virtual Host memungkinkan Anda menjalankan lebih dari satu situs web pada satu mesin server. Dengan Virtual Host, Anda dapat menentukan root dokumen situs (direktori yang berisi file situs web), membuat kebijakan keamanan terpisah untuk setiap situs, menggunakan berbagai sertifikat SSL dan banyak lagi.
Dalam tutorial ini, kami akan memberikan petunjuk langkah demi langkah tentang cara menyiapkan Apache Virtual Host di server CentOS 7.
Kami sarankan Anda untuk menguji setiap tutorial atau panduan yang ada di Internet di virtual machine (vmware atau virtualbox) sebelum menerapkan ke server produksi, agar tidak mengacaukan sistem yang berjalan ketika ada kesalahan.
Prasyarat
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:
- Memiliki nama domain yang menunjuk ke IP server publik Anda. Kami akan menggunakan
example.com
. - Anda telah menginstal Apache dengan mengikuti instruksi ini.
- Anda masuk sebagai pengguna dengan hak istimewa sudo.
Buat Struktur Direktori
Root dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan menyajikan informasi sebagai tanggapan atas permintaan pengunjung. Anda dapat mengatur root dokumen ke lokasi mana pun yang Anda inginkan, dalam panduan ini kami akan menggunakan struktur direktori berikut:
/var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html ├── domain3.com │ └── public_html
Pada dasarnya, kami akan membuat direktori terpisah untuk setiap domain yang ingin kami host di server kami di dalam direktori /var/www
. Dalam setiap direktori ini, kami akan membuat direktori public_html
yang akan menyimpan file situs web domain.
Mulai dengan membuat direktori root untuk domain example.com
:
sudo mkdir -p /var/www/example.com/public_html
Untuk tujuan pengujian, buat file index.html
di dalam direktori root dokumen domain.
Buka text editor nano
dan buat file demo:
sudo nano /var/www/example.com/public_html/index.html
copy dan paste kode berikut
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Selamat Datang</title> </head> <body> <h1>Setup Untuk Situs example.com di CentOS Berhasil!</h1> </body> </html>
Dalam panduan ini, kami menjalankan perintah sebagai pengguna sudo dan file dan direktori yang baru dibuat secara otomatis menjadi milik root (super administrator).
Untuk menghindari masalah izin keamanan, kita akan mengubah kepemilikan direktori root dokumen domain menjadi user apache
dengan perintah chown :
sudo chown -R apache: /var/www/example.com
Membuat File Virtual Host
Ada beberapa cara untuk mengatur virtual host. Anda dapat menambahkan semua directive Virtual Host dalam satu file atau membuat file konfigurasi berbeda untuk setiap Instruksi Virtual Host. Secara pribadi, saya lebih suka pendekatan kedua karena lebih bisa dipertahankan.
Secara default, Apache dikonfigurasikan untuk memuat semua file konfigurasi yang diakhiri dengan .conf
dari direktori /etc/httpd/conf.d/
.
Untuk membuat virtual host untuk situs web tertentu, buka text editor pilihan Anda dan buat file konfigurasi Virtual Host dasar berikut:
sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80> ServerName example.com
ServerAlias www.example.com ServerAdmin [email protected] DocumentRoot /var/www/example.com/public_html <Directory /var/www/example.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined </VirtualHost>
ServerName
: Domain harus cocok dengan konfigurasi virtual host. ServerName harus berisi nama domain Anda.ServerAlias
: jika Menginginkan domain anda menjadi www.example.com, maka gunakan ServerAlias.DocumentRoot
: Direktori tempat Apache akan melayani file domain dan juga tempat di mana Anda menyimpan file website Anda.Options
: directives ini mengontrol fitur server mana yang tersedia di direktori tertentu.-Indexes
Mencegah Apache membuat daftar direktori.FollowSymLinks
: Opsi ini memberi tahu server web Anda untuk mengikuti symbolic links.
AllowOverride
: Menentukan directives mana yang dideklarasikan dalam file .htaccess yang dapat menimpa directives konfigurasi.-
ErrorLog
,CustomLog
: Menentukan lokasi untuk file log.
Anda dapat memberi nama file konfigurasi sesuka Anda, tetapi praktik terbaik adalah menggunakan nama domain sebagai nama file konfigurasi host virtual. Perlu di perhatikan bahwa semua file konfigurasi Apache harus berakhiran dengan ekstensi .conf
.
Uji sintaksis file konfigurasi dengan menggunakan perintah :
sudo apachectl configtest
Jika tidak ada kesalahan, Anda akan melihat output berikut :
Syntax OK
Untuk mengaktifkan virtual host yang baru dibuat, restart layanan Apache dengan:
sudo systemctl restart httpd
Verifikasi bahwa semuanya berfungsi seperti yang diharapkan, dengan membuka domain Anda :
Kesimpulan
Dalam tutorial ini, kami telah menunjukkan kepada Anda cara membuat konfigurasi virtual host Apache. Anda dapat mengulangi langkah-langkah yang kami uraikan di atas dan membuat host virtual tambahan untuk semua domain Anda.