LAMP Stack merupakan singkatan dari Linux, Apache HTTP Server, MariaDB (atau MySQL), dan PHP, yaitu kombinasi perangkat lunak sumber terbuka yang telah lama menjadi standar untuk membangun dan menjalankan aplikasi web. LAMP banyak digunakan untuk meng-host berbagai aplikasi berbasis PHP, mulai dari website sederhana hingga sistem berskala besar seperti WordPress, Laravel, Moodle, Nextcloud, dan berbagai aplikasi bisnis lainnya.
Pada panduan ini, sistem operasi yang digunakan adalah Red Hat Enterprise Linux 10 (RHEL 10), versi terbaru dari distribusi Linux enterprise yang dikembangkan oleh Red Hat. RHEL 10 menawarkan peningkatan pada aspek keamanan, stabilitas, performa, serta dukungan teknologi modern yang menjadikannya pilihan tepat untuk lingkungan produksi, pusat data, maupun layanan cloud seperti Amazon Web Services (AWS), Microsoft Azure, dan Google Cloud Platform (GCP).
Komponen utama yang akan dikonfigurasi dalam panduan ini meliputi:
- Linux (RHEL 10) sebagai sistem operasi yang menjadi fondasi server.
- Apache HTTP Server sebagai web server yang bertugas menerima dan melayani permintaan HTTP maupun HTTPS dari pengguna.
- MariaDB sebagai sistem manajemen basis data relasional untuk menyimpan data aplikasi.
- PHP sebagai bahasa pemrograman sisi server yang memproses logika aplikasi web dan berinteraksi dengan basis data.
Selain instalasi komponen utama, panduan ini juga membahas berbagai konfigurasi pendukung yang diperlukan agar server siap digunakan di lingkungan produksi, di antaranya konfigurasi VirtualHost, SELinux, firewalld, HTTPS menggunakan Let’s Encrypt, serta praktik dasar pengamanan server. Dengan konfigurasi tersebut, server tidak hanya berfungsi dengan baik, tetapi juga memiliki tingkat keamanan yang lebih baik untuk menghadapi penggunaan di dunia nyata.
Panduan ini disusun secara bertahap mulai dari persiapan sistem, instalasi setiap komponen, konfigurasi layanan, hingga proses pengujian. Setiap langkah disertai contoh perintah yang dapat langsung dijalankan pada RHEL 10 sehingga memudahkan proses implementasi, baik bagi administrator sistem yang baru mempelajari RHEL maupun yang telah berpengalaman.
Di akhir panduan, Anda akan memiliki sebuah server LAMP yang siap digunakan untuk meng-host berbagai aplikasi web berbasis PHP dengan dukungan HTTPS, konfigurasi yang terstruktur, dan praktik terbaik yang sesuai untuk lingkungan pengembangan maupun produksi.
Berikut adalah panduan lengkap menginstal LAMP Stack (Linux, Apache, MariaDB, PHP) di Red Hat Enterprise Linux 10 (RHEL 10) menggunakan repository resmi Red Hat.
Panduan Install LAMP Stack di Red Hat Enterprise Linux 10

