Laravel adalah salah satu framework PHP paling populer berkat sintaksnya yang elegan dan ekosistem yang kuat. Banyak developer memilih Laravel untuk membangun aplikasi web modern. Namun, setelah aplikasi selesai dikembangkan di lokal, tahap selanjutnya adalah deploy ke server agar bisa diakses oleh publik. Salah satu cara terbaik untuk melakukannya adalah dengan menggunakan Virtual Private Server (VPS).
Artikel ini akan membahas langkah demi langkah bagaimana cara melakukan deploy aplikasi Laravel ke VPS berbasis Linux (Ubuntu). Panduan ini cocok bagi pemula yang ingin memindahkan proyek Laravel mereka dari lokal ke produksi.
Persiapan Awal
Sebelum memulai deploy, pastikan Anda sudah menyiapkan:
- Akun VPS aktif (misalnya dari DigitalOcean, Vultr, Linode, Dewabiz.com atau penyedia lainnya).
- Akses SSH ke VPS.
- Aplikasi Laravel sudah siap di lokal atau di repository GitHub/GitLab.
- Domain (opsional) jika ingin menghubungkan aplikasi ke nama domain.
Langkah 1: Update dan Instalasi Paket Dasar
Login ke VPS Anda via SSH:
ssh root@alamat-ip-vps
Lalu jalankan update sistem:
sudo apt update && sudo apt upgrade -y
Instal paket-paket dasar:
sudo apt install nginx php php-fpm php-mbstring php-xml php-bcmath php-curl php-mysql php-zip unzip git curl mysql-server -y
Langkah 2: Instal Composer
Laravel membutuhkan Composer untuk mengelola dependensinya:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Cek versi Composer:
composer --version
Langkah 3: Clone Aplikasi Laravel
Pindah ke direktori web server:
cd /var/www/
Clone proyek Laravel Anda dari GitHub:
git clone https://github.com/username/proyek-laravel.git laravelapp
cd laravelapp
Jika Anda mengunggah kode manual (tanpa Git), cukup unggah ke /var/www/laravelapp menggunakan SFTP atau SCP.
Langkah 4: Instal Dependensi Laravel
Jalankan perintah Composer untuk menginstal semua dependensi:
composer install
Langkah 5: Konfigurasi Environment
Salin file .env.example menjadi .env:
cp .env.example .env
Edit file .env untuk menyesuaikan dengan pengaturan database VPS:
nano .env
Contoh:
APP_NAME=LaravelApp
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://your-domain.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password_kuat
Langkah 6: Generate APP_KEY dan Migrasi Database
php artisan key:generate
php artisan migrate
Pastikan database sudah dibuat terlebih dahulu di MySQL:
mysql -u root -p
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password_kuat';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
Langkah 7: Set Izin Akses Folder
Laravel membutuhkan hak akses tertentu untuk direktori storage dan bootstrap/cache:
sudo chown -R www-data:www-data /var/www/laravelapp
sudo chmod -R 775 /var/www/laravelapp/storage
sudo chmod -R 775 /var/www/laravelapp/bootstrap/cache
Langkah 8: Konfigurasi Nginx
Buat file konfigurasi baru:
sudo nano /etc/nginx/sites-available/laravel
Isi dengan konfigurasi berikut:
server {
listen 80;
server_name your-domain.com; # atau alamat IP VPS
root /var/www/laravelapp/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Sesuaikan versi PHP Anda
}
location ~ /\.ht {
deny all;
}
}
Aktifkan konfigurasi dan restart Nginx:
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Langkah 9: (Opsional) Menggunakan SSL dengan Let’s Encrypt
Jika Anda menggunakan domain, amankan koneksi dengan HTTPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com
Langkah 10: Testing
Akses domain atau IP VPS Anda di browser. Jika semua langkah dilakukan dengan benar, aplikasi Laravel Anda kini live!
Kesimpulan
Melakukan deploy aplikasi Laravel ke VPS memberi Anda kontrol penuh atas server, keamanan, dan performa. Walaupun ada beberapa langkah teknis yang harus diikuti, proses ini sangat bermanfaat untuk proyek jangka panjang, terutama ketika Anda ingin menghindari keterbatasan shared hosting.
Dengan VPS, Anda bisa membangun sistem yang fleksibel, dapat diskalakan, dan siap untuk lingkungan produksi. Terapkan praktik keamanan seperti menggunakan SSH key, memperbarui sistem secara berkala, dan mengatur firewall untuk melindungi server Anda