Cara Konfigurasi Virtual Host di AlmaLinux

Terakhir diupdate: 16 Mei 2025

Hai, Sobat Jagoan!  Untuk meng-host situs web pada server kamu sendiri, kamu harus menginstal sebuah server web. Di antara yang tersedia, salah satu yang paling populer saat ini adalah Apache, kompatibel dengan sistem Unix dan Windows dan menampilkan integrasi yang sangat baik dengan perangkat lunak lain dan dukungan media yang baik.

Tetapi bagaimana jika kamu perlu meng-host beberapa situs web pada server yang sama, dengan hanya memiliki satu alamat IP publik? Dalam hal ini, kamu perlu mengonfigurasi Virtual Host pada Apache untuk mengaitkan domain yang berbeda ke alamat IP yang sama.

Dalam artikel ini akan membahas cara mengonfigurasi Virtual Host untuk mengelola lebih banyak domain pada server web yang sama. Jadi, setiap domain dapat memiliki konfigurasi, teknologi, dan versi aplikasi yang berbeda.

Prasyarat

  1. Menginstal apache sebagai web server, kalau belum ikuti panduan Cara Instal Web Server Apache di AlmaLinux
  2. Memilki akses non-root user dengan sudo privilege
  3. Mempunyai domain yang sudah di arahkan ke VPS (opsional). Panduan mengarahkan domain ke VPS bisa diakses pada Cara mengarahkan domain ke vps

Step 1: Buat Koneksi SSH VPS

Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.

Detail informasi awal layanan kamu bisa diakses pada Informasi Awal Layanan VM.

Step 2: Konfigurasi Virtual Host

Pastikan web server kamu sudah aktif dan berjalan ya, Sob. Kalau belum jalankan:

				
					sudo systemctl start httpd
				
			

Kemudian, pastikan statusnya berjalan “active (running)”.

				
					sudo systemctl status httpd
				
			

Output:

				
					httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: di>
     Active: active (running) since Wed 2025-05-14 04:13:36 UTC; 1min 4s ago
       Docs: man:httpd.service(8)
   Main PID: 45945 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes>
      Tasks: 177 (limit: 4033)
     Memory: 38.1M
        CPU: 140ms
     CGroup: /system.slice/httpd.service
             ├─45945 /usr/sbin/httpd -DFOREGROUND
             ├─45946 /usr/sbin/httpd -DFOREGROUND
             ├─45947 /usr/sbin/httpd -DFOREGROUND
             ├─45948 /usr/sbin/httpd -DFOREGROUND
             └─45949 /usr/sbin/httpd -DFOREGROUND

May 14 04:13:36 tutorial.my.id systemd[1]: Starting The Apache HTTP Server>
May 14 04:13:36 tutorial.my.id httpd[45945]: Server configured, listen>
May 14 04:13:36 tutorial.my.id systemd[1]: Started The Apache HTTP Server>
				
			

Ketika pertama kali kamu menginstal Apache di AlmaLinux, ia otomatis menggunakan direktori /var/www/html sebgai lokasi web kamu. Tapi, Apache juga memungkinkan untuk mengelola banyak situs web atau domain berbeda dengan konfigurasi masing-masing. Kalau situs yang kamu kelola ada banyak, sebaiknya kamu tidak lagi menyimpan konfigurasinya di /var/www/html, kamu bisa gunakan virtual host supaya satu server bisa menjalankan banyak situs secara terpisah dan terorganisir. Untuk memudahkan manajemen dan menjaga keteraturan, bedakan folder HTML dan log. Direktori HTML berisi file yang akan diakses user lewat browser. Sedangkan, log digunakan Apache untuk mencatat akses dan error, berguna untuk debuggind dan keamanan.

Mulailah dengan membuat subdirektori di domain, biasanya bernama html.

				
					sudo mkdir -p /var/www/domainkamu.com/html
				
			

Lalu, buat subdirektori untuk menyimpan log file.

				
					sudo mkdir -p /var/www/domainkamu.com/log
				
			

Selanjutnya beri hak milik folder HTML ke user supaya bisa diedit tanpa root.

				
					sudo chown -R $USER:$USER /var/www/domainkamu.com/html
				
			

Dan atur izin akses (permissions) pada folder /var/www dan seluruh isinya.

				
					sudo chmod -R 755 /var/www
				
			

Berikutnya, buat halaman HTML sederhana (kamu bisa pakai command nano atau vi)

				
					sudo vi /var/www/domainkamu.com/html/index.html
				
			

Isikan baris kode HTML berikut ini.

<html>
<head>
<title>Example</title>
</head>
<body>
<h1>This is an html page</h1>
</body>
</html>

Kalau kamu pilih menggunakan vi, tekan i untuk masuk INSERT mode. Kemudian, paste kode HTML di atas dan simpan perubahan. Kalau pakai nano Ctrl+X, Y lalu Enter. Kalau vi, tekan Esc ketik :wq lalu Enter.

Setelah folder situs dan halaman index.html dibuat, sekarang giliran membuat virtual host. Buat folder bernama sites-available untuk menyimpan konfigurasi virtual host. Buat juga folder sites-enabled untuk menentukan situs mana yang digunakan atau diaktifkan di Apache (file ini biasanya berupa symlink dari sites-available).

				
					sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
				
			

Kemudian, jalankan command berikut supaya Apache bisa membaca setting konfigurasinya.

				
					sudo vi /etc/httpd/conf/httpd.conf
				
			

