Red Hat Enterprise Linux 10 (RHEL 10) merupakan sistem operasi Linux kelas enterprise (perusahaan yang dikembangkan oleh Red Hat untuk digunakan pada server, cloud, workstation, edge computing, dan AI workloads. RHEL terkenal karena stabilitasnya, keamanan yang tinggi, serta dukungan teknis jangka panjang yang membuatnya menjadi pilihan banyak perusahaan besar.
RHEL 10 merupakan penerus dari RHEL 9 dan membawa banyak peningkatan pada sisi keamanan, otomatisasi, performa, dan integrasi dengan teknologi cloud-native.
Nah di artikel dokumentasi berikut ini saya akan share mengenai panduan Instalasi & Konfigurasi LEMP Stack (Nginx, PHP-FPM dan MariaDB) di Red Hat Enterprise Linux 10 (RHEL). Sebelum memulai instalasi dan konfigurasi, berikut persyaratan sistemnya.
PREREQUISITES:
- AWS EC2 Instances dengan RHEL 10
- Hak Akses Root Penuh (sudo privileges)
- Familiar dengan Command-Line Linux, terutama DNF 5
1. Update System & Install Dependency
dnf update -y
dnf install wget nano zip unzip -y
2. Install Nginx web server
sudo dnf install nginx
3. Aktifkan dan Start Nginx
sudo systemctl enable --now nginx
sudo systemctl start nginx
Verifikasi:
nginx -v
systemctl status nginx

4. Install PHP-FPM
sudo dnf install -y \ php \ php-fpm \ php-cli \ php-common \ php-mysqlnd \ php-gd \ php-mbstring \ php-xml \ php-intl \ php-opcache \ php-curl \ php-zip \ php-bcmath
Verifikasi:
php -v
5. Aktifkan PHP-FPM
sudo systemctl enable --now php-fpm
Cek status:
systemctl status php-fpm
6. Konfigurasi PHP-FPM
Edit file pool default:
sudo nano /etc/php-fpm.d/www.conf
Pengaturan penting:
user = nginx group = nginx listen = /run/php-fpm/www.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
Jika menggunakan Apache, biasanya user dan group adalah apache. Untuk Nginx, gunakan nginx.
Restart PHP-FPM:
sudo systemctl restart php-fpm
7. Konfigurasi Nginx
* Pastikan server block memiliki konfigurasi seperti berikut:
nano /etc/nginx/conf.d/domain.conf
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html;
index index.php index.html;
listen 443 ssl;
#listen [::]:443 ssl;
http2 on;
ssl_certificate "/etc/letsencrypt/live/example.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/example.com/privkey.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
* Uji konfigurasi:
sudo nginx -t
Reload Nginx:
sudo systemctl reload nginx
8. Uji PHP
* Buat file:
sudo nano /var/www/html/info.php
* Isikan:
opcache.memory_consumption=256 opcache.interned_strings_buffer=32 opcache.max_accelerated_files=100000 opcache.validate_timestamps=1 opcache.revalidate_freq=2
* Restart PHP-FPM:
sudo systemctl restart php-fpm

10. Install Python Certbot & Let’s Encrypt SSL
* Install dependency
sudo dnf install -y \ python3 \ python3-pip \ gcc \ openssl-devel \ libffi-devel
* Buat virtual environment
sudo mkdir -p /opt/certbot sudo python3 -m venv /opt/certbot/
* Install Certbot
sudo /opt/certbot/bin/pip install --upgrade pip sudo /opt/certbot/bin/pip install certbot
* Cek versi:
/opt/certbot/bin/certbot --version
* Buat symbolic link
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Verifikasi:
certbot --version
* Install Let’s Encrypt SSL
certbot certonly \ --webroot \ -w /var/www/html \ -d example.com \ -d www.example.com
11. Auto Renewal SSL
Tes terlebih dahulu:
certbot renew --dry-run
Jika sukses, buat cron:
crontab -e
Tambahkan:
0 3 * * * certbot renew --quiet
* Restart Nginx
systemctl restart nginx
12. Install MariaDB
dnf install mariadb-server
* Enable & Start
systemctl enable --now mariadb
systemctl start mariadb
* Verifikasi Versi & Status Layanan
Biasanya terinstall MariaDB versi 10.11 bawaan resmi Red Hat Enterprise Linux 10, bukan MariaDB Community Server.
mariadb -V
systemctl status mariadb
* Amanakan Instalasi MariaDB
mariadb-secure-installation
14. Buat Database dan User
mariadb -u root -p
CREATE DATABASE databasename;
CREATE USER databaseuser@localhost;
SET PASSWORD FOR databaseuser@localhost= PASSWORD("password");
GRANT ALL PRIVILEGES ON databasename.* TO databaseuser@localhost IDENTIFIED BY "password";
FLUSH PRIVILEGES;
exit
15. Install WordPress
cd /var/www/html
wget https://wordpress.org/latest.zip
unzip latest.zip
* Pindahkan isi folder wordpress ke document root
mv wordpress/* /var/www/html
* Set ownership file dan folder ke user/grup nginx
chown -R nginx:nginx /var/www/html
* Kemudian akses domain website Anda dan setup WordPress di browser:
https://example.com
16. 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 nginx
Struktur LEMP Stack yang direkomendasikan di RHEL 10
RHEL 10 ├── Nginx ├── PHP-FPM ├── MariaDB 11.x / MySQL ├── Redis (opsional) ├── firewalld └── SELinux (mode Enforcing)
Kombinasi ini umum digunakan untuk aplikasi berbasis web seperti WordPress, Laravel, Symfony, dan berbagai aplikasi PHP modern. Disarankan untuk tetap membiarkan SELinux dalam mode Enforcing dan menyesuaikan konteks atau policy jika diperlukan, karena ini memberikan lapisan keamanan tambahan dibanding menonaktifkannya.






























