Menginstall Apache Dan membuat virtual host

Instalasi

Ubah /etc/apt/souorces.list | memastikan proses download lebih cepat

deb http://id.archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://id.archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://id.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://id.archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
apt update
apt upgrade

Install apache

apt install apache2

Install PHP

sudo apt -y install php7.4

Install extension/module

sudo apt -y install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-cli php7.4-intl imagemagick git unzip zip libgd-dev libapache2-mod-php libphp-adodb

Pengujian

Buat file pengujian PHP

nano /var/www/html/info.php

Maukkan ini kedalamnya

<?php phpinfo( ); ?>

Akses melalui web browser

http://ip-address
http://ip-address/info.php

Pastikan saat mengakses http://ip-address muncul halaman default apache, dan saat mengakses http://ip-address/info.php muncul halaman PHP info

*Catatan: Sebelum lanjut ke tahap pembuatan virtual host pastikan konfigurasi pada dns server sudah benar

Konfigurasi

Disini saya akan membuat 2 virtual host dengan virtual host ke 2 menggunakan subdomain

Virtual host 1

Membuat direktori untuk virtualhost 1

mkdir /var/www/namadomain.com

Membuat file pengujian html

nano /var/www/namadomain.com/index.html

Masukkan ini kedalamnya

virtual host namadomain.com berhasil!

Membuat file pengujian PHP, untuk memastikan php sudah berjalan

nano /var/www/namadomain.com/info.php

Masukkan ini kedalamnya

<?php phpinfo( ); ?>

Mengubah kepemilikan dan perizinan direktori

chown -R www-data:www-data /var/www/namadomain.com
chmod -R 775 namadomain.com/

Membuat file konfigurasi virtual host

cd /etc/apache2/sites-available/
nano namadomain.com.conf

Masukkan ini kedalamnya

<VirtualHost *:80>
    ServerName namadomain.com
    ServerAlias www.namadomain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/namadomain.com

    <Directory /var/www/namadomain.com>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/namadomain.com-error.log
    CustomLog ${APACHE_LOG_DIR}/namadomain.com-access.log combined
</VirtualHost>

Virtual host 2

Membuat direktori untuk virtualhost 2

mkdir /var/www/blog.namadomain.com

Membuat file pengujian html

nano /var/www/blog.namadomain.com/index.html

Masukkan ini kedalamnya

virtual host blog.namadomain.com berhasil!

Membuat file pengujian PHP, untuk memastikan php sudah berjalan

nano /var/www/namadomain.com/info.php

Masukkan ini kedalamnya

<?php phpinfo( ); ?>

Mengubah kepemilikan dan perizinan direktori

chown -R www-data:www-data /var/www/blog.namadomain.com
chmod -R 775 blog.namadomain.com/

Membuat file konfigurasi virtual host

cd /etc/apache2/sites-available/
nano blog.namadomain.com.conf

Masukkan ini kedalamnya

<VirtualHost *:80>
    ServerName blog.namadomain.com
    ServerAlias www.blog.namadomain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/blog.namadomain.com

    <Directory /var/www/namadomain.com>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/blog.namadomain.com-error.log
    CustomLog ${APACHE_LOG_DIR}/blog.namadomain.com-access.log combined
</VirtualHost>

Mengaktifkan konfigurasi

sudo a2ensite namadomain.com.conf blog.

Pastikan didalam direktori /etc/apache2/sites-enabled/ sudah terdapat file konfigurasi namadomain.com.conf

ls /etc/apache2/sites-enabled/

Jika belum ada buat symlink (symbolic link) file /etc/apache2/sites-available/namadomain.com.conf ke /etc/apache2/sites-enabled/

ln -s /etc/apache2/sites-available/namadomain.com.conf /etc/apache2/sites-enabled/

Cek syntax, apakah ada error/kesalahan penulisan

sudo apachectl configtest

Pastikan output yang keluar

Syntax OK

Restart apache

sudo systemctl restart apache2

Konfigurasi file /etc/hosts

nano /etc/hosts

masukkan ini kedalamnya, dan sesuaikan IP dengan IP yang kamu gunakan

TIDAK PERLU
127.0.0.1 localhost
127.0.0.1 nama-server
IP-ADDRESS www.namadomain.com namadomain.com

Pengujian

Akses dari web browser

namadomain.com/test.html
namadomain.com/info.php
blog.namadomain.com/test.html
blog.namadomain.com/info.php

Pastikan output yang keluar sudah sesuai

Keterangan artikel

Tested on: ubuntu 20.04
Sumber:
https://linuxize.com/post/how-to-set-up-apache-virtual-hosts-on-ubuntu-20-04/

https://lms.onnocenter.or.id/wiki/index.php/Install_WordPress_di_Ubuntu_20.04#Edit_.2Fetc.2Fapt.2Fsources.list