Syslab.id – Tutorial kali ini kami akan membahas tentang apache web server di Ubuntu 22.04 LTS
Apache adalah web server yang dapat dijalankan di berbagai sistem operasi seperti Unix, BSD, Linux, Windows, dan Novell Netware. Server ini bertugas melayani fasilitas web menggunakan protokol HTTP atau HTTPS. Apache bersifat open-source, artinya dapat digunakan secara bebas oleh siapa saja. Web server Apache bekerja ketika pengguna meminta halaman melalui protokol HTTP atau HTTPS. Server ini akan memproses permintaan tersebut dan menampilkan halaman yang diminta.
Di Ubuntu atau Debian, paket atau service apache disebut dengan apache2, berbeda dengan sistem operasi Linux lain seperti RPM based (AlmaLinux, RockyLinux, Red Hat) dimana service apache disebut dengan penamaan HTTPD.
Secara default di Ubuntu untuk repositori Apache sudah tersedia, dengan demikian Anda dapat melakukan instalasi Apache di Ubuntu Server dengan mudah. Jalankan perintah berikut, untuk melakukan instalasi apache
ubuntu@syslab:~$ sudo -i
root@syslab:~#
root@syslab:~# apt update
root@syslab:~# apt install apache2
Sebelumnya kita sudah berhasil melakukan instalasi Apache2 di Ubuntu, selanjutnya kita akan belajar bagaimana cara manajemen apache menggunakan systemd sebagai berikut:
Untuk melakukan start, stop, enable dan cek status apache service gunakan perintah berikut
root@syslab:~# systemctl start apache2
root@syslab:~# systemctl restart apache2
root@syslab:~# systemctl enable apache2
root@syslab:~# systemctl stop apache2
root@syslab:~# systemctl reload apache2
Untuk hasil output sample nya seperti gambar dibawah ini
Seperti gambar diatas saat ini web server apache sudah running dan untuk melihat status port yang digunakan bisa menggunakan perintah netstat seperti berikut dan silahkan akses IP server Anda di browser, maka akan nampak default page apache web server.
root@syslab:~# netstat -tulpn |grep apache
Virtual Host di Apache digunakan untuk menghosting beberapa website atau domain pada satu server. Jika Anda memiliki satu domain utama dan beberapa subdomain, Anda dapat mengonfigurasi masing-masing dengan Virtual Host terpisah.
Sebelum membuat Virtual Host, siapkan direktori untuk proyek web Anda. Secara default, direktori ini berada di /var/www/html/namadomain
. Berikut adalah langkah untuk membuat direktori dan file sederhana:
root@syslab:~# mkdir -p /var/www/html/apriori.my.id/public
root@syslab:~# mkdir -p /var/www/html/apriori.my.id/logs
root@syslab:~# vim /var/www/html/apriori.my.id/public/index.html
Isi file index.html
untuk pengujian sederhana:
<!doctype html>
<html>
<body>
<h1>Hello, World!</h1>
<p>This is an example website running on the Apache HTTP Web Server.</p>
</body>
</html>
File konfigurasi Virtual Host Apache biasanya terletak di /etc/apache2/sites-available/
(untuk Ubuntu/Debian). Buat file konfigurasi baru untuk domain Anda:
root@syslab:~# cd /etc/apache2/sites-available/
root@syslab:/etc/apache2/sites-available# vim apriori.my.id.conf
Berikut contoh isi file konfigurasi untuk apriori.my.id
:
<VirtualHost *:80>
ServerAdmin me@apriori.my.id
ServerName apriori.my.id
ServerAlias www.apriori.my.id
DocumentRoot /var/www/html/apriori.my.id/public/
ErrorLog /var/www/html/apriori.my.id/logs/error.log
CustomLog /var/www/html/apriori.my.id/logs/access.log combined
</VirtualHost>
Setelah membuat file konfigurasi, aktifkan Virtual Host dan nonaktifkan konfigurasi default Apache:
Aktifkan Virtual Host:
root@syslab:/etc/apache2/sites-available# a2ensite apriori.my.id
Nonaktifkan konfigurasi default:
root@syslab:/etc/apache2/sites-available# a2dissite 000-default.conf
Kemudian, Restart Apache
root@syslab:/etc/apache2/sites-available# systemctl reload apache2
Sebelum mengakses situs, pastikan konfigurasi Apache tidak memiliki kesalahan. Gunakan perintah berikut untuk test nya:
root@syslab:/etc/apache2/sites-available# apachectl configtest
Syntax OK
root@syslab:/etc/apache2/sites-available#
Jika tidak ada kesalahan, restart layanan Apache:
root@syslab:/etc/apache2/sites-available# systemctl restart apache2
Pastikan layanan Apache berjalan dengan baik:
root@syslab:/etc/apache2/sites-available# systemctl status apache2
Setelah konfigurasi selesai, verifikasi akses melalui browser. Ketikkan http://apriori.my.id
di browser Anda. Jika domain belum mengarah ke server, Anda dapat menggunakan IP Address server disertai path domain.
Selain itu, Anda dapat menguji akses menggunakan perintah curl
:
Nurs-MacBook-Air :: ~ » curl -I apriori.my.id
HTTP/1.1 200 OK
Date: Mon, 25 Nov 2024 14:58:10 GMT
Server: Apache/2.4.52 (Ubuntu)
Last-Modified: Mon, 25 Nov 2024 14:38:53 GMT
ETag: "96-627bdb1121b40"
Accept-Ranges: bytes
Content-Length: 150
Vary: Accept-Encoding
Content-Type: text/html
Nurs-MacBook-Air :: ~ »
Tahapan selanjutnya yaitu memasang SSL pada domain apriori.my.id, pada tutorial kali ini kami sudah mempunyai SSL nya. Jika belum Anda bisa menggunakan SSL Free dari Letsencrpt.
Buka file virtual host apache sebelumnya dan ubah konfigurasi nya sebagai berikut
root@syslab:/etc/apache2/sites-available# vim apriori.my.id.conf
Berikut contoh konfigurasi virtual host untuk SSL di apache
root@syslab:/etc/apache2/sites-available# cat apriori.my.id.conf
<VirtualHost *:443>
ServerAdmin me@apriori.my.id
ServerName apriori.my.id
ServerAlias www.apriori.my.id
DocumentRoot /var/www/html/apriori.my.id/public/
ErrorLog /var/www/html/apriori.my.id/logs/error.log
CustomLog /var/www/html/apriori.my.id/logs/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/fullchain.pem
SSLCertificateKeyFile /etc/ssl/privkey.pem
SSLCertificateChainFile /etc/ssl/chain.pem
<Directory /var/www/html/apriori.my.id/public/>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
root@syslab:/etc/apache2/sites-available#
Jika sudah selanjutnya mengaktifkan module SSL di apache dengan cara sebagai berikut
root@syslab:/etc/apache2/sites-available# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2
root@syslab:/etc/apache2/sites-available# systemctl restart apache2
root@syslab:/etc/apache2/sites-available#
root@syslab:/etc/apache2/sites-available# systemctl status apache2
Jika sudah pastikan untuk default apache sudah di disable, jika belum Anda bisa mengikut command dibwah ini
root@syslab:/etc/apache2/sites-available# a2dissite 000-default.conf
Site 000-default already disabled
root@syslab:/etc/apache2/sites-available# a2dissite default-ssl.conf
Site default-ssl disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
root@syslab:/etc/apache2/sites-available# systemctl reload apache2
root@syslab:/etc/apache2/sites-available#
Selanjutnya Anda dapat memastikan kembali untuk config virtualhost domain apriori sudah enable
root@syslab:/etc/apache2/sites-available# a2ensite apriori.my.id
Enabling site apriori.my.id.
To activate the new configuration, you need to run:
systemctl reload apache2
root@syslab:/etc/apache2/sites-available#
root@syslab:/etc/apache2/sites-available# systemctl reload apache2
root@syslab:/etc/apache2/sites-available#
Setelah pemasangan SSL mari kita verifikasi akses menggunakan protokol HTTPS dan pastikan domain dapat diakses menggunakan HTTPS seperti gambar dibawah
Sampai disini Anda sudah bisa menggunakan Web Server Apache di Ubuntu 22.04 LTS
Selamat mencoba 🔥