Cara Deploy Laravel dengan FrankenPHP di VPS Ubuntu 24.04 LTS
Pengantar
Deploy aplikasi Laravel ke server adalah tahap penting sebelum aplikasi bisa digunakan oleh pengguna secara online. Biasanya, kita menggunakan kombinasi Nginx atau Apache dengan PHP-FPM. Namun sekarang ada alternatif modern dan lebih sederhana, yaitu FrankenPHP.
FrankenPHP adalah web server berbasis Caddy yang sudah terintegrasi langsung dengan PHP. Artinya, kita bisa menjalankan aplikasi Laravel tanpa konfigurasi rumit antara web server dan PHP-FPM.
Persiapan Awal
Sebelum mulai, pastikan Anda sudah memiliki:
- VPS Ubuntu 24.04 LTS
- Akses root atau user dengan sudo
- Domain (opsional, bisa pakai IP dulu)
- Project Laravel siap deploy (dari GitHub atau lokal)
Langkah - Langkah Deploy Laravel dengan FrankenPHP di Ubuntu 24.04 LTS
- Persiapan Sistem
Sebelum memulai instalasi, pastikan sistem Ubuntu 24.04 Anda sudah diperbarui:- Jalankan perintah berikut:
sudo apt update - Install paket dasar yang dibutuhkan:
sudo apt install -y zip unzip curl git software-properties-common
- Jalankan perintah berikut:
- Install PHP di Ubuntu 24.04
Untuk mendapatkan versi PHP terbaru, kita akan menggunakan repository Ondrej PHP.
- Tambahkan repository:
sudo add-apt-repository ppa:ondrej/php -y sudo apt update - Install PHP beserta ekstensi yang dibutuhkan:
sudo apt install php8.4 php8.4-cli php8.4-fpm php8.4-bz2 php8.4-curl php8.4-mbstring php8.4-intl php8.4-xml php8.4-zip php8.4-mysql php8.4-gd php8.4-bcmath -y - Cek versi PHP:
php -vJika muncul versi PHP 8.4, berarti instalasi berhasil.
- Tambahkan repository:
- Install Composer
- Download Composer:
curl -sS https://getcomposer.org/installer | php - Pindahkan Composer ke path system:
sudo mv composer.phar /usr/local/bin/composer - Cek versi Composer:
composer -V
- Download Composer:
- Install FrankenPHP di Ubuntu 24.04
- Download dan install FrankenPHP menggunakan script resmi:
curl https://frankenphp.dev/install.sh | sh - Setelah instalasi berhasil, FrankenPHP otomatis:
- Terinstall di:
/usr/bin/frankenphp - Membuat service systemd:
frankenphp.service - Menggunakan konfigurasi:
/etc/frankenphp/Caddyfile - Root web default:
/usr/share/frankenphp
- Terinstall di:
- Cek apakah FrankenPHP sudah terinstall:
frankenphp version
- Download dan install FrankenPHP menggunakan script resmi:
- Membuat Project Laravel
- Buat folder web root
sudo mkdir -p /var/www cd /var/www - Buat project Laravel baru:
cd /var/www composer create-project laravel/laravel laravel-app - Masuk ke folder project:
cd /var/www/laravel-app
- Buat folder web root
- Konfigurasi Environment Laravel
- Copy file environment:
cp .env.example .env php artisan key:generate - Edit file .env:
nano .env - Ubah bagian penting:
APP_NAME=LaravelApp APP_ENV=local APP_DEBUG=true APP_URL=http://IP-VPS DB_CONNECTION=null SESSION_DRIVER=file CACHE_STORE=file QUEUE_CONNECTION=sync -
Jika pakai database, atur:
DB_DATABASE=namadb DB_USERNAME=userdb DB_PASSWORD=passworddb - Generate key aplikasi:
php artisan key:generate
- Copy file environment:
- Atur Permission Folder Laravel
- Set permission folder:
sudo chown -R frankenphp:frankenphp /var/www/laravel-app sudo chmod -R 775 /var/www/laravel-app/storage /var/www/laravel-app/bootstrap/cache
- Set permission folder:
- Konfigurasi Caddyfile FrankenPHP untuk Laravel
- Edit file konfigurasi:
sudo nano /etc/frankenphp/Caddyfile - Ubah isinya menjadi:
:80 { root * /var/www/laravel-app/public php_server file_server }
- Edit file konfigurasi:
- Restart FrankenPHP Service
sudo systemctl restart frankenphp sudo systemctl status frankenphpPastikan statusnya: active (running)
- Buka browser dan akses Laravel:
http://IP-VPSOutput :

