TMA 9.2: Instalasi dan Konfigurasi LAMP Stack untuk Menjalankan WordPress di AlmaLinux

Panduan Lengkap WordPress di AlmaLinux

1. Persiapan Sistem

Update Sistem

sudo dnf update -y

Menjamin semua paket terbaru dan mengurangi masalah kompatibilitas.

Install LAMP Stack

sudo dnf install httpd mariadb-server mariadb php php-mysqlnd php-fpm -y
  • httpd: web server Apache
  • mariadb-server: database server
  • php & php-mysqlnd: bahasa scripting PHP & modul koneksi MariaDB
  • php-fpm: FastCGI Process Manager untuk PHP

Enable dan Start Service

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm

2. Konfigurasi MariaDB (Database)

Amankan Instalasi MariaDB

sudo mysql_secure_installation

Ikuti langkah-langkah untuk set root password, hapus user anonim, nonaktifkan remote root login, dan hapus database test.

Buat Database & User WordPress

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser123';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

Jika user sudah ada:

ALTER USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser123';
FLUSH PRIVILEGES;

3. Upload dan Ekstrak WordPress

sudo mv latest.tar.gz /var/www/
cd /var/www
sudo tar -xvzf latest.tar.gz
sudo chown -R apache:apache wordpress
sudo chmod -R 755 wordpress

Catatan:

  • chown apache:apache → memastikan Apache bisa menulis file
  • chmod 755 → memberi permission aman untuk direktori

Jika ada WordPress lama:

sudo mv /var/www/wordpress /var/www/wordpress_old

4. Konfigurasi Apache untuk WordPress

Buat Virtual Host

<VirtualHost *:80>
    ServerName 123.456.789.101
    DocumentRoot /var/www/wordpress

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

    ErrorLog /var/log/httpd/wordpress_error.log
    CustomLog /var/log/httpd/wordpress_access.log combined
</VirtualHost>

Ganti IP dengan IP server atau domain. AllowOverride All memungkinkan .htaccess bekerja untuk permalink WordPress.

Enable mod_rewrite

sudo dnf install mod_rewrite -y
sudo systemctl restart httpd

Restart Apache

sudo systemctl restart httpd

5. Konfigurasi PHP-FPM

Edit Pool Config

sudo nano /etc/php-fpm.d/www.conf

Pastikan:

listen = /run/php-fpm/www.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
user = apache
group = apache

Restart PHP-FPM

sudo systemctl restart php-fpm

Pastikan Apache Bisa Menggunakan PHP-FPM

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

6. SELinux dan Firewall

Set Context SELinux

sudo chcon -R -t httpd_sys_rw_content_t /var/www/wordpress

Izinkan HTTP/HTTPS di Firewall

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

7. Troubleshooting Umum

MasalahPenyebabSolusi
Service Unavailable Apache tidak bisa koneksi ke PHP-FPM Pastikan SetHandler menggunakan socket yang benar dan PHP-FPM berjalan
Error establishing a database connection Database atau user salah/password Periksa wp-config.php dan akses MariaDB
Forbidden Permission atau SELinux Gunakan chown/chcon sesuai instruksi di atas
File tidak bisa dipindah File sudah ada atau salah path Gunakan ls untuk cek lokasi folder dan gunakan mv/cp -r sesuai path

8. Testing WordPress

http://IP_SERVER

Ikuti wizard WordPress: pilih bahasa, buat user admin, dan hubungkan ke database.

TMA 9.1: Instalasi dan Konfigurasi LEMP Stack untuk Menjalankan WordPress di Ubuntu Server 24.04 LTS

1. Persiapan Sistem

Lihat Perintah & Penjelasan
sudo apt update && sudo apt upgrade -y

Update paket dan upgrade sistem agar semua software terbaru dan bug/security fixes diterapkan.

sudo apt install curl wget unzip -y

Install tools tambahan: curl dan wget untuk download file, unzip untuk mengekstrak file WordPress.

2. Instalasi Nginx

Lihat Perintah & Penjelasan
sudo apt install nginx -y

