Apa Itu FrankenPHP? Pengertian, Contoh dan Cara Installnya

Bagikan artikel ini 🫰🏻

Inovasi demi inovasi bermunculan untuk membuat proses development lebih efisien, cepat, dan fleksibel. Salah satu inovasi yang mulai menarik perhatian adalah FrankenPHP. Nama yang unik ini bukan hanya menarik dari segi istilah, tetapi juga dari sisi fungsionalitasnya. Bagi para developer, sysadmin, atau siapa saja yang tertarik di dunia web server dan PHP, mengenal FrankenPHP bisa menjadi langkah penting.

Sebelumnya kita sudah membahas apa itu swole, di panduan ini kita akan membahas secara lengkap apa itu FrankenPHP, pengertiannya, contoh penggunaannya, serta cara menginstalnya.

Pengertian FrankenPHP

FrankenPHP adalah sebuah web server modern yang dibangun di atas Caddy, dengan kemampuan untuk menjalankan PHP secara langsung tanpa harus bergantung pada server eksternal seperti Apache atau Nginx. Bisa dibilang, FrankenPHP menyatukan web server dan PHP dalam satu kesatuan yang seamless dan efisien.

Biasanya, dalam pengembangan aplikasi web menggunakan PHP, diperlukan web server seperti Apache atau Nginx dan interpreter PHP (biasanya melalui PHP-FPM). Namun dengan FrankenPHP, hal tersebut tidak lagi wajib. Ini karena PHP telah menjadi bagian integral dari server itu sendiri.

FrankenPHP diciptakan untuk memberikan pengalaman menjalankan aplikasi PHP yang lebih cepat, stabil, dan modern. Selain itu, FrankenPHP juga mendukung berbagai fitur canggih seperti:

  • Worker Mode (mirip seperti long-running PHP process)
  • HTTP/3
  • Built-in HTTPS (karena berbasis Caddy)
  • Eksekusi lebih cepat dan hemat resource
  • Hot reload untuk perubahan kode
  • Dan berbagai integrasi modern lainnya

Asal Nama “FrankenPHP”

Nama FrankenPHP diambil dari karakter fiksi Frankenstein, karena proyek ini menggabungkan berbagai bagian teknologi seperti PHP, Caddy, dan Go menjadi satu kesatuan yang “hidup”. Meskipun terdengar unik dan agak lucu, di balik nama itu ada teknologi yang sangat serius dan berpotensi besar untuk masa depan PHP modern.

Kelebihan FrankenPHP

Berikut beberapa keunggulan utama FrankenPHP dibandingkan dengan pendekatan tradisional:

  1. Tanpa PHP-FPM
    • Tidak perlu repot mengatur FPM pool, socket, dan sebagainya.
  2. Performa Tinggi
    • Karena PHP dijalankan langsung di dalam web server, prosesnya lebih cepat dan ringan.
  3. Mudah Digunakan
    • Caddy terkenal dengan kemudahan penggunaannya. FrankenPHP membawa semangat yang sama.
  4. Support Mode Worker
    • Bisa digunakan untuk aplikasi yang memerlukan worker jangka panjang, seperti WebSocket atau queue processing.
  5. HTTPS Otomatis
    • Berkat fitur bawaan dari Caddy, TLS dan HTTPS bisa langsung aktif tanpa konfigurasi rumit.

Contoh Penggunaan FrankenPHP

Bayangkan sebuah aplikasi web sederhana berbasis Laravel atau Symfony. Biasanya dibutuhkan Nginx/Apache + PHP-FPM untuk menjalankannya. Tapi dengan FrankenPHP, cukup dengan satu binary dan sedikit konfigurasi, aplikasi tersebut sudah bisa berjalan.

Contoh sederhana untuk menampilkan file PHP menggunakan FrankenPHP:

Buat file index.php:

<?php 
echo "Hello from FrankenPHP!";

Jalankan FrankenPHP dengan perintah:

frankenphp run index.php

Dan langsung bisa diakses melalui browser..

Untuk aplikasi seperti Laravel, FrankenPHP juga mendukung environment yang kompleks seperti .env, artisan, dan routing framework modern lainnya.

Cara Install FrankenPHP

Instalasi FrankenPHP cukup fleksibel, bisa menggunakan binary langsung, Docker, atau build dari source. Berikut beberapa cara instalasinya:

1. Install via Binary (Langsung)

FrankenPHP menyediakan binary untuk berbagai sistem operasi (Linux, macOS, dan Windows).

Langkah-langkah:

  1. Unduh binary dari GitHub:
    https://github.com/dunglas/frankenphp/releases
  2. Ekstrak dan simpan di folder yang diinginkan, misalnya /usr/local/bin.
  3. Ubah izin agar bisa dieksekusi: chmod +x /usr/local/bin/frankenphp
  4. Jalankan: frankenphp serve

2. Install Menggunakan Docker

Cara ini sangat disukai karena lebih praktis dan portabel.

Contoh Dockerfile untuk Laravel:

FROM dunglas/frankenphp

COPY . /app
WORKDIR /app

CMD ["serve", "--port=80"]

Lalu build dan jalankan:

docker build -t my-app .
docker run -p 8080:80 my-app

Akses aplikasi di http://localhost:8080.

3. Build dari Source

Untuk yang ingin menggunakan versi paling baru atau ingin customisasi:

  1. Pastikan sudah terinstal Go dan PHP source code.
  2. Clone repo: git clone https://github.com/dunglas/frankenphp.git
  3. Jalankan: make

FrankenPHP vs Stack Tradisional

FiturStack Tradisional (Apache/Nginx + PHP-FPM)FrankenPHP
PerformaLebih lambat karena overhead komunikasiLangsung, tanpa perantara
KonfigurasiKompleks, banyak file konfigurasiSederhana, cukup 1 file
HTTPSButuh sertifikat manualOtomatis dengan Caddy
Dukungan WorkerTerbatas (harus pakai tool tambahan)Native support
ScalabilityCukup baikLebih efisien dan cepat

Penutup

FrankenPHP adalah salah satu pengembangan aplikasi PHP. Dengan pendekatan yang menggabungkan web server dan PHP secara langsung, proses pengembangan menjadi lebih efisien dan ringan. Selain itu, dukungan terhadap fitur-fitur modern seperti HTTPS otomatis, worker mode, dan performa tinggi membuat FrankenPHP menjadi pilihan menarik untuk berbagai jenis proyek.

Demikian Panduan Apa Itu FrankenPHP? Pengertian, Contoh dan Cara Installnya, Semoga bermanfaat 🙂

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rata rata rating 0 / 5. Jumlah rate 0

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Artikel Terkait

Leave a Reply

Your email address will not be published. Required fields are marked *