Deployment Aplikasi Laravel

Apa Itu Deployment Laravel?
Deployment Laravel adalah proses memindahkan aplikasi Laravel dari lingkungan pengembangan ke lingkungan produksi, sehingga dapat diakses oleh pengguna secara online.
Mengapa Deployment Penting?
Deployment sangat penting untuk memastikan aplikasi berjalan stabil, aman, dan optimal di server produksi. Dengan deployment yang baik, aplikasi dapat diakses dengan cepat dan tanpa hambatan.
Persiapan Sebelum Deployment
Memilih Server yang Tepat
Sebelum deployment, pastikan memilih server yang sesuai seperti:
- Shared Hosting (cocok untuk proyek kecil)
- VPS atau Dedicated Server (lebih fleksibel dan kuat)
- Cloud Hosting (AWS, DigitalOcean, Linode, dll.)
Instalasi Dependensi
Pastikan server memiliki:
- PHP (versi yang kompatibel dengan Laravel)
- Composer
- MySQL/PostgreSQL
- Node.js (jika menggunakan frontend dengan Laravel Mix)
Konfigurasi Environment (.env)
Sesuaikan file .env
dengan kredensial server, termasuk:
APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=nama_database
DB_USERNAME=user
DB_PASSWORD=password
Metode Deployment Laravel
Deployment Manual
- Upload file Laravel via FTP atau SSH
- Jalankan
composer install --no-dev --optimize-autoloader
- Jalankan migration
php artisan migrate --force
Deployment Menggunakan Git
- Push kode ke GitHub/GitLab
- Clone repository di server
- Jalankan
git pull origin main
- Jalankan
composer install
- Jalankan
php artisan migrate
Deployment dengan Laravel Forge atau Envoyer
- Laravel Forge: Mengelola server secara otomatis
- Envoyer: Zero-downtime deployment untuk Laravel
Konfigurasi Server
Setup Apache/Nginx untuk Laravel
Pastikan konfigurasi server mendukung Laravel, contoh untuk Nginx:
server {
listen 80;
server_name domain.com;
root /var/www/html/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
Konfigurasi Database
- Buat database dan sesuaikan
.env
- Jalankan
php artisan migrate
Menggunakan Supervisor untuk Queue Jobs
Jika aplikasi menggunakan queue, gunakan Supervisor:
[program:laravel-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --tries=3
Menjalankan Proses Deployment
Upload File ke Server
- Gunakan SCP, FTP, atau Git untuk upload file aplikasi ke server
Menjalankan Migration dan Seeder
php artisan migrate --force
php artisan db:seed --force
Clearing Cache dan Config
php artisan config:cache
php artisan route:cache
php artisan view:cache
Keamanan dan Optimasi
Mengamankan File dan Direktori
- Set permission yang tepat:
chmod -R 755 /var/www/html
chmod -R 775 storage bootstrap/cache
Menggunakan SSL dan HTTPS
- Install SSL dengan Let's Encrypt atau Cloudflare
- Redirect HTTP ke HTTPS di server
Optimasi Performa Laravel
- Gunakan caching (Redis, Memcached)
- Aktifkan
OPcache
- Gunakan queue untuk tugas berat
Kesimpulan
Deployment Laravel memerlukan perencanaan dan konfigurasi yang tepat agar aplikasi berjalan optimal di server produksi. Dengan memahami proses deployment, kita bisa memastikan aplikasi tetap aman dan responsif.
FAQ
1. Apa perbedaan antara shared hosting dan VPS untuk Laravel?
Shared hosting cocok untuk proyek kecil, sementara VPS memberikan fleksibilitas dan performa lebih baik untuk aplikasi besar.
2. Bagaimana cara menghindari downtime saat deployment?
Gunakan Laravel Envoyer atau strategi blue-green deployment.
3. Bagaimana cara menangani error setelah deployment?
Periksa file log di storage/logs/laravel.log
dan gunakan php artisan config:clear
.
4. Apakah perlu menggunakan supervisor untuk queue?
Ya, jika aplikasi menggunakan job queue, Supervisor membantu menjaga proses tetap berjalan.
5. Apa saja langkah keamanan setelah deployment?
- Nonaktifkan debug mode
- Gunakan HTTPS
- Atur permission file dengan benar
- Batasi akses ke folder
storage
danbootstrap/cache
Posting Komentar