Virtual Host adalah arahan konfigurasi Apache yang memungkinkan Anda menjalankan lebih dari satu situs web di satu server. Dengan Virtual Host, Anda dapat menentukan root dokumen situs (direktori yang berisi file situs web), membuat kebijakan keamanan terpisah untuk setiap situs, menggunakan sertifikat SSL yang berbeda, dan banyak lagi.
Artikel ini menjelaskan cara menyiapkan Apache Virtual Host di Ubuntu 20.04.
Prasyarat #
Pastikan Anda telah memenuhi persyaratan berikut sebelum melanjutkan dengan panduan:
- Satu atau beberapa nama domain yang menunjuk ke IP server publik Anda.
- Apache terinstal di sistem Ubuntu Anda.
- Anda masuk sebagai root atau pengguna dengan hak istimewa sudo.
Membuat Struktur Direktori #
Akar dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan disajikan sebagai tanggapan atas permintaan. Anda dapat mengatur root dokumen ke lokasi mana pun yang Anda inginkan, dalam contoh ini, kami akan menggunakan struktur direktori berikut:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Setiap domain yang dihosting di server akan memiliki root dokumen yang disetel ke /var/www/<domain_name>/public_html
.
Mulailah dengan membuat direktori root untuk domain:
sudo mkdir -p /var/www/domain1.com/public_html
Kami juga akan membuat index.html
file di dalam direktori root dokumen domain yang akan ditampilkan saat Anda mengunjungi domain di browser Anda:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to domain1.com</title>
</head>
<body>
<h1>Success! domain1.com home page!</h1>
</body>
</html>
Karena perintah di atas dijalankan sebagai pengguna sudo, file dan direktori yang baru dibuat dimiliki oleh root. Untuk menghindari masalah izin, ubah kepemilikan direktori root dokumen domain dan semua file dalam direktori menjadi pengguna apache (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Membuat Host Virtual #
Pada sistem Ubuntu, file konfigurasi Apache Virtual Hosts terletak di /etc/apache2/sites-available
direktori. Mereka dapat diaktifkan dengan membuat tautan simbolis ke /etc/apache2/sites-enabled
direktori, yang dibaca Apache selama startup.
Buka editor teks pilihan Anda dan buat file konfigurasi Virtual Host dasar berikut:
/etc/apache2/sites-available/domain1.com.conf<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/public_html
<Directory /var/www/domain1.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>
ServerName
:Domain yang harus cocok untuk konfigurasi host virtual ini. Ini harus menjadi nama domain Anda.ServerAlias
:Semua domain atau subdomain lain yang harus cocok dengan host virtual ini sepertiwww
subdomain.DocumentRoot
:Direktori tempat Apache akan melayani file domain.Options
:Direktif ini mengontrol fitur server mana yang tersedia di direktori tertentu.-Indexes
:Mencegah daftar direktori.FollowSymLinks
:Saat opsi ini diaktifkan, Apache akan mengikuti tautan simbolis.
AllowOverride
:Menentukan arahan mana yang dideklarasikan dalam.htaccess
file dapat menimpa arahan konfigurasi.ErrorLog
,CustomLog
:Menentukan lokasi untuk file log.
Anda dapat memberi nama file konfigurasi sesuka Anda, tetapi praktik terbaiknya adalah menggunakan nama domain sebagai nama file konfigurasi virtual host.
Untuk mengaktifkan file host virtual baru, gunakan a2ensite
skrip pembantu yang membuat tautan simbolis dari file host virtual ke sites-enabled
direktori:
sudo a2ensite domain1.com
Opsi lainnya adalah membuat symlink secara manual seperti yang ditunjukkan di bawah ini:
sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/
Setelah selesai, uji konfigurasi untuk menemukan kesalahan sintaks dengan:
sudo apachectl configtest
Jika tidak ada kesalahan, Anda akan melihat output berikut:
Syntax OK
Mulai ulang layanan Apache agar perubahan diterapkan:
sudo systemctl restart apache2
Terakhir untuk memverifikasi bahwa semuanya berfungsi seperti yang diharapkan, buka http://domain1.com
di browser Anda, dan Anda akan melihat konten index.html
halaman: