Framework & Development

Cara Instalasi LAMP Stack di Ubuntu 24.04 LTS

Cara Instalasi LAMP Stack di Ubuntu 24.04 LTS
Daftar Isi

LAMP Stack (Linux, Apache, MySQL, PHP) adalah kombinasi software yang paling umum dipakai untuk menjalankan aplikasi web berbasis PHP, mulai dari CMS seperti WordPress sampai aplikasi custom. Panduan ini menjelaskan langkah instalasi LAMP Stack di Ubuntu 24.04 LTS, mulai dari update sistem sampai pengujian akhir, menggunakan paket qVM-2. Sebagai studi kasus, panduan ini juga mencakup deploy landing page (kombinasi PHP dan HTML), instalasi phpMyAdmin untuk manajemen database melalui browser, dan pemasangan SSL gratis menggunakan Let's Encrypt.

Pengenalan

LAMP Stack terdiri dari empat komponen utama: Linux sebagai sistem operasi, Apache sebagai web server, MySQL (atau MariaDB) sebagai database, dan PHP sebagai bahasa pemrograman. Kombinasi ini sudah dipakai bertahun-tahun karena stabil, dokumentasinya banyak, dan kompatibel dengan mayoritas aplikasi open source berbasis PHP.

Ubuntu 24.04 LTS dipilih sebagai basis OS karena mendapat dukungan resmi (security update dan bug fix) sampai April 2029, sehingga cocok dipakai untuk server yang butuh masa pakai jangka panjang tanpa perlu upgrade OS terlalu sering. Panduan ini ditujukan untuk VPS atau qVM yang baru saja di-deploy (fresh install), belum ada konfigurasi tambahan apa pun di atasnya.

Persyaratan

Sebelum mulai instalasi, pastikan hal-hal berikut sudah terpenuhi:

Software

  • Ubuntu 24.04 LTS, kondisi fresh install (belum ada web server/database lain yang bentrok port)
  • Akses root atau user dengan hak sudo
  • Koneksi ke internet untuk mengunduh paket dari repository Ubuntu
  • SSH client di sisi lokal untuk remote ke qVM

Hardware / Spesifikasi VPS qVM

Panduan ini menggunakan paket qVM-2, dengan spesifikasi:

  • vCPU: 1 core
  • RAM: 2 GiB
  • Storage: 50 GiB
  • Domain yang sudah diarahkan (A record) ke IP Publik qVM yang akan di gunakan untuk konfigurasi virtual host dan pembuatan sertikat SSL

Spesifikasi ini sudah cukup untuk menjalankan Apache, MySQL, PHP, dan phpMyAdmin sekaligus untuk landing page skala kecil sampai menengah. Kalau traffic mulai naik signifikan atau ukuran database membesar, tinggal upgrade ke paket qVM di atasnya tanpa perlu instalasi ulang.

Tahapan

1. Update dan Upgrade OS Ubuntu 24.04 LTS

Lakukan update dan upgrade pada sistem operasi Ubuntu 24.04 LTS terlebih dahulu, sebelum memulai instalasi service lainnya

bash
apt update && sudo apt upgrade -y

SCR-20260815-pzxt

2. Instalasi Apache2

Apache digunakan sebagai web server yang menerima request HTTP/HTTPS dan meneruskannya ke aplikasi.

bash
apt install apache2 -y

SCR-20260815-qayg

Setelah itu, cek status service untuk memastikan Apache sudah berjalan:

bash
systemctl status apache2

SCR-20260815-qbnf

Kalau statusnya active (running), artinya Apache sudah bisa digunakan. Buka http://<IP-qVM> di browser, akan muncul halaman default Apache2 Ubuntu.

SCR-20260815-qcea

Untuk dapat otomatis running ketika qVM mengalami reboot, Anda dapat set enable pada Apache2 service, menggunakan perintah

bash
systemctl enable apache2

SCR-20260815-qbzs

3. Instalasi MySQL Server

MySQL digunakan untuk menyimpan seluruh data aplikasi dalam bentuk database relasional. Untuk melakukan instalasi MySQL gunakan perintah berikut:

bash
apt install mysql-server -y

Kalau lebih memilih MariaDB (drop-in replacement MySQL, sering dipakai karena tetap open source penuh), ganti perintah di atas dengan:

bash
apt install mariadb-server -y

SCR-20260815-qdrw

Anda dapat memilih salah satu dan tidak di sarankan untuk running bersama karena service MySQL dan MariaDB sama-sama berjalan di port 3306 secara default.

4. Amankan Instalasi Database

Jalankan script keamanan bawaan untuk mengatur password root, menghapus user anonymous, dan menonaktifkan remote login untuk root.

bash
mysql_secure_installation

