Membangun aplikasi web yang keren dengan Laravel memang menyenangkan. Tapi, kesenangan itu belum lengkap kalau aplikasi kita belum bisa diakses oleh orang lain di internet, kan? Nah, itulah pentingnya proses deploy atau penyebaran aplikasi. Artikel ini akan membahas secara lengkap cara deploy aplikasi Laravel ke hosting, khususnya fokus pada konfigurasi server dan database. Kita akan bahas langkah demi langkah, mulai dari persiapan hingga aplikasi Laravel Anda bisa online dan berjalan dengan lancar. Jadi, siapkan kopi Anda dan mari kita mulai!
1. Persiapan Sebelum Deploy: Apa Saja yang Perlu Disiapkan?
Sebelum kita terjun ke proses deploy, ada beberapa persiapan yang perlu Anda lakukan. Persiapan ini penting untuk memastikan proses deploy berjalan lancar dan minim masalah.
- Kode Aplikasi Laravel: Pastikan kode aplikasi Laravel Anda sudah siap dan bebas dari bug kritikal. Lakukan pengujian menyeluruh di lingkungan lokal Anda. Gunakan version control seperti Git untuk melacak perubahan kode dan mempermudah kolaborasi.
- Hosting: Pilih penyedia hosting yang sesuai dengan kebutuhan aplikasi Anda. Pertimbangkan faktor-faktor seperti harga, kapasitas penyimpanan, bandwidth, dukungan PHP dan MySQL, serta kemudahan penggunaan. Pastikan hosting Anda mendukung versi PHP yang kompatibel dengan aplikasi Laravel Anda (minimal PHP 8.0).
- Akses ke Server Hosting: Anda akan membutuhkan akses ke server hosting untuk mengunggah file aplikasi dan melakukan konfigurasi. Biasanya, akses ini diberikan melalui cPanel, SSH, atau FTP. Pelajari cara menggunakan alat-alat ini.
- Database: Anda membutuhkan database MySQL (atau MariaDB) di server hosting untuk menyimpan data aplikasi Laravel Anda. Pastikan Anda sudah membuat database dan memiliki kredensial (nama database, username, dan password) yang valid.
- Domain: (Opsional) Jika Anda ingin aplikasi Laravel Anda diakses melalui nama domain tertentu (misalnya, aplikasiku.com), Anda perlu memiliki domain dan mengarahkannya ke server hosting Anda.
Rekomendasi Hosting:
Ada banyak penyedia hosting yang menawarkan layanan yang baik untuk aplikasi Laravel. Beberapa di antaranya yang populer adalah:
- Niagahoster: Hosting lokal dengan harga terjangkau dan dukungan pelanggan yang responsif.
- IDCloudHost: Pilihan lain dari Indonesia dengan fokus pada solusi cloud.
- Hostinger: Hosting internasional dengan harga yang kompetitif.
- DigitalOcean, Linode, Vultr: Lebih cocok untuk pengguna yang lebih berpengalaman dan membutuhkan kontrol penuh atas server.
2. Mengunggah Aplikasi Laravel ke Server Hosting
Setelah persiapan selesai, langkah selanjutnya adalah mengunggah aplikasi Laravel Anda ke server hosting. Ada beberapa cara untuk melakukannya:
- FTP (File Transfer Protocol): Cara klasik dan paling umum. Gunakan aplikasi FTP seperti FileZilla atau Cyberduck untuk menghubungkan ke server hosting dan mengunggah file aplikasi.
- cPanel File Manager: Jika hosting Anda menggunakan cPanel, Anda bisa menggunakan File Manager yang disediakan untuk mengunggah file aplikasi.
- SSH (Secure Shell): Cara yang lebih teknis dan direkomendasikan untuk pengguna yang lebih berpengalaman. Gunakan SSH untuk terhubung ke server hosting dan menggunakan perintah
scpataursyncuntuk mengunggah file aplikasi. - Git Deploy: Jika Anda menggunakan Git, Anda bisa mengkonfigurasi deployment pipeline otomatis menggunakan Git. Ini adalah cara yang paling efisien dan direkomendasikan untuk pengembangan aplikasi yang serius.
Langkah-langkah Mengunggah Aplikasi Laravel menggunakan FTP (contoh):
- Buka aplikasi FTP Anda (misalnya, FileZilla).
- Masukkan hostname, username, dan password server hosting Anda.
- Hubungkan ke server.
- Cari folder yang akan menjadi root aplikasi Laravel Anda. Biasanya, folder ini bernama
public_htmlatauwww. - Unggah semua file dan folder aplikasi Laravel Anda ke folder tersebut, kecuali folder
public. - Pindahkan isi folder
publicke folderpublic_html(atauwww).
Penting: Pastikan Anda mengunggah semua file aplikasi, termasuk file .env (yang berisi konfigurasi aplikasi).
3. Konfigurasi Database di Server Hosting: Membuat Koneksi yang Tepat
Setelah aplikasi Laravel diunggah, kita perlu mengkonfigurasi database agar aplikasi bisa terhubung dan menyimpan data.
- Membuat Database: Login ke cPanel atau panel kontrol hosting Anda dan cari bagian “Databases” atau “MySQL Databases”. Buat database baru dan catat nama database, username, dan password yang Anda buat.
- Import Database (Opsional): Jika Anda sudah memiliki data di database lokal Anda, Anda bisa mengexportnya dalam bentuk file
.sqldan mengimportnya ke database yang baru dibuat di server hosting. Gunakan phpMyAdmin atau alat sejenis untuk melakukan import.
Mengkonfigurasi File .env:
File .env berisi konfigurasi aplikasi Laravel, termasuk konfigurasi database. Edit file .env di server hosting Anda (bisa melalui cPanel File Manager atau SSH) dan sesuaikan pengaturan database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1 # Ganti dengan alamat host database (biasanya localhost atau 127.0.0.1)
DB_PORT=3306 # Port database (biasanya 3306)
DB_DATABASE=nama_database_anda
DB_USERNAME=username_database_anda
DB_PASSWORD=password_database_anda
Penjelasan:
DB_CONNECTION: Jenis database yang digunakan (biasanyamysql).DB_HOST: Alamat host database. Jika database berada di server yang sama dengan aplikasi Laravel, biasanya menggunakanlocalhostatau127.0.0.1. Jika database berada di server yang berbeda, Anda perlu menggunakan alamat IP server database.DB_PORT: Port database (biasanya 3306 untuk MySQL).DB_DATABASE: Nama database yang Anda buat.DB_USERNAME: Username untuk mengakses database.DB_PASSWORD: Password untuk mengakses database.
Penting: Jaga kerahasiaan file .env dan jangan pernah mengunggahnya ke public repository seperti GitHub.
4. Konfigurasi Server: Mengatur Direktori dan Hak Akses
Selain konfigurasi database, Anda juga perlu melakukan konfigurasi server agar aplikasi Laravel bisa berjalan dengan benar.
- Mengatur
Document Root: Pastikan document root server diarahkan ke folderpublicdi dalam direktori aplikasi Laravel Anda. Document root adalah folder yang akan diakses oleh pengunjung website. Ini bisa diatur melalui cPanel atau konfigurasi virtual host di server. - Mengatur Hak Akses: Berikan hak akses yang tepat ke folder
storagedanbootstrap/cacheagar aplikasi Laravel bisa menulis file ke folder tersebut. Biasanya, hak akses775atau777sudah cukup. Perhatian: Hak akses777memberikan akses baca, tulis, dan eksekusi ke semua pengguna, jadi gunakan dengan hati-hati dan hanya jika diperlukan. - Mengaktifkan Ekstensi PHP yang Dibutuhkan: Pastikan ekstensi PHP yang dibutuhkan oleh aplikasi Laravel Anda sudah aktif. Beberapa ekstensi yang umum dibutuhkan adalah
PDO,mbstring,openssl,tokenizer,xml,ctype, danjson. Anda bisa mengaktifkan ekstensi PHP melalui cPanel atau dengan mengedit filephp.ini.
Contoh Konfigurasi Virtual Host (Apache):
Jika Anda menggunakan Apache, Anda bisa mengkonfigurasi virtual host untuk mengarahkan domain ke aplikasi Laravel Anda. Berikut adalah contoh konfigurasi virtual host:
<VirtualHost *:80>
ServerName aplikasiku.com
DocumentRoot /path/ke/aplikasi/laravel/public
<Directory /path/ke/aplikasi/laravel/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Penjelasan:
ServerName: Nama domain yang akan diarahkan ke aplikasi Laravel.DocumentRoot: Direktori root aplikasi Laravel (folderpublic).<Directory>: Blok konfigurasi untuk direktoripublic.AllowOverride All: Memungkinkan penggunaan file.htaccessuntuk mengatur konfigurasi lebih lanjut.Require all granted: Memungkinkan semua pengguna untuk mengakses direktori.
5. Menjalankan Migrasi dan Seeder: Mempersiapkan Database
Setelah database terhubung, langkah selanjutnya adalah menjalankan migrasi dan seeder untuk membuat tabel dan mengisi data awal ke database.
- Menjalankan Migrasi: Gunakan perintah
php artisan migrateuntuk menjalankan migrasi. Perintah ini akan membuat tabel-tabel yang didefinisikan dalam file migrasi Anda. - Menjalankan Seeder: Gunakan perintah
php artisan db:seeduntuk menjalankan seeder. Perintah ini akan mengisi data awal ke tabel-tabel yang sudah dibuat.
Cara menjalankan perintah Artisan:
Untuk menjalankan perintah Artisan di server hosting, Anda perlu menggunakan SSH. Terhubung ke server menggunakan SSH dan masuk ke direktori aplikasi Laravel Anda. Kemudian, jalankan perintah php artisan migrate dan php artisan db:seed.
Contoh:
ssh username@server_address
cd /path/ke/aplikasi/laravel
php artisan migrate
php artisan db:seed
Penting: Pastikan Anda sudah mengkonfigurasi koneksi database dengan benar sebelum menjalankan migrasi dan seeder.
6. Mengatur APP_KEY: Menjamin Keamanan Aplikasi
APP_KEY adalah kunci enkripsi yang digunakan oleh aplikasi Laravel untuk mengamankan data. Pastikan Anda sudah mengatur APP_KEY di file .env. Jika belum, Anda bisa menjalankan perintah php artisan key:generate untuk menghasilkan APP_KEY baru.
Contoh:
php artisan key:generate
Perintah ini akan menghasilkan APP_KEY baru dan menyimpannya di file .env.
7. Mengaktifkan Production Mode: Optimasi Kinerja Aplikasi
Setelah aplikasi Laravel berhasil di-deploy, Anda perlu mengaktifkan production mode untuk mengoptimalkan kinerja aplikasi. Production mode akan menonaktifkan debug mode dan mengaktifkan caching, yang akan meningkatkan kecepatan aplikasi.
- Mengatur
APP_DEBUGkefalse: Edit file.envdan atur nilaiAPP_DEBUGkefalse. - Menjalankan Perintah Optimasi: Gunakan perintah
php artisan config:cache,php artisan route:cache, danphp artisan view:cacheuntuk membuat cache konfigurasi, route, dan view.
Contoh:
php artisan config:cache
php artisan route:cache
php artisan view:cache
8. Konfigurasi Cron Jobs (Jika Diperlukan): Menjadwalkan Tugas Otomatis
Jika aplikasi Laravel Anda memiliki tugas-tugas yang perlu dijalankan secara otomatis (misalnya, mengirim email secara berkala, membersihkan cache, dll.), Anda bisa menggunakan cron jobs.
- Mengatur Cron Jobs: Login ke cPanel atau panel kontrol hosting Anda dan cari bagian “Cron Jobs”. Tambahkan cron job baru yang menjalankan perintah
php artisan schedule:runsetiap menit.
Contoh Cron Job:
* * * * * php /path/ke/aplikasi/laravel/artisan schedule:run >> /dev/null 2>&1
Penjelasan:
* * * * *: Menunjukkan bahwa cron job akan dijalankan setiap menit.php /path/ke/aplikasi/laravel/artisan schedule:run: Perintah yang akan dijalankan.>> /dev/null 2>&1: Mengarahkan output dan error ke/dev/null, sehingga tidak akan disimpan.
9. Mengamankan Aplikasi Laravel: Langkah-langkah Penting
Setelah aplikasi Laravel berhasil di-deploy, penting untuk mengamankan aplikasi dari serangan hacker.
- Menggunakan HTTPS: Aktifkan HTTPS untuk mengenkripsi komunikasi antara browser dan server. Anda bisa menggunakan sertifikat SSL gratis dari Let’s Encrypt.
- Melindungi File
.env: Pastikan file.envtidak bisa diakses secara langsung melalui browser. - Melakukan Validasi Input: Validasi semua input dari pengguna untuk mencegah serangan SQL injection dan cross-site scripting (XSS).
- Menggunakan Middleware: Gunakan middleware untuk melindungi route dan mengotentikasi pengguna.
- Memantau Log Aplikasi: Pantau log aplikasi secara berkala untuk mendeteksi aktivitas mencurigakan.
- Update Laravel dan Package Secara Teratur: Selalu update Laravel dan package Anda ke versi terbaru untuk mendapatkan perbaikan keamanan.
10. Troubleshooting: Mengatasi Masalah yang Sering Terjadi Saat Deploy
Proses deploy tidak selalu berjalan mulus. Berikut adalah beberapa masalah yang sering terjadi dan cara mengatasinya:
- Error 500 (Internal Server Error): Biasanya disebabkan oleh kesalahan konfigurasi server, error di kode aplikasi, atau hak akses yang tidak tepat. Periksa log aplikasi untuk mengetahui penyebab error.
- Database Connection Error: Pastikan konfigurasi database di file
.envsudah benar dan database server berjalan dengan baik. - Permission Denied: Pastikan folder
storagedanbootstrap/cachememiliki hak akses yang tepat. - Class Not Found: Biasanya disebabkan oleh autoloading yang tidak berjalan dengan benar. Coba jalankan perintah
composer dump-autoload. - Website Tidak Menampilkan Apa-apa (Blank Page): Periksa log aplikasi dan pastikan document root server diarahkan ke folder
public.
11. Tips Tambahan untuk Deploy Aplikasi Laravel ke Hosting
- Gunakan Deployment Script: Buat deployment script untuk mengotomatiskan proses deploy. Ini akan menghemat waktu dan mengurangi risiko kesalahan.
- Gunakan Continuous Integration/Continuous Deployment (CI/CD): Integrasikan aplikasi Laravel Anda dengan CI/CD pipeline untuk mengotomatiskan proses testing, building, dan deployment.
- Gunakan Caching: Implementasikan caching untuk meningkatkan kinerja aplikasi. Laravel menyediakan berbagai macam metode caching, seperti file caching, database caching, dan Redis caching.
- Kompres File: Kompres file CSS dan JavaScript untuk mengurangi ukuran file dan mempercepat waktu loading halaman.
- Gunakan CDN (Content Delivery Network): Gunakan CDN untuk mendistribusikan aset statis (gambar, CSS, JavaScript) ke server yang berada di lokasi geografis yang berbeda. Ini akan mempercepat waktu loading halaman untuk pengguna di seluruh dunia.
12. Kesimpulan: Aplikasi Laravel Anda Siap Go Live!
Selamat! Anda telah berhasil mempelajari cara deploy aplikasi Laravel ke hosting dengan benar. Mulai dari persiapan, konfigurasi server dan database, hingga tips tambahan untuk optimasi dan keamanan. Dengan mengikuti langkah-langkah di atas, Anda bisa memastikan aplikasi Laravel Anda berjalan dengan lancar dan aman di server hosting. Jangan lupa untuk terus memantau aplikasi Anda dan melakukan update secara teratur untuk menjaga keamanan dan kinerjanya. Sekarang, aplikasi Laravel Anda siap untuk dinikmati oleh pengguna di seluruh dunia!









