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
.env
berisi konfigurasi sensitif aplikasi Anda, seperti koneksi database, API key, dan lain-lain. Jangan pernah mengunggah file.env
ke repositori publik seperti GitHub. Kita akan membahas cara yang aman untuk mengkonfigurasi file.env
di hosting shared nanti. - Optimasi Aplikasi: Lakukan optimasi sederhana pada aplikasi Anda, seperti melakukan
composer dump-autoload -o
untuk 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_html
atauwww
. - 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 install
di direktori aplikasi Laravel Anda. Kemudian, upload foldervendor
yang 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_exec
diaktifkan 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
.env
langsung ke hosting shared. - Buat File .env di Server: Buat file bernama
.env
di direktori aplikasi Laravel Anda di server hosting. - Edit File .env Melalui cPanel atau SSH: Edit file
.env
melalui cPanel File Manager atau SSH. Masukkan konfigurasi database, API key, dan lain-lain yang sesuai dengan konfigurasi hosting Anda. - Konfigurasi App Key: Setelah file
.env
dibuat, jalankan perintahphp artisan key:generate
di server untuk menghasilkan application key. Jika Anda tidak memiliki akses SSH, Anda bisa menambahkan barisAPP_KEY=YourRandomString
ke file.env
. PastikanYourRandomString
adalah 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
.htaccess
di direktori root hosting Anda (biasanyapublic_html
atauwww
) 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.php
di direktoripublic
. -
Konfigurasi Virtual Host (Jika Tersedia): Jika hosting Anda memungkinkan Anda untuk mengkonfigurasi virtual host, Anda bisa mengatur direktori root virtual host ke direktori
public
aplikasi 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.php
yang mungkin memerlukan izin 755. - Folder
storage
: Folderstorage
memerlukan izin khusus karena aplikasi Anda akan menulis data ke folder ini. Berikan izin 775 (rwxrwxr-x) ke folderstorage
dan 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 migrate
di 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 migrate
dan mengaksesnya melalui browser (hati-hati dengan keamanan!). - Seed Database (Opsional): Jika Anda ingin mengisi database dengan data awal, jalankan perintah
php artisan db:seed
melalui 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:run
setiap 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_DEBUG
menjaditrue
. - Perhatikan Keamanan: Jangan biarkan debug mode aktif di lingkungan production, karena bisa mengungkap informasi sensitif. Setelah selesai development, ubah kembali
APP_DEBUG
menjadifalse
.
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
.env
sudah dikonfigurasi dengan benar dan izin file sudah sesuai. - Class Not Found: Ini biasanya disebabkan oleh masalah autoloader Composer. Pastikan Anda sudah menjalankan
composer install
dancomposer dump-autoload -o
. - Database Connection Error: Pastikan konfigurasi database di file
.env
sudah 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_rewrite
sudah 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!