Laravel adalah framework PHP yang populer untuk membangun aplikasi web modern yang kuat dan terukur. Setelah Anda selesai mengembangkan aplikasi Laravel Anda, langkah selanjutnya adalah deploy aplikasi tersebut ke hosting agar dapat diakses oleh pengguna. Proses ini mungkin terlihat rumit pada awalnya, tetapi dengan panduan langkah demi langkah yang tepat, Anda akan dapat melakukannya dengan mudah. Artikel ini akan membahas secara rinci cara deploy aplikasi Laravel ke hosting, mulai dari persiapan hingga troubleshooting. Mari kita mulai!
1. Persiapan Sebelum Deploy Aplikasi Laravel: Pastikan Semuanya Siap!
Sebelum Anda melangkah lebih jauh ke proses deployment, ada beberapa persiapan penting yang perlu Anda lakukan. Persiapan ini akan memastikan proses deployment berjalan lancar dan aplikasi Anda berfungsi dengan baik di lingkungan hosting.
-
Memilih Layanan Hosting yang Tepat: Pilih layanan hosting yang sesuai dengan kebutuhan aplikasi Laravel Anda. Pertimbangkan faktor-faktor seperti harga, fitur, skalaabilitas, dan dukungan teknis. Pastikan hosting Anda mendukung PHP versi yang kompatibel dengan Laravel Anda (minimal PHP 7.3). Beberapa pilihan hosting populer untuk Laravel meliputi:
- Shared Hosting: Pilihan ekonomis untuk aplikasi kecil hingga menengah. Pastikan penyedia hosting Anda menawarkan akses SSH dan mendukung Composer.
- VPS (Virtual Private Server): Memberikan kontrol lebih besar atas server dan sumber daya. Cocok untuk aplikasi dengan trafik sedang hingga tinggi.
- Cloud Hosting: Skalaabilitas tinggi dan fleksibilitas yang luar biasa. Ideal untuk aplikasi yang membutuhkan sumber daya yang dinamis.
- Platform-as-a-Service (PaaS): Misalnya, Heroku, DigitalOcean App Platform, atau AWS Elastic Beanstalk. Menyederhanakan proses deployment dan manajemen aplikasi.
-
Mengonfigurasi
.env: File.envberisi konfigurasi sensitif aplikasi Anda, seperti koneksi database, API key, dan pengaturan lainnya. Pastikan Anda memiliki file.envyang dikonfigurasi dengan benar untuk lingkungan hosting Anda. Jangan pernah menyimpan file.envini di repository public Anda! -
Memeriksa Versi PHP dan Ekstensi: Pastikan server hosting Anda menjalankan versi PHP yang kompatibel dengan Laravel Anda dan mengaktifkan ekstensi PHP yang diperlukan. Ekstensi umum yang sering dibutuhkan antara lain:
bcmathCtypefileinfoJSONMbstringOpenSSLPDOTokenizerXML
-
Membuat Database: Buat database yang akan digunakan oleh aplikasi Laravel Anda di server hosting. Catat nama database, username, dan password untuk digunakan dalam file
.env.
2. Mengunggah Aplikasi Laravel ke Server Hosting: Beberapa Cara yang Bisa Dipilih
Ada beberapa cara untuk mengunggah aplikasi Laravel Anda ke server hosting. Pilihlah cara yang paling sesuai dengan akses dan preferensi Anda.
-
Menggunakan FTP/SFTP: Ini adalah cara yang paling umum, terutama jika Anda menggunakan shared hosting.
- Gunakan klien FTP seperti FileZilla untuk terhubung ke server hosting Anda.
- Unggah seluruh direktori aplikasi Laravel Anda ke direktori yang sesuai (biasanya
public_htmlatau subdirektori di dalamnya). Pastikan Anda tidak mengunggah direktorivendordan file.env(jika belum ada di server)! Kita akan membahas cara menginstalnya nanti.
-
Menggunakan Git: Jika Anda menggunakan Git untuk mengelola kode Anda, Anda dapat mengkloning repository Anda langsung ke server hosting.
- Pastikan Git terinstall di server hosting Anda.
- Gunakan perintah
git clone <repository_url>untuk mengkloning repository Anda ke direktori yang sesuai.
-
Menggunakan SSH dan SCP: Jika Anda memiliki akses SSH ke server hosting, Anda dapat menggunakan
scpuntuk menyalin file dari komputer lokal Anda ke server.- Gunakan perintah
scp -r <direktori_aplikasi> <user>@<host>:<direktori_tujuan>untuk menyalin seluruh direktori aplikasi.
- Gunakan perintah
3. Menginstal Dependencies dengan Composer: Langkah Wajib!
Setelah Anda mengunggah kode aplikasi Laravel Anda, langkah selanjutnya adalah menginstal dependencies menggunakan Composer.
-
Akses SSH: Terhubung ke server hosting Anda menggunakan SSH.
-
Navigasi ke Direktori Aplikasi: Gunakan perintah
cd <direktori_aplikasi>untuk masuk ke direktori tempat Anda mengunggah aplikasi Laravel Anda. -
Jalankan Composer Install: Jalankan perintah
composer installuntuk menginstal semua dependencies yang dibutuhkan oleh aplikasi Anda. Proses ini akan membaca filecomposer.jsondan mengunduh semua library yang diperlukan ke direktorivendor.- Jika Composer belum terinstall di server: Anda perlu menginstalnya terlebih dahulu. Unduh file
composer.phardari https://getcomposer.org/download/ dan ikuti petunjuk instalasinya. Setelah itu, Anda dapat menjalankan perintahphp composer.phar install.
- Jika Composer belum terinstall di server: Anda perlu menginstalnya terlebih dahulu. Unduh file
-
Membuat Key Aplikasi: Jalankan perintah
php artisan key:generateuntuk membuat key aplikasi. Key ini digunakan untuk mengenkripsi dan mendekripsi data sensitif.
4. Mengatur Konfigurasi Database: Menghubungkan Aplikasi ke Database
Setelah dependencies terinstall, Anda perlu mengonfigurasi koneksi database agar aplikasi Laravel Anda dapat terhubung ke database yang telah Anda buat.
-
Edit File
.env: Buka file.envmenggunakan editor teks dan ubah pengaturan berikut:DB_CONNECTION: Biasanyamysql.DB_HOST: Alamat host database Anda (biasanyalocalhostatau alamat IP server database).DB_PORT: Port database Anda (biasanya3306).DB_DATABASE: Nama database yang telah Anda buat.DB_USERNAME: Username untuk mengakses database.DB_PASSWORD: Password untuk mengakses database.
-
Migrasi Database: Jalankan perintah
php artisan migrateuntuk membuat tabel-tabel yang diperlukan dalam database Anda. Jika Anda memiliki seeders, Anda juga dapat menjalankannya dengan perintahphp artisan db:seed.
5. Mengatur Direktori public dan .htaccess: Agar Aplikasi Dapat Diakses
Langkah penting selanjutnya adalah mengarahkan server web ke direktori public di dalam direktori aplikasi Laravel Anda. Direktori ini berisi file index.php, yang merupakan titik masuk aplikasi.
-
Mengatur Document Root: Cara terbaik adalah mengatur document root server web (misalnya Apache atau Nginx) untuk menunjuk langsung ke direktori
publicaplikasi Laravel Anda. Cara ini biasanya dilakukan melalui konfigurasi virtual host di server Anda. Hubungi penyedia hosting Anda untuk mendapatkan bantuan tentang cara melakukan ini. -
Menggunakan
.htaccess(Alternatif jika tidak dapat mengubah Document Root): Jika Anda tidak dapat mengubah document root, Anda dapat menggunakan file.htaccessdi direktori utama aplikasi Laravel Anda untuk mengarahkan semua permintaan ke direktoripublic. Buat file.htaccess(jika belum ada) dan tambahkan kode berikut:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Valid Directory RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] # Handle Authorization Header <IfModule mod_headers.c> RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule> </IfModule>Pastikan mod_rewrite diaktifkan di server Apache Anda.
-
Mengatur Permissions: Pastikan direktori
storage(khususnyastorage/framework/cache,storage/framework/sessions, danstorage/framework/views) danbootstrap/cachememiliki izin tulis (biasanya775atau777). Perhatian: memberikan izin777dapat berpotensi menimbulkan risiko keamanan. Sebisa mungkin, gunakan775dan pastikan user web server memiliki akses ke direktori tersebut. Anda dapat menggunakan perintahchmodmelalui SSH:chmod -R 775 storage chmod -R 775 bootstrap/cache
6. Mengoptimalkan Aplikasi Laravel untuk Produksi: Meningkatkan Performa
Setelah aplikasi Anda berhasil di-deploy, ada beberapa langkah optimasi yang dapat Anda lakukan untuk meningkatkan performa aplikasi dan mengurangi penggunaan sumber daya.
-
Mengaktifkan Caching: Laravel menyediakan berbagai mekanisme caching yang dapat Anda manfaatkan untuk menyimpan data yang sering diakses, seperti hasil query database atau view yang sering digunakan.
- Konfigurasi driver cache di file
.env(CACHE_DRIVER). Pilihan umum meliputifile,redis, danmemcached. - Gunakan fungsi
Cache::remember()atauCache::rememberForever()untuk menyimpan data yang di-cache.
- Konfigurasi driver cache di file
-
Konfigurasi Antrian (Queues): Gunakan antrian untuk menangani tugas-tugas yang memakan waktu, seperti pengiriman email atau pemrosesan gambar. Ini akan mencegah aplikasi Anda menjadi lambat saat menangani permintaan yang berat.
- Konfigurasi driver antrian di file
.env(QUEUE_CONNECTION). Pilihan umum meliputidatabase,redis, dansqs. - Gunakan perintah
php artisan queue:workatauphp artisan queue:listenuntuk menjalankan antrian.
- Konfigurasi driver antrian di file
-
Mengoptimalkan Komposisi Aset: Gunakan Laravel Mix untuk mengkompilasi dan meminimalkan file CSS dan JavaScript Anda. Ini akan mengurangi ukuran file dan meningkatkan kecepatan pemuatan halaman.
- Jalankan perintah
npm installdannpm run productionuntuk mengkompilasi aset Anda.
- Jalankan perintah
-
Mengaktifkan Mode Produksi (Production Mode): Pastikan aplikasi Anda berjalan dalam mode produksi dengan mengatur
APP_DEBUG=falsedi file.env. Ini akan menonaktifkan pesan error yang detail dan meningkatkan performa. -
Melakukan Precompilation: Jalankan perintah berikut untuk melakukan precompilation:
php artisan config:cache: Membuat cache konfigurasi untuk mempercepat proses booting aplikasi.php artisan route:cache: Membuat cache rute untuk mempercepat proses routing.php artisan view:cache: Membuat cache view untuk mempercepat rendering view.
7. Mengatur Cron Jobs: Otomatisasi Tugas Terjadwal
Cron jobs memungkinkan Anda untuk menjalankan tugas-tugas tertentu secara otomatis pada interval waktu yang telah ditentukan. Ini berguna untuk tugas-tugas seperti membersihkan cache, mengirim email berkala, atau memproses data secara periodik.
-
Akses cPanel atau Panel Kontrol Hosting Lainnya: Sebagian besar penyedia hosting menyediakan antarmuka web (seperti cPanel) untuk mengelola cron jobs.
-
Buat Cron Job Baru: Tambahkan cron job baru yang menjalankan perintah Artisan Laravel Anda. Contohnya, untuk menjalankan perintah
php artisan schedule:runsetiap menit, Anda dapat menggunakan konfigurasi cron job berikut:* * * * * php /path/to/your/laravel/artisan schedule:run >> /dev/null 2>&1Ganti
/path/to/your/laravel/artisandengan path yang benar ke fileartisanaplikasi Anda. -
Definisikan Tugas Terjadwal di
app/Console/Kernel.php: Gunakan scheduler Laravel untuk mendefinisikan tugas-tugas yang perlu dijalankan secara terjadwal.
8. Troubleshooting Umum: Mengatasi Masalah Deployment
Meskipun Anda telah mengikuti semua langkah di atas, terkadang Anda mungkin menghadapi masalah saat melakukan deployment aplikasi Laravel. Berikut adalah beberapa masalah umum dan cara mengatasinya:
-
Halaman Blank atau Error 500:
- Periksa log error server (misalnya, di
/var/log/apache2/error.logatau di panel kontrol hosting Anda) untuk melihat pesan error yang spesifik. - Pastikan file
.envdikonfigurasi dengan benar dan database terhubung dengan benar. - Periksa permissions pada direktori
storagedanbootstrap/cache. - Pastikan versi PHP dan ekstensi PHP yang dibutuhkan sudah terinstall dan aktif.
- Periksa log error server (misalnya, di
-
Error “Class Not Found”:
- Pastikan Anda telah menjalankan
composer installuntuk menginstal semua dependencies. - Periksa namespace class yang error dan pastikan sudah benar.
- Coba jalankan
composer dump-autoloaduntuk memperbarui autoloader Composer.
- Pastikan Anda telah menjalankan
-
Error “No Application Encryption Key Has Been Specified”:
- Pastikan Anda telah menjalankan
php artisan key:generateuntuk membuat key aplikasi.
- Pastikan Anda telah menjalankan
-
Masalah dengan Asset (CSS, JavaScript):
- Pastikan Anda telah menjalankan
npm installdannpm run productionuntuk mengkompilasi aset Anda. - Periksa path ke aset di view Anda dan pastikan sudah benar.
- Coba hapus cache browser Anda.
- Pastikan Anda telah menjalankan
-
Permasalahan Izin Akses (Permissions): Periksa kembali izin akses ke direktori
storage,bootstrap/cache, dan direktori lain yang mungkin memerlukan izin tulis. Gunakanchmod -R 775atauchownuntuk menyesuaikan izin. Ingat, hindari penggunaan777jika memungkinkan.
9. Memantau Aplikasi Laravel Setelah Deployment: Jaga Performa dan Keamanan
Setelah aplikasi Anda berhasil di-deploy, penting untuk terus memantaunya untuk memastikan performa yang optimal dan keamanan yang terjaga.
-
Logging: Konfigurasikan logging yang tepat untuk mencatat error, warning, dan informasi penting lainnya. Gunakan driver logging yang sesuai (misalnya,
dailyataustack) dan atur level logging yang sesuai. -
Monitoring Performa: Gunakan alat pemantau performa seperti New Relic atau Blackfire.io untuk melacak waktu respon, penggunaan memori, dan metrik performa lainnya.
-
Keamanan: Terapkan praktik keamanan yang baik, seperti menggunakan validasi input, mencegah serangan SQL injection, dan memperbarui library dan framework Anda secara teratur. Gunakan middleware yang disediakan Laravel untuk mencegah serangan CSRF dan XSS.
-
Backup: Lakukan backup database dan kode aplikasi Anda secara berkala untuk mencegah kehilangan data jika terjadi masalah.
10. Kesimpulan: Siap Meluncurkan Aplikasi Laravel Anda!
Dengan panduan cara deploy aplikasi Laravel ke hosting langkah demi langkah ini, Anda seharusnya sudah siap untuk meluncurkan aplikasi Laravel Anda ke dunia. Ingatlah untuk selalu melakukan persiapan yang matang, mengikuti langkah-langkah dengan cermat, dan melakukan pemantauan secara berkala. Selamat mencoba dan semoga berhasil! Dengan aplikasi Laravel yang deploy dengan baik, Anda siap memberikan pengalaman terbaik bagi pengguna Anda. Jangan ragu untuk menjelajahi dokumentasi Laravel lebih lanjut untuk mempelajari fitur-fitur canggih lainnya yang dapat membantu Anda membangun aplikasi web yang luar biasa.

