Belajar FrankenPHP dari dasar hingga production-grade: pre-requisites skill & setup environment, sejarah latar belakang & mengapa membutuhkannya, arsitektur & konsep utama, instalasi & konfigurasi Caddyfile, PHP server classic vs PHP worker, worker mode boot & request handling, integrasi Laravel Octane, integrasi Symfony Runtime, static files gzip & HTTP caching, reverse proxy & load balancing, TLS/HTTPS otomatis & localhost, environment env vars & config file, logging observability & metrics, session persistence & state, security TLS headers & OWASP, CVE & security patch management, firewall rate limit & DoS mitigation, performance tuning & benchmark, HTTP/3 QUIC & WebSocket, Docker & Kubernetes deployment, cluster autoscaling & high availability, custom build & extensions, integrasi ecosystem WordPress Drupal & API Platform, ekosistem & tren modern 2026, hingga roadmap karir & refleksi akhir dengan total 25 episode.
Sebelum menyentuh FrankenPHP, kalian perlu menguasai PHP dasar (Composer, CLI), konsep web server & reverse proxy, serta HTTP request/response. Di episode ini kalian juga menyiapkan PHP 8.5 ZTS, Composer, Docker, menginstall FrankenPHP 1.12.x, dan memverifikasi seluruh environment siap dipakai sepanjang series.

Menelusuri mengapa tumpukan Nginx + PHP-FPM mulai menjadi bottleneck: PHP-FPM mem-bootstrap aplikasi ulang di setiap request, boros CPU dan memori. FrankenPHP menjawabnya dengan menggabungkan web server Caddy dan PHP ter-embedded dalam satu binary, plus Worker Mode yang membuat aplikasi hidup permanen di memori.

Membongkar arsitektur internal FrankenPHP: Caddy (Go) sebagai HTTP server dengan PHP ter-embedded via libphp, mengapa PHP harus dikompilasi ZTS, cara kerja thread pool, dan dua konsep kunci — mode classic (per request) versus mode worker (persistent).

Panduan lengkap instalasi FrankenPHP: static binary, install script, Homebrew, paket deb/rpm/apk, dan image Docker. Dilanjutkan dengan konfigurasi Caddyfile pertama — root public, php_server, dan routing dasar — lalu menjalankannya dengan frankenphp run.

Memahami dua cara FrankenPHP mengeksekusi PHP: php_server mode classic yang menangani request per-request seperti PHP-FPM, versus mode worker yang mem-bootstrap aplikasi sekali dan menyimpannya di memori, termasuk konfigurasi FRANKENPHP_CONFIG dan worker_num.

Menyelami jantung Worker Mode: menulis skrip worker dengan frankenphp_handle_request() dan frankenphp_foreach_request(), perilaku superglobal antar request, batas jumlah request untuk mencegah memory leak, serta strategi restart dan penanganan crash worker di produksi.

Menjalankan Laravel di atas FrankenPHP: integrasi resmi Laravel Octane dengan server FrankenPHP, perintah octane:frankenphp, warm-up cache agar bootstrap sekali benar-benar panas, dan susunan Caddyfile produksi dengan routing, static files, dan kompresi.

Menjalankan Symfony di atas FrankenPHP: paket frankenphp/symfony- runtime, variabel APP_RUNTIME untuk worker mode, HTTP cache, dan audit kompatibilitas worker dengan igor-php agar state leak tidak menyerang di produksi.

Mengoptimalkan pengiriman aset statis di FrankenPHP: kompresi on-the-fly dengan encode zstd br gzip, menyajikan file yang sudah dikompresi lewat precompressed, header Cache-Control & ETag untuk browser caching, dan memisahkan rute aset agar tidak membebani PHP.

Menggunakan FrankenPHP sebagai reverse proxy dan load balancer: meneruskan request ke beberapa backend API atau microservices dengan directive reverse_proxy, konfigurasi health check, policy load balancing round_robin / least_conn / random, retry policy, dan pengaturan trusted_proxies.
