Pada artikel ini kita akan membahas mengenai konfigurasi VirtualHost di Red Hat Enterprise Linux 8, panduan ini bisa digunakan juga pada CentOS karena masih memiliki satu basis yang sama dengan RHEL.
Perlu diketahui, Virtualhost merupakan sebuah konfigurasi yang dimiliki web server baik apache maupun nginx untuk membuat pointing root directory web server yang awalnya berada pada /var/www/html/ menjadi lokasi direktori yang kita inginkan.
Sebelum masuk kedalam konfigurasi, pastikan kamu sudah menginstall apache. Untuk installasinya kamu bisa mengikuti panduan berikut : Panduan Installasi Apache dan PHP
Contents
Konfigurasi VirtualHost
Pertama kita akan membuat terlebih dahulu direktori yang akan kita gunakan sebagai document root web server, kita buat pada direktori /home
mkdir /home/website/
Setelah itu kita berikan hak akses pada direktori tersebut dengan user dan group dari apache.
sudo chown $USER.apache -R /home/website
Selanjutnya kita buat file konfigurasi virtualhost pada direktori httpd dengan menggunakan perintah berikut.
sudo nano /etc/httpd/conf.d/vhost.conf
Masukan script dibawah ini sebagai konfigurasi virtualhost, konfigurasi ini dibuat untung mengarahkan webserver langsung ke direktori yang sudah kita siapkan sebelumnya.
# Isi sesuai dengan direktori yang akan menjadi pointing utama
DocumentRoot /home/website/
# Script dibawah ini untuk mendaftarkan direktori diluar /var/www/html
# Jika kamu membuat document root masih didalam /var/www/html maka tidak perlu script dibawah ini.
<Directory /home/website/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
Setelah kamu menambahkan konfigurasi virtualhost, maka selanjutnya kita check apakah konfigurasinya sudah OK atau terdapat masalah.
sudo apachectl configtest
Selanjutnya kita lakukan restart pada layanan apache
sudo systemctl restart httpd.service
Konfigurasi SELinux
Konfigurasi virtualhost sudah selesai, maka selanjutnya kita masih perlu mendaftarkan direktori ke konfigurasi policy SELinux agar dapat dikenali sebagai direktori kontent http dengan perintah berikut.
sudo semanage fcontext -a -t httpd_sys_content_t "/home/website(/.*)?"
*) Keterangan
Apabila kamu mengarahkan document root didalam /var/www/html maka kamu tidak memerlukan konfigurasi diatas dan selanjutnya.
Apply konfigurasi SElinux yang sudah dibuat tadi dengan menggunakan perintah dibawah.
sudo restorecon -Rv /home/website/
Pastikan policy yang kita buat sudah tersimpan dengan menggunakan perintah berikut.
sudo semanage fcontext -l | grep /home/website
Pengujian
Sebagai pengujian, kamu bisa langsung mengisikan konten web di direktori yang sudah kita buat tadi setelah itu akses alamat ip server pada browser. Pastikan apakah kontent yang muncul sudah sesuai dengan yang kita buat.
Konfigurasi Virtualhost Alias
Pada beberapa kasus, ada yang disebut dengan Virtualhost Alias. Konfigurasi ini berfungsi untuk membuat pointing berupa link tambahan pada alamat server. Sebagai Contoh
# Alamat Server yang biasa kita akses tanpa alias
warriornux.com atau 192.168.23.21 -> langsung mengakses ke document root
# Alamat Server yang di diberikan Alias
warriornux.com/author atau 192.168.23.21/atuthor -> akan diarahkan ke direktori tertentu
Pada kasus ini kita bisa mengarahkan Alias ini keluar dari document root yang sudah kita buat atau masih didalam directory yang sama. Dalam case ini kita buat alias pada document root yang sama, kamu bisa ubah config vhost.conf seperti dibawah ini.
# Isi sesuai dengan direktori yang akan menjadi pointing utama
DocumentRoot /home/website/
# Ini adalah alias yang dimaksud "/aplikasi" adalah alamat alias dan "/home/website/aplikasi" adalah pointingnya.
Alias /aplikasi /home/website/aplikasi
<Directory /home/website/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
Setelah kamu ubah, kamu coba buat directory dan isikan konten pada direktori apliasi tersebut lalu restart apache.
sudo systemctl restart httpd.service
Selanjutnya kamu coba akses pada browser dengan menambahkan alamat alias pada ip address atau domain server yang kamu miliki.
Studie Case
- Apa yang akan harus kamu lakukan apabila alias yang kamu buat mengarah ke luar dari document root virtualhost ?
- Apa saja yang harus kamu konfigurasi dengan studi case ini ?
Penutup
Sekian pembahasan dari panduan konfigurasi virtualhost pada sistem operasi RHEL 8, pada kasus ini kita perlu melakukan konfigurai pada apache dan SELinux untuk bisa membaca document root baru yang kita arahkan. Pastikan setiap konfigurasi dijalankan bertahap agar kamu bisa lebih paham. Selamat Mencoba !
Referensi
- https://computingforgeeks.com/install-and-configure-phpmyadmin-on-rhel-8/?expand_article=1