Cara Deploy Laravel dengan FrankenPHP di VPS Ubuntu 24.04 LTS

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

  1. 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
  2. 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 -v

      Jika muncul versi PHP 8.4, berarti instalasi berhasil.

  3. 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
  4. 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
    • Cek apakah FrankenPHP sudah terinstall:
      frankenphp version
  5. 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
  6. 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
  7. 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
  8. 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
      }
  9. Restart FrankenPHP Service
    sudo systemctl restart frankenphp
    sudo systemctl status frankenphp

    Pastikan statusnya: active (running)

  10. Buka browser dan akses Laravel:
    http://IP-VPS

    Output :

    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

  1. 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.
  2. 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 :
      sudo ss -tulnp | grep 8080
      OUtput :
      tcp   LISTEN 0      4096               *:8080            *:*    users:(("frankenphp",pid=17276,fd=6))
  3. 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
  4. 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.
  5. Test Auto Renew SSL
    • Jalankan perintah:
      sudo certbot renew --dry-run
    • Jika tidak ada error, berarti auto renew aktif.
  6. 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
  7. Akses Laravel Menggunakan HTTPS
    • Buka browser:
      https://yourdomain.com
    • Jika halaman Laravel tampil dengan ikon gembok SSL, berarti konfigurasi domain dan HTTPS berhasil.

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


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466