Cara Install Laravel 12 di cPanel Hosting 

by | Aug 20, 2025

Cara Install Laravel 12 di cPanel Hosting 

Ringkasan

  1. Aktifkan PHP 8.3+ dan OPcache.
  2. Request shell access ke team support antmediahost, pastikan kamu memiliki paket hosting dengan fitur ini
  3. Upload ZIP atau clone via Git.
  4. Arahkan document root ke public (atau pakai metode public_html).
  5. Buat database + user, isi .env.
  6. Jalankan key:generate, migrate --force, storage:link.
  7. Tambahkan cron schedule:run (per menit).
  8. Aktifkan cache (config/route/view) dan OPcache.

Daftar Isi

  1. Prasyarat
  2. Set PHP & Ekstensi
  3. Upload / Clone Project
  4. Opsi 1: Document Root → /public
  5. Opsi 2: Metode public_html
  6. Buat Database
  7. Konfigurasi .env
  8. Perintah Artisan
  9. Permissions
  10. Storage Symlink
  11. Cron Scheduler
  12. Queue di Shared Hosting
  13. Mail SMTP
  14. Optimasi
  15. Troubleshooting
  16. FAQ

1) Prasyarat

  • Akses cPanel (shared/VPS) dan File Manager atau SSH.
  • Kode Laravel 12.
  • PHP 8.3+ (disarankan) dan Composer (opsional, bisa upload vendor).

2) Set PHP & Ekstensi

  1. Buka cPanel → Select PHP Version atau MultiPHP Manager.
  2. Pilih PHP 8.3.
  3. Aktifkan: ctype, curl, fileinfo, mbstring, openssl, pdo_mysql, tokenizer, xml, bcmath (+ intl opsional).
  4. Aktifkan OPcache.

3) Upload / Clone Project

A. File Manager (tanpa Git)

  1. Zip project (boleh tanpa vendor).
  2. cPanel → File Manager → public_html → Upload ZIP → Extract.

B. Git (disarankan)

  1. cPanel → Git Version Control → Create → isi URL repo.
  2. Clone ke /home/username/laravel-app, lalu Pull saat update.

4) Opsi 1: Document Root → /public

  1. cPanel → Domains → edit document root domain/addon.
  2. Arahkan ke .../laravel-app/public dan simpan.

5) Opsi 2: Metode public_html

/
├─ home/username/
│  ├─ laravel-app/      (semua file Laravel)
│  └─ public_html/      (hanya isi folder public)
  1. Pindahkan semua file Laravel ke /home/username/laravel-app.
  2. Salin isi folder laravel-app/public ke public_html (termasuk .htaccess).
  3. Edit public_html/index.php:
// index.php di public_html
require __DIR__.'/../laravel-app/vendor/autoload.php';
$app = require_once __DIR__.'/../laravel-app/bootstrap/app.php';

6) Buat Database

  1. cPanel → MySQL® Databases → buat DB (mis. user_laravel).
  2. Buat user + password → tambahkan ke DB → ALL PRIVILEGES.

7) Konfigurasi .env

cp .env.example .env
APP_NAME="NamaApp"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://domainkamu.com

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=user_laravel
DB_USERNAME=user_db
DB_PASSWORD=***password-kuat***

LOG_CHANNEL=stack
LOG_LEVEL=info
CACHE_STORE=file
SESSION_DRIVER=file
SESSION_LIFETIME=120

MAIL_MAILER=smtp
MAIL_HOST=smtp.domain.com
MAIL_PORT=587
MAIL_USERNAME=no-reply@domain.com
MAIL_PASSWORD=***password***
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=no-reply@domain.com
MAIL_FROM_NAME="${APP_NAME}"

8) Perintah Artisan

cd ~/laravel-app
php -v
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --force

Tanpa Composer? Upload folder vendor dari lokal, lalu lanjutkan perintah artisan.

9) Permissions

cd ~/laravel-app
chmod -R 775 storage bootstrap/cache
find storage -type d -exec chmod 775 {} \;
find bootstrap/cache -type d -exec chmod 775 {} \;

10) Storage Symlink

php artisan storage:link

11) Cron Scheduler

cPanel → Cron Jobs → Add New Cron Job (per menit):

cd /home/username/laravel-app && /opt/cpanel/ea-php83/root/usr/bin/php artisan schedule:run >> /home/username/laravel-app/storage/logs/cron.log 2>&1

12) Queue di Shared Hosting

cd /home/username/laravel-app && /opt/cpanel/ea-php83/root/usr/bin/php artisan queue:work --stop-when-empty >> /home/username/laravel-app/storage/logs/queue.log 2>&1

13) Mail SMTP

  • Aktifkan SPF/DKIM (cPanel → Email Deliverability).
  • Gunakan port 587 (TLS) dan kredensial yang benar.
Baca Juga:  Mudahnya Migrasi Data Hosting ke Antmediahost

14) Optimasi

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
composer dump-autoload -o
  • APP_DEBUG=false pada produksi.
  • OPcache aktif; gunakan CDN untuk aset.

15) Troubleshooting

  • 500: cek storage/logs/laravel.log, PHP/ekstensi, permissions.
  • Semua 404: pastikan .htaccess dan document root ke public (atau Opsi 2 benar).
  • HY000 [1045]: cek user/password DB & hak akses.
  • Symlink gagal: jalankan dari Terminal; minta enable symlink bila perlu.

16) FAQ

Apakah installasi laravel bisa tanpa SSH?

Bisa. Upload project dan folder vendor, set .env, migrasi via DB manager (jika ada). SSH tetap disarankan.

Apakah laravel harus document root ke public?

Idealnya ya. Jika tidak bisa, pakai metode public_html dan ubah path di index.php.

Bagaimana baiknya update project laravel berikutnya?

Gunakan Git di cPanel untuk pull, lalu jalankan ulang cache (config/route/view).


Bagaimana kalau server tidak ada Composer?


Kamu bisa install dependencies di lokal lalu upload folder vendor ke server. Setelah itu jalankan perintah artisan yang perlu (mis. key:generate, migrate –force) via Terminal cPanel jika tersedia.


Semua URL Laravel error 404 setelah upload, kenapa?


Biasanya document root belum mengarah ke public atau file .htaccess hilang. Arahkan root ke /public (atau gunakan metode public_html + edit index.php), dan pastikan .htaccess bawaan Laravel ikut ter-upload.


APP_KEY Laravel kosong, apa efeknya?


Aplikasi tidak bisa mengenkripsi sesi/cookie dengan benar. Jalankan php artisan key:generate sekali. Jika tanpa SSH, generate di lokal lalu isi nilai APP_KEY ke file .env di server.


Cron untuk scheduler Laravel bagusnya bagaimana?


Tambahkan cron per menit menjalankan:
cd /home/username/laravel-app && /opt/cpanel/ea-php83/root/usr/bin/php artisan schedule:run >> /home/username/laravel-app/storage/logs/cron.log 2>&1
Sesuaikan path PHP dan username kamu.


Bisa jalanin queue laravel di shared hosting tanpa supervisor?


Bisa, gunakan cron per menit dengan php artisan queue:work –stop-when-empty. Pilih driver database agar kompatibel dengan shared hosting.

Laravel aset (CSS/JS) dari Vite tidak muncul di produksi, kenapa?


Pastikan sudah menjalankan build di lokal (npm run build) lalu upload folder public/build dan file manifest. Periksa APP_URL di .env dan cache view/config sudah di-clear/di-rebuild.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *