Laravel, framework PHP yang elegan dan powerful, menjadi pilihan favorit para developer web. Tapi, membuat aplikasi itu satu hal, mendeploynya ke hosting agar bisa diakses publik adalah hal lain. Nah, jika Anda menggunakan hosting shared, panduan ini hadir untuk membantu Anda! Artikel ini akan memandu Anda langkah demi langkah tentang cara deploy Laravel ke hosting shared, memastikan aplikasi Anda berjalan lancar dan dapat diakses oleh semua orang. Jangan khawatir, kami akan menjelaskannya dengan bahasa yang mudah dipahami, bahkan jika Anda baru pertama kali berurusan dengan deployment.
1. Persiapan Sebelum Deploy: Memastikan Aplikasi Laravel Anda Siap Tempur
Sebelum kita mulai proses deploy, ada beberapa persiapan penting yang perlu dilakukan. Tujuannya adalah memastikan aplikasi Laravel Anda siap diunggah ke hosting dan berfungsi sebagaimana mestinya.
- Versi PHP: Pastikan hosting shared Anda mendukung versi PHP yang kompatibel dengan versi Laravel yang Anda gunakan. Cek dokumentasi Laravel untuk mengetahui versi PHP yang sesuai. Biasanya, versi PHP terbaru lebih disarankan karena menawarkan performa yang lebih baik dan fitur keamanan yang lebih canggih. Anda bisa mengecek versi PHP yang digunakan hosting Anda melalui cPanel atau menghubungi penyedia hosting.
- Database: Siapkan database di hosting shared Anda. Catat nama database, username, dan passwordnya. Anda akan membutuhkan informasi ini untuk konfigurasi aplikasi Laravel Anda. Biasanya, cPanel menyediakan fitur untuk membuat dan mengelola database MySQL atau MariaDB.
- File .env: File
.envberisi konfigurasi sensitif aplikasi Anda, seperti koneksi database, API key, dan lain-lain. Jangan pernah mengunggah file.envke repositori publik seperti GitHub. Kita akan membahas cara yang aman untuk mengkonfigurasi file.envdi hosting shared nanti. - Optimasi Aplikasi: Lakukan optimasi sederhana pada aplikasi Anda, seperti melakukan
composer dump-autoload -ountuk mengoptimalkan autoloader composer. Ini akan mempercepat waktu loading aplikasi Anda.
2. Mengunggah File Aplikasi Laravel ke Hosting Shared Melalui FTP/cPanel
Setelah persiapan selesai, langkah selanjutnya adalah mengunggah file aplikasi Laravel Anda ke hosting shared. Ada beberapa cara untuk melakukannya:
- FTP (File Transfer Protocol): Gunakan aplikasi FTP client seperti FileZilla, Cyberduck, atau Transmit. Masukkan hostname FTP, username, dan password yang diberikan oleh penyedia hosting Anda. Unggah semua file dan folder aplikasi Laravel Anda (kecuali folder
vendor) ke direktori yang sesuai di server. Biasanya, direktori ini bernamapublic_htmlatauwww. - cPanel File Manager: cPanel biasanya menyediakan fitur File Manager yang bisa Anda akses melalui browser. Anda bisa mengunggah file aplikasi Laravel Anda (dalam format ZIP) ke File Manager dan kemudian mengekstraknya di direktori yang sesuai.
Penting: Jangan mengunggah folder vendor. Folder ini akan kita instal nanti di server hosting.
3. Menginstal Dependencies Composer di Hosting Shared: Menggunakan SSH atau Workaround
Setelah file aplikasi Laravel diunggah, kita perlu menginstal dependencies Composer. Ini adalah bagian yang sedikit tricky, terutama jika hosting shared Anda tidak menyediakan akses SSH.
-
Akses SSH (Direkomendasikan): Jika hosting Anda menyediakan akses SSH, inilah cara terbaik dan termudah. Login ke server melalui SSH menggunakan terminal atau aplikasi SSH client seperti PuTTY. Navigasi ke direktori aplikasi Laravel Anda dan jalankan perintah
composer install. Ini akan menginstal semua dependencies yang dibutuhkan oleh aplikasi Anda. -
Tanpa Akses SSH (Workaround): Jika Anda tidak memiliki akses SSH, ada beberapa workaround yang bisa Anda coba:
-
Upload Folder
vendor: Di komputer lokal Anda, jalankancomposer installdi direktori aplikasi Laravel Anda. Kemudian, upload foldervendoryang dihasilkan ke hosting shared. Ini memakan waktu lebih lama dan tidak disarankan jika aplikasinya memiliki banyak dependencies. -
Gunakan Script PHP: Buat script PHP sederhana yang menjalankan perintah
composer install. Contoh script:<?php $output = shell_exec('composer install'); echo "<pre>$output</pre>"; ?>Unggah script ini ke hosting shared dan akses melalui browser. Hapus script ini setelah selesai menginstal dependencies karena berpotensi menjadi celah keamanan. Cara ini memerlukan fungsi
shell_execdiaktifkan di hosting Anda. Jika tidak, hubungi penyedia hosting untuk mengaktifkannya atau mencari solusi lain. -
Gunakan Tool Deployment Online: Beberapa tool deployment online menawarkan fitur untuk menjalankan perintah Composer di server hosting tanpa memerlukan akses SSH.
-
4. Konfigurasi File .env di Hosting Shared: Keamanan Data Anda Prioritas Utama
Seperti yang sudah disebutkan, file .env berisi informasi sensitif. Berikut cara mengkonfigurasinya dengan aman:
- Jangan Unggah File .env: Jangan mengunggah file
.envlangsung ke hosting shared. - Buat File .env di Server: Buat file bernama
.envdi direktori aplikasi Laravel Anda di server hosting. - Edit File .env Melalui cPanel atau SSH: Edit file
.envmelalui cPanel File Manager atau SSH. Masukkan konfigurasi database, API key, dan lain-lain yang sesuai dengan konfigurasi hosting Anda. - Konfigurasi App Key: Setelah file
.envdibuat, jalankan perintahphp artisan key:generatedi server untuk menghasilkan application key. Jika Anda tidak memiliki akses SSH, Anda bisa menambahkan barisAPP_KEY=YourRandomStringke file.env. PastikanYourRandomStringadalah string acak yang panjang dan unik. - Environment Variables di cPanel (Alternatif): Beberapa penyedia hosting menyediakan fitur untuk mengelola environment variables langsung melalui cPanel. Ini adalah cara yang lebih aman dan terstruktur untuk mengkonfigurasi aplikasi Anda. Anda bisa menambahkan dan mengedit environment variables seperti
APP_DEBUG,DB_HOST,DB_USERNAME, dan lain-lain melalui cPanel.
5. Konfigurasi Direktori public Laravel: Mengarahkan Web Server
Secara default, web server (seperti Apache atau Nginx) akan mencari file index.php di direktori root. Namun, Laravel menempatkan file index.php di direktori public. Kita perlu mengkonfigurasi web server untuk mengarahkan ke direktori public.
-
Menggunakan .htaccess (Untuk Apache): Buat atau edit file
.htaccessdi direktori root hosting Anda (biasanyapublic_htmlatauwww) dan 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] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>Kode ini akan mengarahkan semua permintaan ke file
index.phpdi direktoripublic. -
Konfigurasi Virtual Host (Jika Tersedia): Jika hosting Anda memungkinkan Anda untuk mengkonfigurasi virtual host, Anda bisa mengatur direktori root virtual host ke direktori
publicaplikasi Laravel Anda. Ini adalah cara yang lebih elegan dan efisien daripada menggunakan.htaccess.
6. Mengatur Izin File dan Folder: Keamanan dan Aksesibilitas
Pastikan file dan folder aplikasi Laravel Anda memiliki izin yang tepat. Ini penting untuk keamanan dan memastikan aplikasi Anda dapat membaca dan menulis file yang dibutuhkan.
- Direktori: Berikan izin 755 (rwxr-xr-x) ke semua direktori.
- File: Berikan izin 644 (rw-r–r–) ke semua file, kecuali file
index.phpyang mungkin memerlukan izin 755. - Folder
storage: Folderstoragememerlukan izin khusus karena aplikasi Anda akan menulis data ke folder ini. Berikan izin 775 (rwxrwxr-x) ke folderstoragedan semua subfoldernya. Anda bisa melakukannya melalui FTP client atau SSH.
7. Migrasi Database: Membuat Struktur Database yang Dibutuhkan
Setelah aplikasi dan konfigurasi selesai, kita perlu membuat struktur database yang dibutuhkan oleh aplikasi Anda.
- Import SQL File: Jika Anda memiliki file SQL yang berisi struktur database Anda, Anda bisa mengimportnya melalui phpMyAdmin di cPanel.
- Jalankan Migrasi: Jika Anda menggunakan migrasi Laravel, jalankan perintah
php artisan migratedi server melalui SSH. Ini akan membuat tabel-tabel yang dibutuhkan oleh aplikasi Anda. Jika Anda tidak memiliki akses SSH, Anda bisa membuat route atau controller yang menjalankan perintahphp artisan migratedan mengaksesnya melalui browser (hati-hati dengan keamanan!). - Seed Database (Opsional): Jika Anda ingin mengisi database dengan data awal, jalankan perintah
php artisan db:seedmelalui SSH.
8. Mengatur Cron Jobs: Otomatisasi Tugas Rutin
Laravel menggunakan cron jobs untuk menjalankan tugas-tugas terjadwal, seperti mengirim email, membersihkan data, atau melakukan proses batch.
- Akses Cron Jobs di cPanel: cPanel biasanya menyediakan fitur untuk mengatur cron jobs.
- Tambahkan Cron Job: Tambahkan cron job yang menjalankan perintah
php artisan schedule:runsetiap menit. Ini akan memicu scheduler Laravel untuk menjalankan tugas-tugas terjadwal. - Pastikan PHP CLI Path Benar: Pastikan Anda menggunakan path yang benar untuk PHP CLI (Command Line Interface) di cron job. Anda bisa menemukan path ini di cPanel atau dengan menghubungi penyedia hosting.
9. Mengaktifkan Debug Mode (Hanya untuk Development): Menemukan dan Memperbaiki Kesalahan
Saat dalam tahap development, penting untuk mengaktifkan debug mode agar Anda bisa melihat pesan error yang detail.
- Ubah APP_DEBUG ke true: Di file
.env, ubah nilaiAPP_DEBUGmenjaditrue. - Perhatikan Keamanan: Jangan biarkan debug mode aktif di lingkungan production, karena bisa mengungkap informasi sensitif. Setelah selesai development, ubah kembali
APP_DEBUGmenjadifalse.
10. Troubleshooting Umum: Mengatasi Masalah yang Sering Terjadi
Berikut beberapa masalah yang sering terjadi saat deploy Laravel ke hosting shared dan cara mengatasinya:
- White Screen atau Error 500: Ini biasanya disebabkan oleh kesalahan konfigurasi, error kode, atau masalah izin file. Periksa log error di cPanel atau melalui SSH untuk mengetahui penyebabnya. Pastikan file
.envsudah dikonfigurasi dengan benar dan izin file sudah sesuai. - Class Not Found: Ini biasanya disebabkan oleh masalah autoloader Composer. Pastikan Anda sudah menjalankan
composer installdancomposer dump-autoload -o. - Database Connection Error: Pastikan konfigurasi database di file
.envsudah benar (host, username, password, database name). - Internal Server Error (500): Ini bisa disebabkan oleh banyak hal. Periksa log error di cPanel atau melalui SSH untuk mengetahui penyebabnya.
- .htaccess Tidak Berfungsi: Pastikan module
mod_rewritesudah aktif di server Apache. Hubungi penyedia hosting untuk mengaktifkannya jika belum aktif.
11. Tips dan Trik Tambahan: Meningkatkan Performa dan Keamanan
- Gunakan Caching: Manfaatkan fitur caching Laravel untuk mempercepat waktu loading aplikasi Anda.
- Gunakan CDN (Content Delivery Network): CDN dapat membantu mendistribusikan aset statis aplikasi Anda (gambar, CSS, JavaScript) ke server yang lebih dekat dengan pengguna, sehingga mempercepat waktu loading.
- Kompres Gambar: Optimalkan ukuran gambar untuk mengurangi bandwidth dan mempercepat waktu loading.
- Monitor Log: Pantau log aplikasi Anda secara berkala untuk mendeteksi dan mengatasi masalah sedini mungkin.
- Gunakan HTTPS: Aktifkan HTTPS untuk mengenkripsi komunikasi antara browser pengguna dan server Anda.
12. Kesimpulan: Sukses Deploy Laravel Anda!
Selamat! Dengan mengikuti panduan ini, Anda seharusnya sudah berhasil deploy Laravel ke hosting shared Anda. Ingatlah untuk selalu memperhatikan keamanan dan melakukan backup data secara berkala. Jika Anda mengalami masalah, jangan ragu untuk mencari bantuan di forum Laravel atau komunitas online lainnya. Dengan sedikit ketekunan dan perhatian, Anda akan bisa membuat aplikasi Laravel Anda berjalan lancar dan dapat diakses oleh semua orang. Semoga sukses!