Install Nginx, web server ringan dan cepat.

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

Mengaktifkan Nginx saat boot, menjalankan service, dan memeriksa statusnya.

3. Instalasi MySQL / MariaDB

Lihat Perintah & Penjelasan
sudo apt install mysql-server -y

Install database server MySQL atau MariaDB.

sudo systemctl enable mysql
sudo systemctl start mysql

Mengaktifkan service MySQL saat boot dan memulai service sekarang.

sudo mysql_secure_installation

Mengamankan MySQL: mengatur password root, menghapus user anonim, menghapus database test, menonaktifkan login root jarak jauh.

4. Buat Database & User WordPress

Lihat Perintah & Penjelasan
sudo mysql -u root -p

Login ke MySQL sebagai root.

DROP USER IF EXISTS 'wpuser'@'localhost';

Menghapus user lama jika sudah ada untuk menghindari error saat pembuatan user baru.

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Membuat database baru bernama wordpress dengan encoding UTF8MB4 agar mendukung emoji dan karakter internasional.

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser123';

Membuat user baru wpuser dengan password wpuser123.

GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

Memberikan semua hak akses ke database wordpress untuk user wpuser. FLUSH PRIVILEGES menyegarkan hak akses.

EXIT;

Keluar dari MySQL.

-- Jika user sudah ada:
ALTER USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser123';

Mengubah password user lama jika sudah ada.

5. Instalasi PHP & Ekstensi

Lihat Perintah & Penjelasan
sudo apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd \
php8.3-mbstring php8.3-xml php8.3-xmlrpc php8.3-soap php8.3-intl php8.3-zip -y

Install PHP-FPM dan ekstensi yang dibutuhkan WordPress.

sudo systemctl enable php8.3-fpm
sudo systemctl start php8.3-fpm
php -v

Aktifkan PHP-FPM saat boot, jalankan service sekarang, dan cek versi PHP yang terpasang.

6. Download & Pasang WordPress

Lihat Perintah & Penjelasan
cd /var/www/
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/wordpress

Download WordPress terbaru, ekstrak, dan pindahkan ke folder web server.

sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress

Set permission agar Nginx dapat menulis file: owner www-data, folder 755.

7. Konfigurasi Nginx untuk WordPress

Lihat Contoh & Penjelasan
sudo nano /etc/nginx/sites-available/wordpress

Buka file konfigurasi Nginx.

server {
    listen 80;
    server_name your-domain.com;
    root /var/www/wordpress;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Konfigurasi Nginx untuk WordPress: root, index, PHP-FPM socket, deny .htaccess.

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

Aktifkan site, hapus default, cek konfigurasi, reload Nginx.

8. Konfigurasi wp-config.php

Lihat Perintah & Penjelasan
cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

Salin file sampel wp-config dan edit database info.

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'wpuser123' );
define( 'DB_HOST', 'localhost' );

Set database WordPress sesuai user dan password.

# Tambahkan WordPress Salts dari:
# https://api.wordpress.org/secret-key/1.1/salt/

Tambahkan salt keys untuk keamanan login WordPress.

9. Restart PHP-FPM & Reload Nginx

Lihat Perintah & Penjelasan
sudo systemctl restart php8.3-fpm
sudo systemctl reload nginx

Restart PHP-FPM agar konfigurasi baru diterapkan, reload Nginx agar perubahan site aktif.

10. Akses WordPress

Buka browser: http://IP-Server-Anda/ atau http://your-domain.com/, lalu ikuti wizard instalasi WordPress.

11. (Opsional) Tambahkan SSL / HTTPS

Lihat Perintah & Penjelasan
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx
sudo systemctl reload nginx

Install Certbot, buat SSL gratis dengan Let’s Encrypt, reload Nginx agar HTTPS aktif.

12. Tips Keamanan & Maintenance

  • Update WordPress, plugin, tema rutin
  • Backup database & folder /var/www/wordpress
  • Jangan gunakan root untuk login WordPress
  • Folder permissions: 755 untuk folder, 644 untuk file