Cara Upload Laravel ke Hosting Tanpa SSH (Lengkap & Mudah untuk Pemula)

Laravel adalah salah satu framework PHP paling populer karena struktur yang rapi, keamanan tinggi, dan fitur modern. Namun, kendala sering muncul ketika hosting tidak menyediakan akses SSH, terutama pada layanan shared hosting.

Pada artikel ini, Anda akan mempelajari cara upload Laravel ke hosting tanpa SSH secara lengkap, aman, dan praktis. Metode ini sangat cocok untuk pemula maupun penggunaan di sekolah, instansi, atau hosting lokal.


📌 Kenapa Hosting Shared Tidak Menyediakan SSH?

Sebagian besar shared hosting memiliki keterbatasan berikut:

  • Membatasi akses server demi keamanan
  • Ditujukan untuk pengguna non-teknis
  • Tidak mendukung command line

Akibatnya, beberapa perintah penting tidak bisa dijalankan langsung di server:

composer install
php artisan migrate
php artisan key:generate

Namun, Laravel tetap dapat dijalankan normal jika semua proses disiapkan dari lokal.


⚙️ Persiapan Sebelum Upload Laravel

Semua langkah berikut dilakukan di komputer lokal Anda.

1. Pastikan Project Laravel Berjalan

php artisan serve

Jika aplikasi berjalan normal, lanjut ke tahap berikutnya.


2. Install Dependency (WAJIB)

composer install

Catatan: Folder vendor wajib di-upload ke hosting karena server tidak bisa menjalankan Composer.


3. Generate APP_KEY

php artisan key:generate

Pastikan file .env berisi:

APP_KEY=base64:xxxxxxxxxxxxxxxx

📂 Struktur Folder Laravel di Hosting

Laravel menggunakan folder public sebagai root aplikasi, sedangkan di hosting root-nya adalah public_html.

Solusi terbaik adalah memisahkan struktur aplikasi dan public.


🚀 Langkah Upload Laravel Tanpa SSH

1. Upload Project ke Luar public_html

/laravel_app/
├── app
├── bootstrap
├── config
├── storage
├── vendor
├── .env

Folder ini tidak bisa diakses langsung dari browser sehingga lebih aman.


2. Pindahkan Folder public ke public_html

Isi folder public dipindahkan ke:

public_html/

Isi akhirnya:

  • index.php
  • .htaccess
  • assets (css, js, images)

3. Edit File index.php (PENTING)

Buka file public_html/index.php lalu ubah path:

require __DIR__.'/../laravel_app/vendor/autoload.php';
$app = require_once __DIR__.'/../laravel_app/bootstrap/app.php';

Sesuaikan nama folder laravel_app dengan project Anda.


⚙️ Konfigurasi File .env

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

Konfigurasi Database

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=nama_db
DB_USERNAME=user_db
DB_PASSWORD=password_db

🔐 Setting Permission Folder

  • storage → 755 atau 775
  • bootstrap/cache → 755 atau 775

Jika salah, biasanya akan muncul Error 500.


🗄️ Cara Setup Database Tanpa SSH

Opsi 1: Import via phpMyAdmin

  1. Export database dari localhost
  2. Import ke hosting melalui phpMyAdmin

Opsi 2: Manual SQL

Buat tabel langsung di phpMyAdmin jika struktur sederhana.


⚠️ Mengatasi Error Umum

Error 500

  • Path index.php salah
  • Permission folder salah
  • APP_KEY belum dibuat

Halaman Kosong

Aktifkan debug sementara:

APP_DEBUG=true

Cek log di:

storage/logs/laravel.log

📢 Apakah Cara Ini Aman?

Ya, aman.

  • Tidak melanggar kebijakan hosting
  • Struktur aplikasi tetap standar Laravel
  • Lebih aman karena core tidak di public

📊 Kesimpulan

  • Laravel tetap bisa berjalan tanpa SSH
  • Semua proses dilakukan di lokal
  • Struktur folder harus benar
  • Permission adalah faktor penting

Jika semua langkah dilakukan dengan benar, aplikasi Laravel Anda akan berjalan stabil, aman, dan siap digunakan di production.