Memasang WordPress dan Caddy Web Server di Debian 13

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

  1. Lakukan update sistem:
    bash
    sudo apt update && sudo apt upgrade -y
  2. Instal caddy:
    bash
    sudo apt install caddy -y
  3. Aktifkan caddy:
    bash
    sudo systemctl start caddy
    bash
    sudo systemctl enable caddy
  4. Instal paket utilitas dasar di sistem operasi berbasis Debian atau Ubuntu:
    bash
    sudo apt install apt-transport-https lsb-release ca-certificates curl -y
  5. 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
  6. 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
  7. Lakukan update sistem:
    bash
    sudo apt update && sudo apt upgrade -y
  8. 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
  9. Aktifkan php:
    bash
    sudo systemctl start php8.5-fpm
    bash
    sudo systemctl enable php8.5-fpm
  10. Instal mariadb:
    bash
    sudo apt install mariadb-server -y
  11. Buka mariadb:
    bash
    sudo mysql
  12. Buat database baru dengan nama wordpress:
    sql
    CREATE DATABASE wordpress;
  13. Buat nama pengguna baru dengan nama admin, lalu buat kata sandi pada bagian password_Anda:
    sql
    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password_Anda';
  14. 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';
  15. Refresh seluruh hak akses dan tabel privilese di dalam database MariaDB atau MySQL secara instan tanpa perlu merestart layanan database:
    sql
    FLUSH PRIVILEGES;
  16. Keluar dari mariadb:
    sql
    EXIT;
  17. Instal unzip:
    bash
    sudo apt install unzip -y
  18. Buat folder baru dengan nama www:
    bash
    sudo mkdir /var/www
  19. Buka folder www:
    bash
    cd /var/www
  20. Download wordpress:
    bash
    sudo wget https://wordpress.org/latest.zip
  21. Ekstrak file latest.zip:
    bash
    sudo unzip latest.zip
  22. Buka file hasil ekstrak bernama wordpress:
    bash
    cd /var/www/wordpress
  23. 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
  24. Restart php:
    bash
    sudo systemctl restart php8.5-fpm
  25. Buka konfigurasi caddy:
    bash
    sudo nano /etc/caddy/Caddyfile
  26. Salin dan tempelkan konfigurasi caddy:

Jika Anda menggunakan IP address:

caddyfile
: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:

caddyfile
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
}
  1. Restart caddy:
    bash
    sudo systemctl restart caddy
  2. 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.ini
    bash
    sudo nano /etc/php/8.5/fpm/php.ini
  3. Restart php:
    bash
    sudo systemctl restart php8.5-fpm
  4. 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
  5. Ubah hak akses (permission) folder-folder tersebut menjadi 755:
    bash
    sudo find /var/www/wordpress/wp-content/uploads -type d -exec chmod 755 {} \;
  6. Ubah hak akses (permission) file-file tersebut menjadi 644:
    bash
    sudo find /var/www/wordpress/wp-content/uploads -type f -exec chmod 644 {} \;
  7. Instal ufw:
    bash
    sudo apt install ufw -y
  8. Aktifkan ufw:
    bash
    sudo systemctl start ufw
    bash
    sudo systemctl enable ufw
  9. Buka firewall untuk http dan https:
    bash
    sudo ufw allow http
    bash
    sudo ufw allow https
  10. 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:

bash
sudo systemctl enable mariadb

Error: "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:

bash
php -v

Pada 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:

bash
sudo systemctl enable php8.5-fpm

Jika 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:

bash
sudo ufw allow http
bash
sudo ufw allow https

Kesimpulan

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.

Artikel Terkait