Menjalankan WordPress dengan FrankenPHP, Modern Bikin Ngebut

Dalam dunia pengembangan web PHP modern, FrankenPHP muncul sebagai application server yang revolusioner. Dibangun di atas web server Caddy, FrankenPHP menawarkan fitur-fitur canggih seperti dukungan native HTTP/3, HTTPS otomatis, dan kompresi Zstandard.

Artikel ini akan membahas secara teknis bagaimana mengintegrasikan WordPress dengan FrankenPHP, mulai dari instalasi minimal hingga konfigurasi fitur canggih seperti Hot Reload.

Mengapa FrankenPHP untuk WordPress?

Secara tradisional, WordPress sering dijalankan di atas stack Apache/Nginx + PHP-FPM. FrankenPHP menyederhanakan arsitektur ini dengan menggabungkan web server dan PHP engine menjadi satu binary yang efisien. Keuntungannya meliputi:

  • Performa Tinggi: Dukungan teknologi modern (HTTP/3, Early Hints).
  • Simplicity: Tidak perlu konfigurasi rumit antara web server dan PHP-FPM.
  • Fitur Modern: Dukungan native untuk worker mode dan real-time capabilities.

1. Instalasi Minimal (Quick Start)

Untuk lingkungan pengembangan lokal atau uji coba cepat, Anda dapat menjalankan WordPress dengan FrankenPHP hanya dalam beberapa langkah tanpa konfigurasi file yang rumit.

Langkah-langkah:

  1. Unduh WordPress: Dapatkan arsip WordPress terbaru dari situs resminya.
  2. Ekstrak: Ekstrak arsip ZIP tersebut ke dalam direktori kerja Anda.
  3. Jalankan Server: Buka terminal di dalam direktori hasil ekstrak tadi, lalu jalankan perintah berikut:Bashfrankenphp php-server
  4. Instalasi: Buka browser dan akses http://localhost/wp-admin/ untuk memulai wizard instalasi WordPress seperti biasa.

Metode ini sangat cocok untuk prototyping cepat karena server langsung berjalan dengan konfigurasi default yang aman.

2. Konfigurasi Produksi (Caddyfile)

Untuk lingkungan produksi, sangat disarankan menggunakan perintah frankenphp run dengan konfigurasi eksplisit melalui Caddyfile. Ini memberikan kontrol lebih besar terhadap kompresi, logging, dan domain.

Berikut adalah contoh konfigurasi Caddyfile yang optimal untuk produksi:

Code snippet

example.com {
    # Mengaktifkan server PHP
    php_server

    # Optimasi kompresi (Zstandard, Brotli, Gzip)
    encode zstd br gzip

    # Mengaktifkan logging akses
    log
}

Jalankan server dengan perintah:

Bash

frankenphp run

Konfigurasi di atas akan secara otomatis menangani sertifikat SSL/TLS untuk example.com, mengaktifkan kompresi modern, dan melayani file statis dengan efisien.

3. Fitur Canggih: Hot Reload

Salah satu fitur unik FrankenPHP adalah kemampuannya untuk melakukan Hot Reload. Ini sangat berguna saat pengembangan tema atau plugin, di mana browser akan otomatis menyegarkan konten saat ada perubahan file, tanpa perlu refresh manual.

Untuk mengaktifkannya di WordPress, diperlukan dua langkah konfigurasi:

Langkah A: Konfigurasi Caddyfile

Tambahkan direktif mercure dan opsi hot_reload pada blok php_server di Caddyfile Anda:

Code snippet

localhost {
    # Mengaktifkan hub Mercure untuk push event
    mercure {
        anonymous
    }
    
    # Mengaktifkan hot reload pada PHP server
    php_server {
        hot_reload
    }
}

Langkah B: Injeksi Script di WordPress

Anda perlu menyisipkan script client-side agar browser dapat mendengarkan event reload. Tambahkan kode berikut ke dalam file functions.php pada tema WordPress Anda:

PHP

function hot_reload() {
    // Mengecek apakah fitur hot reload aktif dari server
    if (isset($_SERVER['FRANKENPHP_HOT_RELOAD'])): ?>
        
        <meta name="frankenphp-hot-reload:url" content="<?= $_SERVER['FRANKENPHP_HOT_RELOAD'] ?>">
        
        <script src="https://cdn.jsdelivr.net/npm/idiomorph"></script>
        
        <script src="https://cdn.jsdelivr.net/npm/frankenphp-hot-reload/+esm" type="module"></script>
        
    <?php endif;
}

// Hook ke wp_head untuk memuat script
add_action('wp_head', 'hot_reload');

Setelah kedua langkah selesai, jalankan frankenphp run dari root direktori WordPress. Kini, setiap perubahan kode akan langsung terlihat di browser secara real-time.

Kesimpulan

Menggunakan FrankenPHP untuk WordPress membawa stack teknologi CMS terpopuler di dunia ke era modern. Dengan kemudahan penggunaan php-server untuk dev dan kekuatan Caddyfile untuk produksi, serta fitur unik seperti Hot Reload, FrankenPHP menawarkan alternatif yang sangat menarik dibandingkan stack tradisional LAMP atau LEMP.

You cannot copy content of this page