Cara Memindahkan Project Laravel dari Server Lokal ke Hosting cPanel

Memindahkan proyek Laravel dari lingkungan pengembangan lokal (seperti XAMPP, Laragon, atau Valet) ke hosting berbasis cPanel adalah proses penting saat kamu ingin aplikasi Laravel-mu bisa diakses publik melalui internet. Panduan ini akan membahas langkah-langkah detail untuk memindahkan aplikasi Laravel ke hosting shared (misalnya yang menggunakan cPanel), lengkap dengan pengaturan direktori, database, dan konfigurasi environment.

1. Persiapan Proyek Laravel di Lokal

Sebelum melakukan pemindahan, pastikan proyek Laravel kamu berjalan normal di server lokal. Lakukan pembersihan cache untuk menghindari error setelah deploy:

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

Kamu juga bisa menjalankan:

composer install --no-dev

untuk memastikan dependencies utama sudah siap.

2. Kompres File Proyek

Agar proses upload ke server lebih cepat dan rapi:

  1. Kompres seluruh folder proyek Laravel (kecuali node_modules/ dan vendor/ agar ukuran file tidak terlalu besar).

  2. Gunakan format ZIP agar mudah diekstrak di cPanel.

Contoh struktur sebelum dikompres:

my-laravel-app/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── .env
├── artisan
└── composer.json

3. Upload ke Hosting (cPanel)

A. Masuk ke cPanel

  • Login ke cPanel melalui URL seperti namadomain.com/cpanel

  • Gunakan File Manager untuk mengelola file

B. Upload dan Ekstrak ZIP

  • Arahkan ke folder public_html/

  • Upload file ZIP Laravel yang sudah kamu buat

  • Ekstrak file di dalam public_html/

Setelah ekstrak, idealnya file Laravel tidak langsung berada di public_html/, melainkan satu folder di atasnya. Kita akan atur struktur ini di langkah berikutnya.

4. Atur Struktur Direktori Laravel

Laravel menyimpan file publik (yang bisa diakses browser) di dalam folder public/. Namun, di hosting, file yang bisa diakses publik biasanya adalah public_html/. Maka kita harus memindahkan isi dari folder public/ ke public_html/.

Langkah-langkah:

  1. Masuk ke folder Laravel yang kamu ekstrak (misalnya my-laravel-app/)

  2. Buka folder public/ dan pindahkan semua isinya ke public_html/

  3. Edit file index.php di public_html/:

Ubah:

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

Menjadi:

require __DIR__.'/../my-laravel-app/vendor/autoload.php';
$app = require_once __DIR__.'/../my-laravel-app/bootstrap/app.php';

(Ganti my-laravel-app dengan nama folder Laravel kamu jika berbeda)

5. Upload Folder vendor/

Kamu bisa melakukan ini dengan dua cara:

A. Jika Hosting Mendukung SSH:

  • Login SSH ke server kamu

  • Navigasikan ke folder Laravel

  • Jalankan:

composer install --no-dev --optimize-autoloader

B. Jika Tidak Mendukung SSH:

  • Di lokal, jalankan:

composer install --no-dev
  • Kompres folder vendor/

  • Upload ke server (di folder Laravel), lalu ekstrak

6. Konfigurasi File .env

File .env adalah konfigurasi utama Laravel. Di hosting, kamu harus sesuaikan isinya, terutama bagian database:

Contoh konfigurasi:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:isi-key-kamu
APP_DEBUG=false
APP_URL=https://namadomain.com

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username_db
DB_PASSWORD=password_db

7. Set Izin Folder (Permissions)

Laravel membutuhkan akses tulis untuk beberapa folder:

  • storage/

  • bootstrap/cache/

Atur permissions ke 775 atau 755, tergantung kebutuhan:

chmod -R 775 storage
chmod -R 775 bootstrap/cache

Di cPanel, kamu bisa klik kanan pada folder >Change Permissions

8. Import Database

Jika kamu menggunakan database MySQL:

  1. Export database dari lokal (file .sql)

  2. Masuk ke cPanel >phpMyAdmin

  3. Buat database baru dan user

  4. Import file .sql ke database

  5. Pastikan koneksi database di .env sesuai dengan info di cPanel

9. Jalankan Migration atau Seeder (Opsional)

Jika kamu belum mengisi database secara manual, kamu bisa jalankan perintah ini jika SSH tersedia:

php artisan migrate
php artisan db:seed

Jika tidak ada SSH, kamu bisa buat script sementara untuk memanggil perintah artisan dari browser (jika perlu).

10. Cek Website

Akses domain kamu, misalnya:

https://namadomain.com

Jika semua langkah sudah benar, website Laravel-mu akan tampil normal seperti di localhost.

Troubleshooting Umum

MasalahSolusi
500 Internal Server ErrorCek storage/logs/laravel.log, pastikan file vendor/ dan .env sudah ada
404 Not FoundPastikan .htaccess di public_html/ tidak terhapus
Database tidak konekPeriksa konfigurasi .env dan izin user MySQL di cPanel
Blank PageAktifkan APP_DEBUG=true sementara untuk melihat pesan error

Memindahkan Laravel dari localhost ke hosting memang membutuhkan beberapa penyesuaian, terutama terkait struktur direktori dan konfigurasi file .env. Namun, setelah terbiasa, proses ini bisa dilakukan dengan sangat cepat. Dengan mengikuti langkah-langkah di atas, kamu bisa membuat aplikasi Laravel kamu go live dengan lancar.

Selamat hari raya idul fitri

0 Comments