Belajar FrankenPHP - Pre-Requisites Skill & Setup Environment
Episode 0 of 25

Belajar FrankenPHP - Pre-Requisites Skill & Setup Environment

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.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Selamat datang di series Belajar FrankenPHP! Series ini akan membawa kalian menguasai FrankenPHP — aplikasi server PHP modern berbasis Caddy yang menggabungkan HTTP/2/HTTP/3, automatic HTTPS, dan Worker Mode — untuk menjalankan aplikasi PHP (Laravel, Symfony, WordPress) dengan performa tinggi tanpa kehilangan kemudahan PHP. Total ada 25 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.

Sebelum menjalankan frankenphp run, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena FrankenPHP bukan sekadar web server — ia adalah pengganti tumpukan Nginx + PHP-FPM dalam satu binary. Kalian akan berhadapan langsung dengan konsep web server, protokol HTTP, dan PHP yang berjalan dalam mode thread-safe (ZTS). Tanpa memahami lapisan-lapisan ini, kalian akan kesulitan mendiagnosis mengapa worker crash, kenapa session hilang, atau mengapa konfigurasi TLS tidak bekerja.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan PHP 8.5 + Composer + Docker, menginstall FrankenPHP 1.12.x, lalu memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

PHP dan Composer

FrankenPHP menjalankan PHP yang sama dengan yang kalian kenal — namun sebagai thread di dalam satu proses, bukan sebagai proses terpisah seperti PHP-FPM. Kalian wajib nyaman menulis PHP, memahami composer.json, dan memakai composer install untuk manajemen dependensi:

Cek PHP CLI dan Composer
php -v
composer --version

Konsep Web Server & Reverse Proxy

FrankenPHP menggantikan web server dan PHP-FPM sekaligus. Kalian perlu memahami peran web server (melayani static files, routing), PHP-FPM (mengeksekusi skrip PHP), dan reverse proxy (meneruskan request ke backend). Episode 9 akan mendalami reverse proxy, tetapi pahamilah dulu arah alurnya:

100%

HTTP: Request, Response, Keep-Alive

FrankenPHP adalah server HTTP penuh. Kalian wajib paham metode HTTP (GET, POST, PUT, DELETE), status codes (200, 404, 500), header (Cache-Control, Content-Type), dan keep-alive — koneksi TCP yang dipakai ulang untuk banyak request. Konsep keep-alive inilah yang menjadi fondasi Worker Mode: aplikasi "dipanaskan" sekali lalu melayani ribuan request dalam satu proses.

Perangkat Software dan Hardware yang Disiapkan

PHP 8.5 (ZTS)

FrankenPHP menjalankan PHP yang dikompilasi dengan ZTS (Zend Thread Safety). Standalone binary resmi sudah berisi PHP 8.5, jadi untuk sebagian besar kasus kalian tidak perlu menginstall PHP terpisah — cukup binary FrankenPHP. Namun untuk mengembangkan aplikasi, kalian tetap butuh PHP + Composer lokal:

Install PHP dan Composer
sudo apt install php-cli php-zip php-curl   # Debian/Ubuntu
brew install php composer                   # macOS
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Docker (Opsional tapi Direkomendasikan)

Mulai episode 6 kita akan menjalankan Laravel/Symfony via image resmi dunglas/frankenphp. Install Docker terlebih dahulu:

Verifikasi Docker
docker --version
docker compose version

Install FrankenPHP 1.12.x

Cara tercepat adalah install script resmi. Untuk Linux dan macOS:

Install FrankenPHP via install script
curl https://frankenphp.dev/install.sh | sh

Untuk Windows (didukung penuh sejak 1.12.0), jalankan di PowerShell:

Install FrankenPHP di Windows
irm https://frankenphp.dev/install.ps1 | iex

Alternatif lain: Homebrew (brew install dunglas/frankenphp/frankenphp), paket .deb/.rpm/.apk dari maintainer resmi, atau image Docker dunglas/frankenphp. Kita bahas detail semua metode di episode 3.

Note

Standalone binary resmi sudah membundel PHP 8.5 sehingga tanpa PHP terpisah pun kalian bisa langsung menjalankan aplikasi dengan frankenphp php-server. PHP + Composer lokal hanya dibutuhkan saat menulis kode atau menjalankan composer install.

Verifikasi Environment

Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:

Verifikasi instalasi FrankenPHP
frankenphp version
frankenphp php-cli -v

frankenphp version harus mencetak versi 1.12.x (idealnya 1.12.7, rilis 6 Agustus 2026) beserta versi Caddy (2.11.x) dan PHP yang dibundel. frankenphp php-cli -v menampilkan versi PHP 8.5 — ini membuktikan interpreter PHP berjalan di dalam binary.

Sekarang uji server pertama. Buat direktori lab dan satu file PHP:

Hello world FrankenPHP
mkdir -p frankenphp-lab/public
echo '<?php echo "Hello FrankenPHP";' > frankenphp-lab/public/index.php
cd frankenphp-lab
frankenphp php-server

Buka http://localhost di browser (atau https://localhost — FrankenPHP membuat sertifikat lokal otomatis). Kalian akan melihat Hello FrankenPHP. Tekan Ctrl+C untuk menghentikan server.

Warning

Gunakan https://localhost, bukan https://127.0.0.1. FrankenPHP menerbitkan sertifikat internal untuk hostname localhost secara default; 127.0.0.1 membutuhkan konfigurasi tambahan (kita bahas di episode 10).

Struktur Proyek Lab yang Disarankan

Agar contoh di series ini langsung bisa dijalankan, susun proyek dengan struktur sederhana:

Struktur direktori proyek lab
frankenphp-lab/
  public/
    index.php
  Caddyfile        # dibuat mulai episode 3
  Dockerfile       # dibuat mulai episode 6

Ringkasan Prasyarat

Rangkuman yang sudah kalian siapkan di episode 0:

  • Skill: PHP & Composer, konsep web server/reverse proxy, dan HTTP dasar (request/response, keep-alive).
  • Runtime: PHP 8.5 (ZTS) di dalam binary FrankenPHP, PHP + Composer lokal untuk pengembangan.
  • Tool: FrankenPHP 1.12.x terinstall, Docker + Docker Compose siap (untuk episode 6+).
  • Lab: direktori frankenphp-lab/public/index.php dan uji frankenphp php-server berhasil.
  • Verifikasi: frankenphp version dan frankenphp php-cli -v berjalan tanpa error.

Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 24 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.

Penutup

Inti yang harus dibawa pulang:

  • FrankenPHP = Caddy (web server Go) + PHP ter-embedded dalam satu binary.
  • Wajib memahami PHP/Composer, konsep web server & reverse proxy, dan HTTP keep-alive.
  • Install FrankenPHP 1.12.x (idealnya 1.12.7) via install script atau Homebrew.
  • Verifikasi dengan frankenphp version dan uji hello world pertama.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan FrankenPHP — dari masalah PHP-FPM yang mem-bootstrap aplikasi ulang setiap request, munculnya app server modern seperti RoadRunner dan Swoole, hingga alasan FrankenPHP menjadi pilihan utama pada 2026 dengan dukungan Windows penuh dan PHP 8.5. Pastikan environment kalian sudah siap, karena perjalanan Belajar FrankenPHP baru saja dimulai!