Hosting di Dewaweb Banyak Untungnya!

Cara Upload Laravel ke cPanel: Panduan Langkah-demi-Langkah

Viewing
Untuk memudahkan melihat gambar pada browser, silahkan zoom in terlebih dahulu dengan perintah pada keyboard command dan + untuk pengguna mac dan untuk windows bisa gunakan perintah ctrl dan +

Happy reading, everyone! 😁🚀
Note
Project aplikasi Laravel yang menggunakan domain-utama dan Document root defaultnya berada di public_html, Data-data aplikasinya di pindahkan ke folder tersebut, dan buat file bernama .htaccess di dalam folder public_html. Klik link ini untuk lihat detailnya Deploy Laravel to cPanel.

Mengapa Laravel Sering Terlihat Sulit di Shared Hosting? 🤔

Banyak pengembang merasa kesulitan saat pertama kali mencoba mengdeploy aplikasi Laravel ke Shared Hosting cPanel biasa. Ini karena Laravel memiliki struktur folder yang spesifik, terutama direktori public yang harus menjadi Document Root (akar dokumen) agar aplikasi berjalan dengan aman dan benar.
Laravel to cPanel

1. Persiapan Awal (Requirements)

2.1 Persiapan Server
Gambar ini adalah tampilan user interface cPanel untuk requirement setup Domain dan PHP Version.

2. Persiapan Data-data Aplikasi / Proyek

Untuk mempermudah proses upload, kompres seluruh folder proyek Laravel Anda ke dalam format .zip. Pastikan Anda mengkompres isi folder utama proyek (dan pastikan untuk hidden file ikut terkompres). Ada berbagai cara untuk melakukan kompress folder atau file sepeti gambar di bawah ini.
2.1 Persiapan Server

3. Export Database

Untuk mengekspor database, Anda bisa menggunakan perintah mysqldump di terminal Local Komputer atau Laptop. Perintah ini akan menghasilkan file SQL yang berisi semua skema (struktur tabel) dan data dari database Anda.
2.1 Persiapan Server
Perintah yang terlihat pada gambar adalah:
mysqldump -u root -p laravel12 > laravel12 | gzip > laravel12.sql.gz
Setelah Anda menjalankan perintah ini dan memasukkan password dengan benar, sebuah file bernama laravel12.sql.gz akan dibuat di direktori tempat Anda menjalankan perintah tersebut. File ini siap untuk diimpor ke server cPanel Anda.

4. Preview Local

Sebelum memulai proses deployment ke cPanel, sangat penting untuk memastikan bahwa aplikasi Laravel Anda sudah berjalan dengan sempurna di lingkungan lokal. Seperti yang terlihat pada gambar, aplikasi Laravel sudah berhasil diakses melalui browser dengan URL http://127.0.0.1:8000 atau localhost.
2.1 Persiapan Server
Ini menunjukkan bahwa:
  1. Semua route dan controller berfungsi dengan baik.
  2. Koneksi ke database (jika ada) sudah berhasil.
  3. Tampilan (view) aplikasi sudah sesuai dengan yang diharapkan.
Jika aplikasi Anda sudah berfungsi dengan baik di lokal, Anda bisa melanjutkan ke langkah berikutnya dengan keyakinan bahwa masalah yang mungkin muncul setelah deployment bukanlah berasal dari kode inti aplikasi, melainkan dari konfigurasi server.

5. Upload Data

Unggah File Aplikasi ke cPanel, Setelah Anda mengkompresi proyek Laravel menjadi file .zip atau .tar.gz, langkah selanjutnya adalah mengunggahnya ke server cPanel.
2.1 Upload Data
Pada gambar ini data-data aplikasi di upload pada direktory nama-domain-anda atau nama-subdomain-anda tidak di dalam folder /public dikarenakan dari awal struktur data-data aplikasi laravel sudah terdapat folder /public sehingga nantinya akan di timpa isi untuk folder /public yang saat ini sudah ada pada di server.

6. Setup Struktur Folder

2.2 Setup Folder
Ekstrak dan Pindahkan data-data Aplikasi
  1. Di File Manager, klik kanan pada file arsip (misalnya, example-app.tar.gz) dan pilih Extract, Setelah proses ekstraksi selesai, sebuah folder baru (misalnya, example-app) akan muncul di direktori yang sama.
  2. Masuk ke dalam folder example-app.
  3. Pilih semua file dan folder yang ada di dalamnya, lalu klik Move di bagian atas menu.
  4. Pada dialog Move, ubah jalur destinasi menjadi direktori root domain Anda, yaitu nama folder domain / subdomain. Klik Move Files.
Note
Untuk project web aplikasi yang menggunakan domain-utama dan Document root defaultnya berada di public_html pindahkan data ke nama folder tersebut untuk data-data aplikasinya, dan buat file bernama .htaccess di dalam folder public_html. Klik link ini untuk lihat detailnya Laravel on cPanel.

7. Struktur Folder

Berikut ini adalah tampilan dari struktur folder data aplikasi.
2.3 Struktur Folder

8. Create Database di cPanel

Untuk setup database ini semua berada di halaman cPanel > Manage My Databases seperti gambar berikut :
2.4 Create Database
Membuat Database dan Pengguna (User) Setelah file aplikasi Anda terunggah, langkah selanjutnya adalah menyiapkan database yang akan digunakan oleh Laravel.
  1. Di menu utama cPanel, cari dan klik Manage My Databases. Pada bagian Create New Database, masukkan nama database yang Anda inginkan (misalnya, laravel12), lalu klik Create Database.
  2. Gulir ke bawah ke bagian Add New User. Masukkan nama pengguna (misalnya, laravel12) dan password yang kuat. Pastikan untuk mencatat nama database, nama pengguna, dan password karena Anda akan membutuhkannya untuk konfigurasi file .env Laravel.
  3. Setelah membuat pengguna, gulir ke bagian Add User to Database. Pilih pengguna yang baru saja Anda buat dari menu User dan database yang juga baru Anda buat dari menu Database, lalu klik Add.
  4. Pada halaman Manage User Privileges, centang kotak ALL PRIVILEGES untuk memberikan semua hak akses kepada pengguna tersebut. Setelah itu, klik Make Changes.