PREREQUISITES:
- AWS EC2 Instances dengan RHEL 10
- Hak Akses Root Penuh (sudo privileges)
- Familiar dengan Command-Line Linux, terutama DNF 5
1. Update Sistem dan Install Paket yang Dibutuhkan
Perbarui seluruh paket terlebih dahulu.
sudo dnf update -y
sudo dnf install wget nano zip unzip curl -y
sudo reboot
2. Install Apache HTTP Server
* Install Apache:
sudo dnf install httpd -y
* Aktifkan dan jalankan service:
sudo systemctl enable --now httpd
* Cek status:
systemctl status httpd
* Output harus menunjukkan:
Active: active (running)
* Izinkan Firewall
Jika firewalld aktif:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
* Test Apache
Buka browser:
http://IP_SERVER
Akan muncul halaman:
Apache HTTP Server Test Page
3. Install MariaDB
* Install database server MariaDB:
sudo dnf install mariadb-server -y
* Aktifkan service:
sudo systemctl enable --now mariadb
* Cek status:
systemctl status mariadb
* Jalankan Secure Installation
sudo mariadb-secure-installation
* Rekomendasi:
Set root password? Y Remove anonymous users? Y Disallow remote root login? Y Remove test database? Y Reload privilege tables? Y
4. Login MariaDB
sudo mariadb
atau
mariadb -u root -p
5. Membuat Database WordPress
Contoh:
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
6. Install PHP
* Install PHP beserta modul yang umum digunakan:
sudo dnf install php \ php-cli \ php-fpm \ php-mysqlnd \ php-gd \ php-mbstring \ php-xml \ php-curl \ php-zip \ php-opcache \ php-intl \ php-bcmath -y
* Cek versi:
php -v
7. Restart Apache
sudo systemctl restart httpd
8. Test PHP
* Buat file:
sudo nano /var/www/html/info.php
* Isi:
<?php phpinfo();
* Akses:
http://IP_SERVER/info.php
Jika muncul halaman PHP Info berarti PHP berhasil terpasang.
* Setelah selesai pengujian, hapus file ini karena berpotensi membocorkan informasi konfigurasi:
sudo rm /var/www/html/info.php
9. Konfigurasi SELinux
* Cek status SELinux:
getenforce
* Jika hasilnya:
Enforcing
* Izinkan Apache terhubung ke MariaDB:
sudo setsebool -P httpd_can_network_connect_db on
* Verifikasi:
getsebool httpd_can_network_connect_db
* Output harus:
httpd_can_network_connect_db --> on
Langkah ini penting untuk mencegah error seperti:
mysqli_sql_exception: Permission denied
10. Buat Direktori Website dan Install Aplikasi Web (Misal WordPress)
sudo mkdir -p /var/www/example.com/public_html
cd /var/www/example.com/public_html
* Beri Hak akses:
sudo chown -R apache:apache /var/www/example.com sudo chmod -R 755 /var/www/example.com
* Install Aplikasi Web (Misal WordPress)
wget https://wordpress.org/latest.zip
* Ekstrak:
unzip latest.zip
* Pindahkan semua isi folder wordpress ke document root public_html
mv wordpress/* /var/www/example.com/public_html
Perbaiki Hak Akses:
sudo chown -R apache:apache /var/www/example.com/public_html
11. Konfigurasi Virtual Host
* Buat Virtual Host:
HTTP Port 80:
sudo nano /etc/httpd/conf.d/example.com.conf
* Isi:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html <Directory /var/www/example.com/public_html> AllowOverride All Require all granted </Directory> ErrorLog logs/example.com-error.log CustomLog logs/example.com-access.log combined </VirtualHost>
HTTPS Port 443:
sudo nano /etc/httpd/conf.d/example.com-ssl.conf
* Isi
<VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html <Directory /var/www/example.com/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog logs/example.com-ssl-error.log CustomLog logs/example.com-ssl-access.log combined SSLEngine on SSLCertificateFile /etc/ssl/example.com/fullchain.pem SSLCertificateKeyFile /etc/ssl/example.com/privkey.pem # Konfigurasi SSL yang disarankan SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder on # Header keamanan Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" </VirtualHost>
* Install Modul SSL
sudo dnf install mod_ssl -y
* Restart Apache
sudo apachectl configtest
* Jika:
Syntax OK
* Lakukan restart:
sudo systemctl restart httpd
11. Install Modul Rewrite
* Pastikan modul sudah aktif:
httpd -M | grep rewrite
Jika muncul:
rewrite_module
berarti sudah aktif.
12. Install ACME Client dan SSL Let’s Encrypt
* Install ACME Client:
curl https://get.acme.sh | sh
* Kemudian:
source ~/.bashrc
Acme.sh sekarang menggunakan ZeroSSL sebagai CA default, dan ZeroSSL mengharuskan Anda mendaftarkan akun menggunakan alamat email (EAB).
Jika Anda ingin menggunakan Let’s Encrypt (yang umumnya lebih familiar dan tidak memerlukan registrasi EAB), ubah CA default ke Let’s Encrypt.
Jalankan:
acme.sh --set-default-ca --server letsencrypt
Kemudian daftar akun Let’s Encrypt (gunakan email Anda):
acme.sh --register-account -m bayu@kulivps.com
Setelah itu, issue sertifikat SSL:
acme.sh --issue \ -d example.com \ -d www.example.com \ --webroot /var/www/example.com/public_html
Install sertifikat ke lokasi permanen
sudo mkdir -p /etc/ssl/example.com
Kemudian install sertifikat:
acme.sh --install-cert -d example.com \ --ecc \ --key-file /etc/ssl/example.com/privkey.pem \ --fullchain-file /etc/ssl/example.com/fullchain.pem \ --reloadcmd "systemctl reload httpd"
13. Membuka Port Firewall
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
14. Fix SELinux Network Restrictions
Secara default, SELinux mencegah server web (Apache/Nginx) membuka soket jaringan keluar. Sehingga kita tidak bisa terkoneksi dengan server WordPress yang menyebabkan kita tidak bisa menginstall plugins maupun themes dari sisi admin dashboard WordPress.
* Periksa apakah SELinux memblokir koneksi HTTP/HTTPS:
getsebool httpd_can_network_connect
* Jika itu di-nonaktifkan (off), maka aktifkan secara permanen dengan menjalankan perintah berikut:
sudo setsebool -P httpd_can_network_connect 1
* Restart web server
sudo systemctl restart httpd
15. Verifikasi
* Apache:
systemctl status httpd
* MariaDB:
systemctl status mariadb
* PHP:
php -v
* Firewall:
firewall-cmd --list-services
* SELinux:
getenforce
16. Setup WordPress di Browser
Langkah terakhir, akses domain website Anda dan setup WordPress di browser:
https://example.com
17. Struktur Direktori
/var/www/ └── example.com └── public_html ├── index.php ├── css/ ├── js/ └── images/
* Paket yang Terinstal
| Komponen | Paket |
| Web Server | Apache HTTP Server (httpd) |
| Database | MariaDB Server 10.11 |
| Bahasa Pemrograman | PHP 8.3 |
| PHP Database Driver | php-mysqlnd |
| SSL | Certbot + Let’s Encrypt |
| Firewall | firewalld |
| Security | SELinux |
Panduan ini cocok untuk menjalankan berbagai aplikasi berbasis PHP seperti WordPress, Laravel, CodeIgniter, Moodle, phpMyAdmin, Nextcloud, maupun aplikasi PHP lainnya di RHEL 10.






























