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
| Masalah | Penyebab | Solusi |
|---|---|---|
| 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.