Ikuti prompt yang muncul: set password root, jawab Y untuk menghapus test database, menghapus akses remote root, dan reload privilege table.

SCR-20260815-qepf

Pastikan MariaDB sudah running dan set enable supaya otomatis running apabila qVM mengalami reboot

SCR-20260815-qfem

5. Instalasi PHP dan Modul/Ekstensi Pendukung

Ubuntu 24.04 LTS secara default hanya menyediakan satu versi PHP di repository resminya. Supaya VPS qVM bisa multi-PHP — pasang beberapa versi PHP sekaligus dan dapat menyesuaikan kebutuhan dari aplikasi Anda. Tambahkan repository PPA Ondřej Surý, sumber paket PHP yang paling umum digunakan di Ubuntu.

bash
apt install software-properties-common ca-certificates apt-transport-https lsb-release -y

SCR-20260815-qjak

bash
add-apt-repository ppa:ondrej/php -y
apt update -y

SCR-20260815-qjls

Setelah repository aktif, instal PHP beserta modul/ekstensi yang dibutuhkan Apache dan MySQL agar bisa saling terhubung. Paket dari PPA ini pakai penamaan per versi (php8.3, php8.1, dan seterusnya), jadi versi lain bisa ditambahkan berdampingan kapan saja tanpa perlu uninstall versi yang sudah terpasang.

Contoh instalasi PHP 8.3

bash
apt install php8.3 libapache2-mod-php8.3 php8.3-mysql php8.3-cli php8.3-curl php8.3-xml php8.3-mbstring php8.3-zip -y

SCR-20260815-qjui

Contoh instalasi PHP 8.4

bash
apt install php8.4 libapache2-mod-php8.4 php8.4-mysql php8.4-cli php8.4-curl php8.4-xml php8.4-mbstring php8.4-zip -y

SCR-20260815-qjyb

Ekstensi PHP di atas sudah mencakup kebutuhan dasar mayoritas aplikasi PHP modern (koneksi database, proses XML, string multibyte, dan lain-lain). Tambahkan ekstensi lain sesuai kebutuhan aplikasi yang akan di-deploy. Jika Anda butuh versi PHP lain berjalan berdampingan — misalnya PHP 8.1 untuk aplikasi lama yang belum kompatibel dengan versi terbaru — tinggal instal dengan pola nama paket yang sama:

bash
apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-cli -y

SCR-20260815-qkck

Apache hanya bisa mengaktifkan satu modul PHP dalam satu waktu. Untuk pindah versi yang aktif di Apache:

bash
a2dismod php8.1
a2enmod php8.3
systemctl restart apache2

SCR-20260815-qksq

Sementara untuk PHP CLI (dipanggil lewat terminal, terpisah dari modul Apache), atur versi default dengan:

bash
update-alternatives --config php

SCR-20260815-qlag

6. Konfigurasi Apache Untuk File PHP

Secara default Apache akan mendahulukan index.html dibanding index.php. Urutan ini perlu dibalik supaya aplikasi PHP bisa langsung terbaca.

bash
vim /etc/apache2/mods-enabled/dir.conf

Ubah urutan DirectoryIndex menjadi:

text
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

SCR-20260815-qlmo

Simpan file, lalu restart Apache agar perubahan diterapkan:

bash
sudo systemctl restart apache2

7. Uji Instalasi PHP

Buat file test untuk memastikan PHP sudah terhubung dengan Apache.

bash
vim /var/www/html/info.php

Isi dengan:

php
<?php
phpinfo();
?>

SCR-20260815-qlwc

Akses http://<IP-qVM>/info.php dari browser. Kalau muncul halaman informasi konfigurasi PHP, artinya seluruh stack (Apache, PHP, dan koneksi ke MySQL) sudah berjalan dengan benar.

SCR-20260815-qmcf

File diatas hanya sebagai uji coba jika sudah berhasil Anda dapat menghapus file info.php tersebut karena file tersebut berisi informasi konfigurasi server yang sensitif kalau diakses publik.

bash
rm /var/www/html/info.php

8. Instalasi phpMyAdmin

phpMyAdmin dipakai untuk mengelola database MySQL lewat browser, tanpa harus selalu masuk lewat command line.

bash
apt install phpmyadmin -y

SCR-20260815-qmvf

Saat instalasi berjalan akan muncul beberapa prompt konfigurasi:

  • Pilih apache2 dengan tombol spasi, lalu Tab → Enter, supaya konfigurasi web server dibuat otomatis
  • Pilih Yes untuk mengonfigurasi database lewat dbconfig-common
  • Masukkan password untuk user aplikasi phpMyAdmin saat diminta

SCR-20260815-qmtb SCR-20260815-qmxk SCR-20260815-qnae SCR-20260815-qncd

