Pendahuluan
Membuat website yang cepat, aman, dan efisien adalah impian setiap pemilik situs. Jika Anda menyewa VPS (Virtual Private Server) dengan OS Debian 13, kombinasi antara WordPress dan Caddy Web Server adalah pilihan modern yang sangat tepat.
Berbeda dengan Apache atau Nginx yang membutuhkan konfigurasi rumit untuk mengaktifkan HTTPS, Caddy Web Server secara otomatis mengurus sertifikat SSL Anda dari Let's Encrypt. Artikel ini akan membahas panduan lengkap langkah demi langkah cara install WordPress menggunakan Caddy dan database MariaDB/MySQL di Debian 13 dari awal sampai selesai.
Persiapan
Sebelum memulai, pastikan Anda sudah memiliki:
- Akses ke VPS Debian 13 dengan hak akses root atau user yang memiliki konfigurasi sudo.
- Sebuah nama domain atau sub-domain yang sudah diarahkan (DNS A Record) ke IP VPS Anda.
Langkah Instalasi
- Lakukan update sistem:bash
sudo apt update && sudo apt upgrade -y - Instal caddy:bash
sudo apt install caddy -y - Aktifkan caddy:bash
sudo systemctl start caddybashsudo systemctl enable caddy - Instal paket utilitas dasar di sistem operasi berbasis Debian atau Ubuntu:bash
sudo apt install apt-transport-https lsb-release ca-certificates curl -y - Lakukan penyimpanan kunci keamanan GPG key resmi dari repositori PHP pihak ketiga milik Ondřej Surý. Di Debian atau Ubuntu, repositori bawaan biasanya hanya menyediakan versi PHP tertentu. Jika Anda ingin menginstal versi PHP yang berbeda atau versi paling terbaru, Anda perlu menambahkan repositori eksternal yang tepercaya ini:bash
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg - Mendaftarkan alamat repositori PHP Ondřej Surý ke dalam sistem manajemen paket (apt) Debian atau Ubuntu:bash
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list - Lakukan update sistem:bash
sudo apt update && sudo apt upgrade -y - Instal php:bash
sudo apt install php8.5-fpm php8.5-mysql php8.5-curl php8.5-gd php8.5-mbstring php8.5-xml php8.5-zip -y - Aktifkan php:bash
sudo systemctl start php8.5-fpmbashsudo systemctl enable php8.5-fpm - Instal mariadb:bash
sudo apt install mariadb-server -y - Buka mariadb:bash
sudo mysql - Buat database baru dengan nama wordpress:sql
CREATE DATABASE wordpress; - Buat nama pengguna baru dengan nama admin, lalu buat kata sandi pada bagian password_Anda:sql
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password_Anda'; - Memberikan hak akses penuh (privilese tertinggi) kepada pengguna database bernama admin untuk mengelola database khusus yang bernama wordpress:sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'admin'@'localhost'; - Refresh seluruh hak akses dan tabel privilese di dalam database MariaDB atau MySQL secara instan tanpa perlu merestart layanan database:sql
FLUSH PRIVILEGES; - Keluar dari mariadb:sql
EXIT; - Instal unzip:bash
sudo apt install unzip -y - Buat folder baru dengan nama www:bash
sudo mkdir /var/www - Buka folder www:bash
cd /var/www - Download wordpress:bash
sudo wget https://wordpress.org/latest.zip - Ekstrak file latest.zip:bash
sudo unzip latest.zip - Buka file hasil ekstrak bernama wordpress:bash
cd /var/www/wordpress - Salin isi file wp-config-sample.php ke file baru dengan nama wp-config.php:bash
sudo cp wp-config-sample.php wp-config.php - Restart php:bash
sudo systemctl restart php8.5-fpm - Buka konfigurasi caddy:bash
sudo nano /etc/caddy/Caddyfile - Salin dan tempelkan konfigurasi caddy:
Jika Anda menggunakan IP address:
:80 {
root * /var/www/wordpress
encode gzip
# Amankan file sensitif WordPress
@disallowed {
path /xmlrpc.php
path *.sql
path /wp-content/uploads/*.php
}
# Mengarahkan file terlarang ke index.php (atau ganti dengan `error 403` jika ingin memblokir total)
rewrite @disallowed /index.php
# Pastikan WordPress Permalinks berjalan dengan baik
try_files {path} {path}/ /index.php?{query}
# Proses PHP dan File Server
php_fastcgi unix//run/php/php8.5-fpm.sock
file_server
}Jika Anda menggunakan domain atau subdomain:
https://domain-anda.com {
root * /var/www/wordpress
encode gzip
# Amankan file sensitif WordPress
@disallowed {
path /xmlrpc.php
path *.sql
path /wp-content/uploads/*.php
}
# Mengarahkan file terlarang ke index.php (atau ganti dengan `error 403` jika ingin memblokir total)
rewrite @disallowed /index.php
# Pastikan WordPress Permalinks berjalan dengan baik
try_files {path} {path}/ /index.php?{query}
# Proses PHP dan File Server
php_fastcgi unix//run/php/php8.5-fpm.sock
file_server
}- Restart caddy:bash
sudo systemctl restart caddy - Untuk melakukan konfigurasi utama php yaitu melalui php.ini, misalnya upload_max_filesize dan post_max_size:bash
sudo nano /etc/php/8.5/cli/php.inibashsudo nano /etc/php/8.5/fpm/php.ini - Restart php:bash
sudo systemctl restart php8.5-fpm - Ubah kepemilikan (ownership) folder /var/www/wordpress beserta seluruh isi di dalamnya menjadi milik user dan grup www-data:bash
sudo chown -R www-data:www-data /var/www/wordpress - Ubah hak akses (permission) folder-folder tersebut menjadi 755:bash
sudo find /var/www/wordpress/wp-content/uploads -type d -exec chmod 755 {} \; - Ubah hak akses (permission) file-file tersebut menjadi 644:bash
sudo find /var/www/wordpress/wp-content/uploads -type f -exec chmod 644 {} \; - Instal ufw:bash
sudo apt install ufw -y - Aktifkan ufw:bash
sudo systemctl start ufwbashsudo systemctl enable ufw - Buka firewall untuk http dan https:bash
sudo ufw allow httpbashsudo ufw allow https - Selesai, silakan buka IP address atau alamat domain Anda di browser untuk melakukan pemilihan bahasa dan melengkapi detail situs web Anda.
Pemecahan Masalah
Proses instalasi web server terkadang tidak selalu mulus. Jika Anda mengalami kendala setelah mengikuti langkah-langkah di atas, berikut adalah beberapa masalah yang sering terjadi beserta solusinya.
Error: "Error Establishing a Database Connection"
Masalah ini berarti WordPress tidak bisa terhubung ke MariaDB. Solusi: Buka kembali file wp-config.php Anda. Pastikan nama database (wordpress), username (admin), dan password yang Anda masukkan sudah benar-benar cocok dengan yang Anda buat pada langkah nomor 12 dan 13. Pastikan juga layanan MariaDB aktif dengan perintah:
sudo systemctl enable mariadbError: "403 Forbidden"
Masalah ini berarti masalah hak akses sehingga muncul pesan akses ditolak saat membuka situs atau gagal upload. Solusi: Jalankan ulang perintah nomor 30, 31, dan 32 untuk memastikan pemilik folder adalah www-data dan kodenya sudah tepat, yaitu folder = 755 dan file = 644.
Error: "502 Bad Gateway"
Masalah ini berarti Caddy tidak bisa berkomunikasi dengan PHP-FPM. Solusi: Periksa versi PHP-FPM yang berjalan:
php -vPada konfigurasi Caddyfile (langkah nomor 26), kita mengarahkan ke unix//run/php/php8.5-fpm.sock. Pastikan versi php sudah sesuai dan layanan aktif menggunakan perintah:
sudo systemctl enable php8.5-fpmJika Anda menggunakan versi PHP berbeda, sesuaikan nama file .sock tersebut di dalam Caddyfile Anda.
Halaman Website Tidak Bisa Diakses
Masalah ini berarti firewall memblokir koneksi Anda. Solusi: Pastikan firewall UFW tidak memblokir koneksi Anda. Cek kembali apakah Anda sudah membuka port dengan benar seperti:
sudo ufw allow httpsudo ufw allow httpsKesimpulan
Memasang WordPress menggunakan Caddy Web Server di Debian 13 merupakan kombinasi modern yang sangat efisien, cepat, dan aman untuk VPS Anda. Keunggulan utama Caddy yang otomatis mengelola sertifikat SSL dari Let's Encrypt sangat memangkas waktu konfigurasi dibandingkan web server tradisional seperti Apache atau Nginx.
Dengan memadukan performa andal dari PHP 8.5 dan efisiensi database MariaDB, Anda kini telah memiliki fondasi website WordPress yang optimal dan siap menerima trafik tinggi.