AntMediaHost

Cara Install Laravel 12 di cPanel Hosting 

Andriansyah
Andriansyah
Tutorial 58
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_htmlrequire __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=falseAPP_URL=https://domainkamu.comDB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306DB_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=120MAIL_MAILER=smtp
MAIL_HOST=smtp.domain.com
[email protected]
MAIL_PASSWORD=***password***
MAIL_ENCRYPTION=tls
[email protected]
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.

14) Optimasi

php artisan config:cachephp artisan route:cachephp artisan view:cachephp artisan event:cachecomposer 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.

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.

Bagikan Artikel

Tinggalkan Komentar

Tinggalkan Komentar

Selesaikan verifikasi keamanan terlebih dahulu.
Komentar dari Pembaca

Komentar

0 komentar

Belum Ada Komentar

Jadilah yang pertama memberikan komentar!

Akreditasi & Partner

Microsoft PartnerGoogle WorkspaceZoom PartnerCloudLinux PartnerWHMCS PartnerPSE KominfocPanel Partner