Deploy Aplikasi Laravel ke Shared Hosting: Panduan Lengkap

Shared hosting adalah pilihan paling terjangkau untuk menayangkan aplikasi Laravel, tetapi banyak pemula tersandung karena strukturnya berbeda dengan localhost. Masalah paling umum...

Deploy Aplikasi Laravel ke Shared Hosting: Panduan Lengkap

Shared hosting adalah pilihan paling terjangkau untuk menayangkan aplikasi Laravel, tetapi banyak pemula tersandung karena strukturnya berbeda dengan localhost. Masalah paling umum: seluruh isi proyek terlihat publik, atau muncul layar putih tanpa pesan. Panduan ini menuntun Anda dari upload hingga aplikasi berjalan aman di cPanel, dengan penekanan pada dua kunci utama: mengarahkan document root ke folder public dan menyiapkan .env produksi dengan benar.

1. Siapkan Proyek Sebelum Upload

Sebelum menyalin apa pun, pastikan proyek lokal sudah rapi. Jalankan build aset front-end bila ada:

npm run build

Jangan sertakan folder vendor dan node_modules saat upload — keduanya besar dan bisa dibangun ulang di server. Kompres proyek menjadi satu file ZIP agar upload lebih cepat dan tidak ada file yang terlewat.

2. Upload dan Ekstrak lewat File Manager

Masuk ke cPanel, buka File Manager. Unggah ZIP ke folder di luar public_html, misalnya buat folder baru bernama laravel di direktori home, lalu ekstrak di sana. Menaruh kode aplikasi di luar public_html penting demi keamanan: hanya folder public yang boleh diakses publik.

3. Arahkan Document Root ke Folder public

Ini langkah paling krusial. Laravel dirancang agar hanya folder public yang menjadi akar web; sisanya (kode, konfigurasi, file .env) harus tersembunyi.

Jika Anda memakai domain utama, cara termudah adalah menyalin isi public ke public_html, lalu menyunting public_html/index.php agar menunjuk ke lokasi aplikasi:

require __DIR__.'/../laravel/vendor/autoload.php';

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Bila hosting Anda mendukung penggantian document root per domain (lewat menu Domains), lebih rapi mengarahkan langsung ke /home/user/laravel/public tanpa memindahkan file. Cara ini paling ideal karena satu deploy berikutnya cukup menimpa folder aplikasi tanpa menyentuh public_html, dan Anda terhindar dari duplikasi file yang mudah membingungkan. Pastikan setelah mengubah document root Anda menunggu beberapa menit hingga konfigurasi web server benar-benar diterapkan sebelum menguji domain.

4. Install Dependency dengan Composer

Buka menu Terminal di cPanel (atau SSH). Masuk ke folder aplikasi lalu jalankan Composer tanpa dependency development agar lebih ramping:

cd ~/laravel
composer install --optimize-autoloader --no-dev

Flag --no-dev melewati paket yang hanya dibutuhkan saat pengembangan, dan --optimize-autoloader mempercepat pemuatan class di produksi. Jika hosting tidak menyediakan terminal, sebagian penyedia punya tombol "Run Composer" di panel, atau Anda bisa upload folder vendor secara manual.

5. Siapkan File .env Produksi

Salin .env.example menjadi .env, lalu isi dengan pengaturan produksi. Tiga baris pertama menentukan keamanan aplikasi:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://domainanda.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=nama_database
DB_USERNAME=user_database
DB_PASSWORD=password_rahasia

Wajib: APP_DEBUG=false. Jika dibiarkan true, error apa pun akan menampilkan detail kode, path server, bahkan kredensial database kepada pengunjung. Isi kredensial database sesuai yang Anda buat di menu MySQL Databases cPanel.

6. Buat Application Key

Laravel butuh kunci enkripsi unik untuk mengamankan session dan data terenkripsi. Buat dengan:

php artisan key:generate

Perintah ini mengisi APP_KEY di .env. Tanpa key valid, Anda akan mendapat error "No application encryption key has been specified".

7. Jalankan Migrasi Database

Setelah database dan kredensial siap, buat seluruh tabel. Di produksi, Laravel meminta konfirmasi; lewati dengan --force:

php artisan migrate --force

Bila Anda punya data awal (seeder), jalankan php artisan db:seed --force.

8. Atur Izin Folder storage dan bootstrap/cache

Laravel perlu menulis ke dua folder ini untuk log, cache, dan file yang diunggah. Beri izin tulis:

chmod -R 775 storage bootstrap/cache

