Anda telah berhasil membangun aplikasi Laravel yang keren dan fungsional. Selamat! Tapi pekerjaan Anda belum selesai. Langkah selanjutnya yang tak kalah penting adalah deploy aplikasi tersebut ke hosting agar bisa diakses oleh dunia. Proses ini mungkin terlihat menakutkan bagi pemula, tapi jangan khawatir! Panduan lengkap dan mudah diikuti ini akan memandu Anda langkah demi langkah, dari persiapan hingga aplikasi Anda online dan siap digunakan. Mari kita mulai!
1. Persiapan Sebelum Deploy Aplikasi Laravel: Pastikan Semua Siap!
Sebelum Anda mulai mengunggah file dan mengatur konfigurasi, ada beberapa hal penting yang perlu dipersiapkan. Ini seperti mempersiapkan alat dan bahan sebelum membangun rumah. Tanpa persiapan yang matang, proses deploy bisa jadi berantakan dan memakan waktu lebih lama.
- Pilih Layanan Hosting yang Tepat: Ini adalah fondasi dari aplikasi Anda. Pilihlah hosting yang mendukung PHP (minimal versi 7.4, disarankan 8.1 atau lebih tinggi) dan database yang akan Anda gunakan (biasanya MySQL atau MariaDB). Pertimbangkan juga kapasitas penyimpanan, bandwidth, dan fitur-fitur lain yang ditawarkan. Beberapa penyedia hosting populer di Indonesia antara lain Niagahoster, IDCloudHost, DomaiNesia, dan Dewaweb. Sesuaikan dengan kebutuhan dan anggaran Anda. Pastikan juga hosting memiliki akses SSH.
- Siapkan Akun Hosting dan Akses cPanel/Panel Kontrol: Setelah memilih hosting, Anda akan mendapatkan akses ke cPanel atau panel kontrol lainnya. Panel ini akan menjadi tempat Anda mengelola file, database, dan pengaturan lainnya. Pastikan Anda memahami cara menggunakan panel kontrol yang Anda pilih.
- Siapkan Akun FTP atau SSH: FTP (File Transfer Protocol) atau SSH (Secure Shell) digunakan untuk mengunggah file aplikasi Laravel Anda ke server hosting. SSH lebih disarankan karena lebih aman. Jika Anda belum memiliki akun FTP atau SSH, buatlah melalui panel kontrol hosting Anda.
- Konfigurasi Database: Buat database baru di panel kontrol hosting. Catat nama database, username, dan password-nya. Informasi ini akan digunakan untuk konfigurasi koneksi database di aplikasi Laravel Anda.
- Pastikan Aplikasi Laravel Berjalan dengan Baik di Lokal: Sebelum di-deploy, pastikan aplikasi Anda berjalan tanpa masalah di local development environment. Uji semua fitur dan pastikan tidak ada error yang muncul. Ini akan menghemat waktu Anda dalam proses debug setelah aplikasi di-deploy.
2. Unggah File Aplikasi Laravel ke Hosting: Via FTP atau SSH?
Setelah semua persiapan selesai, langkah selanjutnya adalah mengunggah file aplikasi Laravel Anda ke server hosting. Ada dua cara utama untuk melakukan ini:
- Menggunakan FTP (File Transfer Protocol): FTP adalah cara yang lebih sederhana, tetapi kurang aman dibandingkan SSH. Anda memerlukan aplikasi FTP Client seperti FileZilla atau Cyberduck. Masukkan informasi host, username, dan password FTP Anda. Kemudian, upload semua file dan folder aplikasi Laravel Anda (kecuali folder
public) ke root directory atau subfolder yang Anda inginkan di server hosting. - Menggunakan SSH (Secure Shell): SSH lebih disarankan karena lebih aman. Anda memerlukan aplikasi SSH Client seperti PuTTY (untuk Windows) atau Terminal (untuk macOS/Linux). Setelah terhubung ke server melalui SSH, gunakan perintah
scpuntuk mengunggah file aplikasi Anda. Contoh:scp -r /path/ke/aplikasi/laravel user@host:/path/ke/tujuan. Anda juga bisa menggunakan Git jika repository aplikasi Laravel Anda berada di platform seperti GitHub atau GitLab. Clone repository tersebut ke server hosting menggunakan perintahgit clone.
Penting: Jangan unggah folder public aplikasi Laravel Anda ke root directory hosting. Kita akan membahas konfigurasi yang benar pada bagian selanjutnya.
3. Konfigurasi Aplikasi Laravel di Hosting: Langkah Krusial!
Setelah file aplikasi berhasil diunggah, konfigurasi adalah kunci agar aplikasi Laravel Anda bisa berjalan dengan benar di hosting. Bagian ini sangat penting dan sering menjadi sumber masalah jika tidak dilakukan dengan benar.
-
Konfigurasi
.env: File.envberisi informasi konfigurasi penting seperti koneksi database, API keys, dan pengaturan lainnya. Salin file.env.example(jika ada) menjadi.envdi server hosting. Kemudian, sesuaikan konfigurasi database dengan informasi yang telah Anda catat sebelumnya:DB_CONNECTION=mysql DB_HOST=127.0.0.1 # atau localhost jika database berada di server yang sama DB_PORT=3306 DB_DATABASE=nama_database_anda DB_USERNAME=username_database_anda DB_PASSWORD=password_database_andaPastikan juga untuk mengatur
APP_URLdengan URL aplikasi Anda (misalnya,https://domainanda.com).APP_URL=https://domainanda.comJangan lupa mengatur
APP_ENVmenjadiproduction:APP_ENV=production -
Konfigurasi
publicDirectory: Ini adalah bagian yang paling sering membingungkan. Folderpublicberisi file-file statis seperti CSS, JavaScript, dan gambar. Anda perlu mengarahkan web server (seperti Apache atau Nginx) untuk melayani file-file ini dari folderpublicaplikasi Laravel Anda.-
cPanel: Di cPanel, cari fitur “Domains” atau “Addon Domains”. Tambahkan domain Anda (jika belum ada) dan atur document root ke folder
publicaplikasi Laravel Anda. Contoh: Jika aplikasi Laravel Anda berada di/home/user/laravel-app, maka document root harus diatur ke/home/user/laravel-app/public. -
SSH: Jika Anda memiliki akses SSH dan server menggunakan Apache, Anda perlu mengedit file
.htaccessdi root directory hosting Anda (bukan di folderpublic). Tambahkan kode berikut:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>Pastikan
mod_rewritediaktifkan di server Apache Anda. Jika Anda menggunakan Nginx, Anda perlu mengedit file konfigurasi Nginx Anda. Contoh konfigurasi Nginx:server { listen 80; server_name domainanda.com; root /path/ke/aplikasi/laravel/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Sesuaikan dengan versi PHP Anda } location ~ /.ht { deny all; } }Restart server Apache atau Nginx setelah mengubah konfigurasi.
-
-
Jalankan Migrasi Database: Setelah konfigurasi database selesai, jalankan migrasi untuk membuat tabel-tabel yang diperlukan. Gunakan perintah berikut melalui SSH:
php artisan migrateJika Anda memiliki seeder untuk mengisi data awal, jalankan juga:
php artisan db:seed -
Generate Application Key: Aplikasi Laravel Anda memerlukan application key yang unik. Generate key menggunakan perintah berikut:
php artisan key:generate -
Optimasi Aplikasi (Production Environment): Optimasi penting untuk meningkatkan performa aplikasi di production environment. Jalankan perintah-perintah berikut:
php artisan config:cache php artisan route:cache php artisan view:cache php artisan optimize -
Set Permission Folder Storage: Laravel menyimpan file upload dan cache di folder
storage. Pastikan folder ini memiliki permission yang benar agar aplikasi dapat menulis ke folder tersebut. Ubah permission menjadi 775 atau 777 (tidak disarankan untuk production environment) menggunakan perintah berikut:chmod -R 775 storageSebaiknya, konsultasikan dengan penyedia hosting Anda untuk mengetahui permission yang paling sesuai untuk server mereka.
4. Memecahkan Masalah Umum Saat Deploy Laravel: Tips dan Trik
Proses deploy tidak selalu berjalan mulus. Berikut adalah beberapa masalah umum yang sering terjadi dan cara mengatasinya:
- “500 Internal Server Error”: Ini adalah error yang paling umum dan bisa disebabkan oleh banyak hal. Periksa log error di server Anda (biasanya di folder
storage/logs/laravel.log) untuk mengetahui penyebabnya. Pastikan konfigurasi database sudah benar, permission folderstoragesudah sesuai, dan tidak ada error sintaks di kode Anda. - “Class Not Found” atau “Undefined Function”: Pastikan semua dependency sudah terpasang. Jalankan perintah
composer installdi server hosting Anda. - “No Application Encryption Key Has Been Specified”: Generate application key menggunakan perintah
php artisan key:generate. - Masalah dengan Routing: Pastikan folder
publicdikonfigurasi dengan benar sebagai document root. Periksa juga file.htaccess(untuk Apache) atau konfigurasi Nginx Anda. - Website Lambat: Optimasi aplikasi Anda dengan caching, minifying CSS/JavaScript, dan mengoptimalkan query database.
5. Keamanan Aplikasi Laravel Setelah Deploy: Jangan Lengah!
Setelah aplikasi Anda online, keamanan adalah prioritas utama. Berikut adalah beberapa langkah yang perlu Anda lakukan untuk mengamankan aplikasi Laravel Anda:
- Gunakan HTTPS: Pastikan website Anda menggunakan HTTPS untuk mengenkripsi komunikasi antara browser dan server. Anda bisa mendapatkan sertifikat SSL gratis dari Let’s Encrypt.
- Lindungi File
.env: File.envberisi informasi sensitif seperti password database dan API keys. Pastikan file ini tidak bisa diakses secara publik. - Update Laravel dan Package Secara Rutin: Laravel dan package seringkali memiliki security patches. Selalu update ke versi terbaru untuk melindungi aplikasi Anda dari kerentanan keamanan.
- Gunakan Middleware untuk Otentikasi dan Otorisasi: Laravel menyediakan middleware yang memudahkan Anda untuk mengamankan route dan resource Anda.
- Validasi Semua Input: Pastikan semua input dari pengguna divalidasi untuk mencegah SQL injection dan cross-site scripting (XSS).
- Gunakan Content Security Policy (CSP): CSP membantu melindungi aplikasi Anda dari serangan XSS.
6. Otomatisasi Deployment dengan Tools: Lebih Efisien dan Terpercaya
Jika Anda sering melakukan deployment, pertimbangkan untuk menggunakan tools otomatisasi seperti:
- Envoyer: Envoyer adalah layanan deployment yang dirancang khusus untuk aplikasi Laravel. Ini menyediakan zero-downtime deployment, rollback, dan fitur-fitur lainnya.
- Deployer: Deployer adalah tool deployment PHP gratis dan open-source yang mendukung berbagai framework dan platform.
- GitHub Actions: GitHub Actions memungkinkan Anda untuk mengotomatiskan workflow deployment Anda langsung dari GitHub.
Dengan menggunakan tools otomatisasi, Anda bisa menghemat waktu dan mengurangi risiko kesalahan dalam proses deployment.
7. Monitoring Aplikasi Laravel Setelah Deploy: Jaga Performa dan Kestabilan
Setelah aplikasi di-deploy, penting untuk terus memantau performa dan kestabilannya. Gunakan tools monitoring seperti:
- Laravel Telescope: Telescope adalah debugger elegan untuk aplikasi Laravel. Ini menyediakan informasi tentang query database, cache, log, dan aktivitas lainnya.
- New Relic: New Relic adalah tool monitoring yang komprehensif yang menyediakan informasi tentang performa aplikasi, server, dan database.
- Sentry: Sentry adalah tool error tracking yang membantu Anda menemukan dan memperbaiki error di aplikasi Anda.
Dengan memantau aplikasi Anda secara teratur, Anda bisa mendeteksi masalah sejak dini dan mengambil tindakan yang diperlukan untuk menjaga performa dan kestabilan aplikasi.
8. Mengatasi Masalah Database saat Deploy Aplikasi Laravel
Masalah database bisa menjadi momok saat proses deploy. Berikut beberapa skenario dan solusinya:
- Koneksi ke Database Gagal: Periksa kembali informasi koneksi database di file
.env. Pastikan nama database, username, password, dan host sudah benar. Juga, pastikan server database (misalnya MySQL) berjalan dan dapat diakses dari server aplikasi. - Database Tidak Ditemukan: Pastikan database sudah dibuat di hosting. Gunakan fitur di cPanel atau panel kontrol hosting Anda untuk membuat database.
- Error Saat Migrasi: Periksa file migrasi Anda. Mungkin ada kesalahan sintaks atau logika di migrasi Anda. Pastikan juga semua dependency yang diperlukan sudah terpasang. Jika Anda mengalami error karena kolom sudah ada, pertimbangkan untuk menggunakan
Schema::hasColumn()untuk memeriksa keberadaan kolom sebelum menambahkannya. - Seed Data Gagal: Periksa file seeder Anda. Pastikan tidak ada data yang duplikat atau tidak valid. Gunakan juga model factories untuk menghasilkan data dummy yang konsisten.
9. Optimasi Performa Aplikasi Laravel Setelah Deploy ke Hosting
Setelah aplikasi berhasil di-deploy, langkah selanjutnya adalah memastikan performanya optimal. Berikut beberapa tips:
- Caching: Manfaatkan fitur caching Laravel. Gunakan cache untuk menyimpan data yang sering diakses, seperti hasil query database.
- Queues: Gunakan queues untuk memproses tugas-tugas berat di background, seperti mengirim email atau mengunggah file.
- Minify Assets: Minify CSS dan JavaScript Anda untuk mengurangi ukuran file dan mempercepat waktu muat halaman.
- Optimize Images: Kompres dan optimalkan gambar Anda untuk mengurangi ukuran file tanpa mengurangi kualitas visual yang signifikan.
- CDN: Gunakan Content Delivery Network (CDN) untuk mendistribusikan file statis Anda ke server yang berlokasi dekat dengan pengguna Anda.
- Gunakan Opcode Cache: Aktifkan opcode cache di server PHP Anda untuk mempercepat eksekusi kode PHP. OPcache adalah salah satu opsi yang populer.
10. Mengelola File dan Folder di Hosting untuk Aplikasi Laravel
Manajemen file dan folder yang tepat di hosting sangat penting untuk menjaga aplikasi Laravel Anda tetap teratur dan aman.
- Struktur Folder: Pastikan Anda memahami struktur folder Laravel. Folder
publicberisi file-file yang dapat diakses publik, seperti gambar, CSS, dan JavaScript. Folderstoragedigunakan untuk menyimpan file yang diunggah pengguna dan file cache. Foldervendorberisi dependency yang dikelola oleh Composer. - Permission: Atur permission yang tepat untuk file dan folder. Folder
storagedan subfoldernya harus dapat ditulis oleh server web. - Backup: Lakukan backup reguler terhadap file dan database Anda. Ini akan membantu Anda memulihkan aplikasi Anda jika terjadi masalah.
- Log Files: Periksa file log secara berkala untuk mengidentifikasi dan memecahkan masalah.
- Version Control: Gunakan version control (seperti Git) untuk melacak perubahan pada kode Anda dan memfasilitasi kolaborasi.
11. Memperbarui Aplikasi Laravel yang Sudah di-Deploy: Proses yang Terencana
Melakukan pembaruan (update) pada aplikasi Laravel yang sudah di-deploy memerlukan perencanaan yang matang untuk menghindari downtime atau masalah lainnya.
- Backup Terlebih Dahulu: Sebelum melakukan perubahan apapun, selalu lakukan backup terhadap file dan database Anda.
- Maintenance Mode: Aktifkan maintenance mode aplikasi Anda sebelum melakukan pembaruan. Ini akan menampilkan pesan sementara kepada pengguna bahwa situs sedang dalam perbaikan. Anda bisa mengaktifkan maintenance mode dengan perintah
php artisan down. - Pull Perubahan dari Repository: Pull perubahan terbaru dari repository Git Anda ke server hosting.
- Install Dependencies: Jalankan
composer installuntuk memperbarui dependency aplikasi Anda. - Migrasi Database (Jika Perlu): Jika ada perubahan pada struktur database, jalankan
php artisan migrate. - Cache Clearing: Clear cache konfigurasi, route, dan view dengan perintah
php artisan config:clear,php artisan route:clear, danphp artisan view:clear. Anda juga bisa menjalankanphp artisan cache:clearuntuk membersihkan cache secara umum. - Compile Assets (Jika Perlu): Jika ada perubahan pada file CSS atau JavaScript, compile asset Anda menggunakan Laravel Mix atau Vite.
- Deactivate Maintenance Mode: Setelah semua pembaruan selesai, nonaktifkan maintenance mode dengan perintah
php artisan up.
Dengan mengikuti langkah-langkah ini, Anda dapat meminimalkan risiko downtime dan memastikan pembaruan aplikasi Anda berjalan dengan lancar.
Kesimpulan: Deploy Aplikasi Laravel dengan Percaya Diri
Dengan panduan lengkap ini, Anda sekarang memiliki semua yang Anda butuhkan untuk deploy aplikasi Laravel Anda ke hosting dengan percaya diri. Ingatlah untuk selalu melakukan persiapan yang matang, konfigurasi dengan teliti, dan memantau aplikasi Anda secara teratur. Selamat mencoba dan semoga berhasil! Jangan ragu untuk kembali ke panduan ini jika Anda menemui masalah di kemudian hari. Dan yang terpenting, teruslah belajar dan bereksperimen! Dunia pengembangan web terus berkembang, dan selalu ada hal baru untuk dipelajari. Dengan dedikasi dan ketekunan, Anda akan menjadi developer Laravel yang handal.