Tekan G (untuk masuk ke baris paling bawah) lalu i untuk masuk di INSERT mode dan tambahkan baris berikut di baris akhir file.

				
					IncludeOptional sites-enabled/*.conf
				
			

Simpan dan keluar dari editor.                 

Sekarang buat konfigurasi virtual host untuk situs kamu.

				
					sudo vi /etc/httpd/sites-available/domainkamu.com.conf
				
			

Isi baris kode berikut di dalamnya.

				
					<VirtualHost *:80>
 ServerName www.domainkamu.com
 ServerAlias domainkamu.com
 DocumentRoot /var/www/domainkamu.com/html
 ErrorLog /var/www/domainkamu.com/log/error.log
 CustomLog /var/www/domainkamu.com/log/requests.log combined
</VirtualHost>
				
			

Penjelasan:

  • <VirtualHost *:80> : Konfigurasi ini berlaku untuk koneksi HTTP di port 80.
  • ServerName : Domain utama yang digunakan.
  • ServerAlias : Alias tambahan (bisa akses tanpa www).
  • DocumentRoot : Folder tempat file HTML berada.
  • ErrorLog : Lokasi file log error.
  • CustomLog : Lokasi file log akses (permintaan HTTP).

Kemudian, buat symlink (shortcut) dari sites-available ke sites-enabled. Dengan ini, situs akan diaktifkan dan dikenali Apache saat startup.

				
					sudo ln -s /etc/httpd/sites-available/domainkamu.com.conf /etc/httpd/sites-enabled/domainkamu.com.conf
				
			

Sampai di sini, proses virtual host sudah selesai. Tapi, kamu masih perlu memeriksa dan menyesuaikan pengaturan SELinux kalau SELinux belum aktif supaya situs bisa diakses.

Step 3: Konfigurasi SELinux Permissions untuk Virtual Host

SELinux merupakan modul keamanan bawaan kernel Linux . Di AlmaLinux 9, sudah dikonfigurasi agar bisa berkerja sama dengan konfigurasi Apache. Karena kamu sudah membuat file konfigurasi untuk Apache (seperti virtual host), maka kamu perlu mengecek ulang konfigurasi keamanan SELinux, agar file bisa dibaca dan dijalankan oleh Apache.

Memberi Izin Secara Umum (Universal Privileges)

Dengan cara ini, semua proses Apache akan diperlakukan sama oleh SELinux, tanpa melihat direktori atau file tertentu. Ini cara termudah dan cepat.

				
					sudo setsebool -P httpd_unified 1
				
			

Penjelasan:

  • setsebool = perintah untuk mengubah nilai boolean di SELinux.
  • -P = menyimpan perubahan secara permanen (tidak hilang setelah restart).
  • httpd_unified = nama boolean SELinux yang mengatur apakah Apache bisa mengakses semua file log/error/file miliknya secara global.
  • 1 = artinya aktifkan fitur ini (aktifkan hak akses universal Apache).

Sebenarnya, kamu juga bisa membuat izin spesifik untuk direktori Apache, misalnya hanya untuk folder log, tapi hal ini lebih rumit dan memakan waktu.

Step 4: Menguji Virtual Host

Setelah semua konfigurasi dilakukan, kamu bisa menguji virtual host apakah sudah berjalan dengan benar. Tapi, restart dulu web server Apachenya agar perubahan konfigurasi virtual host diterapkan.

				
					sudo systemctl restart httpd
				
			

Kemudian periksa log Apache.

				
					ls -lZ /var/www/domainkamu.com/log
				
			

Jika file error.log dan requests.log muncul, artinya konfigurasi log pada virtual host kamu berhasil.

1-periksa-log-apache-konfigurasi-virtual-host-almalinux

Sekarang, coba buka domain kamu (atau alamat IP server jika belum punya domain) di browser. Jika halaman HTML yang kamu buat tampil, maka virtual host berhasil dikonfigurasi dan berjalan.

2-buka-situs-web-konfigurasi-virtual-host-almalinux

Dengan mengikuti artikel ini, kamu hanya cukup meng-online-kan situs dalam satu web saja sehingga lebih efisien dan terstruktur. Pastikan untuk menguji setiap konfigurasi sebelum digunakan di lingkungan produksi. Untuk pengelolaan lebih lanjut, pertimbangkan menambahkan dukungan SSL/TLS dan konfigurasi log masing-masing situs.

Kalau ada yang masih bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!

Related Posts
Cara Instal Web Server Nginx di Almalinux

Halo, Sob! AlmaLinux merupakan sebuah sistem operasi distribusi berbasis Red Hat Enterprise Linux (RHEL) yang stabil dan banyak digunakan di Read more

Cara Instal Web Server Apache di AlmaLinux

Hai, Sob! Apache HTTP Server (httpd) merupakan salah satu web server tertua dan paling banyak digunakan di dunia, terkenal karena Read more

Cara Install MySQL di AlmaLinux

Hai, Sob! Server database adalah inti dari banyak aplikasi web di Internet. Efisiensi sumber daya dan kinerjanya yang luar biasa Read more

Cara Install phpMyAdmin di AlmaLinux

Hai, Sob! PHPMyAdmin adalah sebuah aplikasi web berbasis PHP yang digunakan untuk mengelola basis data MySQL atau MariaDB melalui antarmuka Read more

Scroll To Top