Jika muncul halaman welcome Laravel, berarti Laravel berhasil dijalankan menggunakan FrankenPHP.
Cara Setting Domain & HTTPS (SSL) Laravel dengan Reverse Proxy Nginx dan FrankenPHP di VPS Ubuntu 24.04
- Konfigurasi Domain DNS
Pastikan domain sudah diarahkan ke IP VPS Anda:- Masuk ke DNS Manager domain.
- Tambahkan record:
A record yourdomain.com -> IP_VPS A record www.yourdomain.com -> IP_VPS - Tunggu 1–5 menit hingga DNS aktif.
- Konfigurasi FrankenPHP di Port 8080 (Internal Server)
- Edit file Caddyfile:
sudo nano /etc/frankenphp/Caddyfile - Ubah konfigurasi menjadi:
:8080 { root * /var/www/laravel-app/public php_server file_server } - Restart FrankenPHP:
sudo systemctl restart frankenphp sudo systemctl status frankenphp - Pastikan FrankenPHP berjalan di port 8080.
Gunakan perintah berikut :
OUtput :sudo ss -tulnp | grep 8080
tcp LISTEN 0 4096 *:8080 *:* users:(("frankenphp",pid=17276,fd=6))
- Edit file Caddyfile:
- Install dan Konfigurasi Nginx sebagai Reverse Proxy
- Install Nginx:
sudo apt install nginx -y - Buat file konfigurasi domain:
sudo nano /etc/nginx/sites-available/laravel-frankenphp - Isi konfigurasi berikut:
server { listen 80; server_name yourdomain.com www.yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } - Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/laravel-frankenphp /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
- Install Nginx:
- Install SSL HTTPS dengan Let’s Encrypt (Certbot)
- Install Certbot:
sudo apt install certbot python3-certbot-nginx -y - Generate SSL untuk domain:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com - Pilih opsi redirect HTTP ke HTTPS (recommended).
- Jika berhasil akan muncul pesan SSL sukses terpasang.
- Install Certbot:
- Test Auto Renew SSL
- Jalankan perintah:
sudo certbot renew --dry-run - Jika tidak ada error, berarti auto renew aktif.
- Jalankan perintah:
- Update Konfigurasi Laravel untuk HTTPS
- Edit file .env:
nano /var/www/laravel-app/.env - Ubah APP_URL:
APP_URL=https://yourdomain.com APP_ENV=production APP_DEBUG=false - Clear cache Laravel:
cd /var/www/laravel-app php artisan config:clear php artisan cache:clear
- Edit file .env:
- Akses Laravel Menggunakan HTTPS
- Buka browser:
https://yourdomain.com - Jika halaman Laravel tampil dengan ikon gembok SSL, berarti konfigurasi domain dan HTTPS berhasil.

- Buka browser:
Kesimpulan
Deploy aplikasi Laravel menggunakan FrankenPHP di Ubuntu 24.04 LTS merupakan solusi modern yang menawarkan performa eksekusi kode jauh lebih cepat dan manajemen server yang jauh lebih ringkas dibandingkan konfigurasi LAMP stack tradisional. Dengan mengintegrasikan Nginx sebagai reverse proxy dan Let's Encrypt untuk keamanan SSL, infrastruktur web Anda tidak hanya memiliki skalabilitas tinggi, tetapi juga menjamin transmisi data yang aman melalui protokol HTTPS. Implementasi ini sangat ideal bagi pengembang yang menginginkan efisiensi maksimal dalam alur kerja deployment tanpa mengorbankan stabilitas sistem, sehingga aplikasi mampu menangani lonjakan trafik dengan latensi yang minimal