Akses lewat http://<IP-qVM>/phpmyadmin, login pakai user root MySQL beserta password yang sudah diset di tahap 4.

SCR-20260815-qnyx SCR-20260815-qohe

9. Studi Kasus: Deploy Landing Page (PHP + HTML)

Sebagai contoh implementasi, kami akan deploy landing page sederhana yang menggabungkan markup HTML statis dengan satu bagian PHP dinamis, memakai domain lamp.sequel.web.id yang sudah diarahkan (A record) ke IP qVM-2. Anda dapat mengarahkan A record pada subdomain tersebut di DNS Management domain Anda contoh seperti gambar di bawah

SCR-20260815-qpiy

Buat direktori project dan set kepemilikannya:

bash
mkdir -p /var/www/landingpage
chown -R $USER:$USER /var/www/landingpage

Buat file index.php sebagai halaman utama:

bash
vim /var/www/landingpage/index.php
php
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Landing Page</title>
</head>
<body>
    <h1>Selamat Datang</h1>
    <p>Landing page ini berjalan di atas LAMP Stack, paket qVM-2.</p>
    <footer>
        <p>&copy; <?php echo date("Y"); ?> — Semua hak cipta dilindungi.</p>
    </footer>
</body>
</html>

SCR-20260815-qpvw

Bagian HTML tetap statis seperti biasa, sementara tag <?php echo date("Y"); ?> membuat tahun di footer terupdate otomatis tanpa perlu diedit manual tiap tahun — contoh sederhana kenapa PHP dan HTML sering digabung dalam satu file.

Buat virtual host baru supaya domain diarahkan ke folder ini, bukan ke /var/www/html default:

bash
vim /etc/apache2/sites-available/lamp.sequel.web.id.conf

Contoh virtual host yang dapat Anda gunakan sebagai berikut:

text
<VirtualHost *:80>
    ServerName lamp.sequel.web.id
    DocumentRoot /var/www/landingpage

    <Directory /var/www/landingpage>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/landingpage_error.log
    CustomLog ${APACHE_LOG_DIR}/landingpage_access.log combined
</VirtualHost>

SCR-20260815-qqkm

Aktifkan virtual host, nonaktifkan default site, lalu reload Apache:

bash
a2ensite lamp.sequel.web.id.conf
a2dissite 000-default.conf
systemctl reload apache2

SCR-20260815-qqyh

Akses http://lamp.sequel.web.id - landing page sudah bisa dibuka lewat domain sendiri.

SCR-20260815-qrfq

10. Konfigurasi SSL dengan Let's Encrypt

Untuk mendapat gratis SSL Anda dapat menggunakan certbot, silakan install terlebih dahulu beserta plugin Apache-nya untuk otomatisasi penerbitan dan pemasangan SSL.

bash
apt install certbot python3-certbot-apache -y

SCR-20260815-qrqh

Jalankan Certbot dan arahkan ke domain yang dipakai:

bash
certbot --apache -d lamp.sequel.web.id

Certbot akan minta email untuk notifikasi perpanjangan, konfirmasi persetujuan term of service, lalu menawarkan opsi redirect otomatis dari HTTP ke HTTPS — pilih opsi redirect supaya semua trafik lewat HTTPS.

SCR-20260815-qscb

Sertifikat Let's Encrypt berlaku 90 hari dan diperpanjang otomatis lewat systemd timer bawaan Certbot. Cek dulu apakah mekanisme renewal-nya jalan normal:

bash
certbot renew --dry-run

SCR-20260815-qsmz

Setelah tahap ini, https://lamp.sequel.web.id sudah bisa diakses dengan koneksi terenkripsi SSL. Jalur /phpmyadmin di domain yang sama otomatis ikut ter-enkripsi juga karena mengikuti konfigurasi virtual host yang sama, yang sudah diubah Certbot.

SCR-20260815-qswf SCR-20260815-qsyo

Kesimpulan

Sampai tahap ini, VPS qVM-2 (1 core, 2 GiB RAM, 50 GiB storage) sudah punya LAMP Stack lengkap: Apache, MySQL, PHP, dan phpMyAdmin untuk manajemen database lewat browser. Studi kasus landing page (kombinasi HTML statis dan PHP dinamis) berhasil di-deploy lewat virtual host terpisah dan sudah diamankan dengan SSL gratis dari Let's Encrypt beserta redirect otomatis ke HTTPS. Setup ini sudah cukup dipakai untuk production landing page skala kecil-menengah; untuk aplikasi yang lebih besar, langkah lanjutannya adalah membuat user database khusus per aplikasi (bukan pakai root) dan menambah virtual host baru untuk tiap domain/aplikasi berikutnya.

Mulai Kelola Infrastruktur Cloud Anda

Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.

Bagikan
Apakah artikel ini membantu?