Jika aplikasi menampilkan gambar atau file upload, buat symbolic link dari storage ke public:

php artisan storage:link

Di sebagian shared hosting storage:link gagal karena batasan symlink; jika begitu, Anda bisa membuat link manual lewat File Manager atau menyalin foldernya.

9. Cache Konfigurasi dan Route untuk Kecepatan

Langkah terakhir mempercepat aplikasi dengan menggabungkan konfigurasi dan route menjadi satu file cache:

php artisan config:cache
php artisan route:cache
php artisan view:cache

Ingat: setiap kali Anda mengubah .env di kemudian hari, jalankan ulang php artisan config:cache, atau bersihkan dengan php artisan config:clear, agar perubahan terbaca.

Checklist Saat Muncul Masalah

  • Layar putih / error 500: cek storage/logs/laravel.log. Sementara set APP_DEBUG=true, perbaiki, lalu kembalikan ke false.
  • Seluruh file terlihat di URL: document root belum menunjuk ke public.
  • "Permission denied": izin storage atau bootstrap/cache belum 775.
  • Perubahan .env tidak berpengaruh: config cache lama masih aktif — jalankan config:clear.

Dengan sembilan langkah ini aplikasi Laravel Anda tayang aman di shared hosting: kode tersembunyi, debug mati, database termigrasi, dan konfigurasi ter-cache agar cepat. Simpan checklist di atas untuk mempercepat troubleshooting di deploy berikutnya.

Setelah Deploy: Optimasi dan Perawatan

Deploy bukan akhir, melainkan awal dari perawatan berkelanjutan. Setelah aplikasi live, jalankan optimasi cache konfigurasi, rute, dan tampilan agar performa maksimal di lingkungan produksi. Pastikan mode debug dimatikan supaya pesan error sensitif tidak bocor ke publik. Atur izin folder penyimpanan dan cache dengan benar agar aplikasi berjalan tanpa kendala. Siapkan pencadangan otomatis untuk basis data dan berkas penting, lalu uji proses pemulihannya. Pantau log error secara berkala untuk menangkap masalah sejak dini, dan perbarui dependensi demi menutup celah keamanan. Untuk trafik yang bertumbuh, pertimbangkan caching dan optimasi kueri agar situs tetap responsif. Dengan perawatan rutin setelah deploy, aplikasi di shared hosting pun dapat berjalan stabil, aman, dan cepat dalam jangka panjang.

Pertanyaan Umum (FAQ)

Apakah Laravel bisa di shared hosting? Bisa, selama memenuhi versi PHP dan ekstensi yang dibutuhkan. Arahkan document root ke folder public atau sesuaikan sesuai struktur hosting.

Kenapa muncul error setelah upload? Umumnya karena izin folder penyimpanan dan cache belum benar, atau file lingkungan belum dikonfigurasi. Periksa juga log untuk detailnya.

Perlukah menjalankan optimasi? Sangat disarankan. Cache konfigurasi, rute, dan tampilan mempercepat aplikasi secara signifikan di produksi.

Yudhi
Ditulis oleh
Yudhi
Founder & Lead Developer, GudangCode

Yudhi adalah founder GudangCode dan developer Laravel dengan pengalaman membangun puluhan sistem informasi bisnis siap pakai — mulai dari POS, HRIS, hingga aplikasi manajemen. Ia menulis panduan dan artikel di GudangCode untuk membantu developer Indonesia menjalankan, memahami, dan men-deploy source code Laravel dengan benar.

Laravel PHP MySQL Sistem Informasi Bisnis
Lihat semua artikel Yudhi
Mau source code & aplikasi lengkapnya?

Daftar gratis untuk mengunduh aplikasi bisnis, sistem informasi, dan source code Laravel siap pakai.

Daftar Gratis & Download
Laravel Deploy Hosting DevOps
📚 Free Learning Hub

Learn Coding for Free at DhieCoderWeb

Explore Laravel, PHP, JavaScript tutorials, source code, web development guides, and practical programming tips.

DhieCoderWeb
100+
Tutorials
Free
Learning
SEO
Tips
Visit Dhiecoderweb.com →

Dapatkan Akses Penuh Sekarang!

Bergabunglah menjadi member kami dan dapatkan akses eksklusif ke seluruh fitur unggulan aplikasi ini. Proses cepat, mudah, dan langsung bisa Anda gunakan.

Daftar Members Sekarang
Tim Support
Online
Isi data dulu untuk mulai chat:
Beri rating & testimoni sebelum menutup:
Live chat by gudangcode.com