Database Anda kini sudah siap dan memiliki pengguna dengan hak akses penuh yang dapat digunakan oleh aplikasi Laravel Anda.

9. Konfigurasi File .env

File .env berisi semua konfigurasi penting untuk aplikasi Laravel Anda, seperti pengaturan database dan URL aplikasi.
2.5 Konfigurasi File .env
  1. Di File Manager, buka folder utama proyek Laravel Anda (misalnya, example-app).
  2. Cari file .env dan klik dua kali untuk membukanya di editor cPanel.
  3. Konfigurasi Aplikasi:
    • Pastikan APP_ENV disetel ke production.
    • Pastikan APP_URL disetel ke URL domain atau subdomain Anda, misalnya http://laravel.kimino.my.id.
  4. Konfigurasi Database:
    • Masukkan detail database yang telah Anda buat sebelumnya.
    • Isi DB_DATABASE dengan nama database Anda.
    • Isi DB_USERNAME dengan nama pengguna database Anda.
    • Isi DB_PASSWORD dengan kata sandi database Anda.
  5. Setelah semua perubahan selesai, klik Save Changes di pojok kanan atas untuk menyimpan file.
Setelah file .env dikonfigurasi dengan benar, aplikasi Anda akan tahu cara terhubung ke database dan beroperasi di lingkungan live.

10. Import Database

Setelah database dan pengguna berhasil dibuat, langkah selanjutnya adalah mengimpor data dari database lokal Anda ke server cPanel. Ada dua cara yang bisa Anda gunakan:

Metode 1: Impor Melalui phpMyAdmin

2.5 Konfigurasi File .env
  1. Di cPanel, cari dan klik phpMyAdmin.
  2. Di sisi kiri, pilih nama database yang telah Anda buat sebelumnya (misalnya, laravel12).
  3. Klik tab Import di bagian atas menu.
  4. Klik Choose File, lalu cari dan pilih file .sql yang telah Anda ekspor dari database lokal.
  5. Setelah file terpilih, klik Import di bagian bawah halaman.

Metode 2: Impor Melalui SSH (Terminal)

2.5 Konfigurasi File .env
  1. Buka Terminal di cPanel Anda.
  2. Unggah file .sql Anda ke direktori yang mudah diakses di server.
  3. Jalankan perintah berikut: gunzip < [nama_database.sql.gz] | mysql -u [username] -p [nama_database]
  4. Tekan Enter dan masukkan password database Anda saat diminta. Jika tidak ada pesan error, berarti impor berhasil.

Aplikasi Berhasil di-Deploy! 🎉

Selamat! Aplikasi Laravel Anda kini telah berhasil di-deploy dan dapat diakses secara online. Seperti yang terlihat pada gambar, URL aplikasi sudah mengarah ke subdomain Anda (https://laravel.kimino.my.id), dan halaman yang tadinya hanya bisa diakses di lokal sekarang sudah tampil di internet.
2.5 Final Result
Dan silahkan sesuaikan url pada script aplikasi Anda jika sebelumnya pada script masih ada url yg masih mengarah ke Local atau http://127.0.0.1:8000 ganti ke nama-domain-anda atau ke subdomain-anda. untuk /products atau /users atau lainnya biarkan saja yang di ganti hanya http://localhost atau http://127.0.0.1:8000

Langkah Opsional: Konfigurasi Lanjutan

Meskipun aplikasi sudah berhasil online, ada beberapa perintah Laravel yang mungkin perlu Anda jalankan di server untuk menyelesaikan konfigurasi. Anda bisa melakukannya melalui Terminal di cPanel (SSH) dan pastikan sudah berada di direktory data-data aplikasi berada.
  • Symbolic link: Agar file yang disimpan oleh aplikasi Laravel (misalnya hasil upload) bisa diakses publik lewat browser. Anda dapat membuat symbolic link dari terminal dan jalankan di path / Direktory root aplikasi:
    php artisan storage:link
  • Generate APP_KEY: Jika Anda tidak menyalin APP_KEY dari file .env lokal, Anda bisa membuatnya di server dengan perintah ini:
    php artisan key:generate
  • Migrasi Database: Jika Anda memiliki perubahan pada skema database, Anda dapat menjalankan migrasi dari terminal:
    php artisan migrate
  • Jalankan Seeder (jika ada): Untuk mengisi database dengan data awal, jalankan seeder:
    php artisan db:seed
Note
Pilih Document Root Domain pada cPanel yang menunjuk langsung ke folder /public, contoh:
  1. public_html/nama-folder-anda/public
  2. subdomain-anda/public Jika Document Root Domain tidak pada /public gunakan:
  3. folder terpisah dari public_html sehingga isi public_html adalah /public laravel anda. Link: Deploy Laravel to cPanel.
  4. buat folder baru di luar nama-subdomain-anda yg isinya data-data laravel anda kecuali /public, dan isi /public ini yg di pindahkan ke dalam folder nama-subdomain-anda
Ini adalah cara yang paling aman, paling efisien, dan paling sesuai dengan arsitektur keamanan Laravel.
Dengan langkah-langkah tambahan ini, aplikasi Laravel Anda akan benar-benar siap beroperasi secara penuh di lingkungan production.
Selamat berkarya!

Hosting di Dewaweb Banyak Untungnya!