Dokumen ini untuk setup production spotthea-backend pada hosting cPanel (Apache + PHP-FPM/mod_php).
Set minimal variabel berikut di .env production:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://api.your-domain.com
MEDIA_URL=https://api.your-domain.com/storage
FRONTEND_URLS=https://your-domain.com
FILESYSTEM_DISK=publicCatatan:
MEDIA_URLopsional, tapi direkomendasikan untuk memastikan URL image konsisten di reverse proxy/CDN.- Jika memakai subfolder/domain berbeda untuk storage, arahkan
MEDIA_URLke base URL storage publik.
Jalankan di server setelah deploy:
php artisan key:generate --force
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan storage:linkJika storage:link gagal karena permission/symlink policy cPanel, buat symlink manual dari:
public/storage->storage/app/public
Pastikan writable:
storage/bootstrap/cache/
Rekomendasi umum:
- folder
755 - file
644
Folder storage/app/public sudah dilengkapi .htaccess untuk:
- menonaktifkan directory listing (
Options -Indexes) - menolak eksekusi file script (
php,phtml,phar, dll)
Pastikan Apache membaca .htaccess (AllowOverride All pada virtual host/public_html target).
Untuk Laravel, document root harus mengarah ke folder public/ project backend.
Jika cPanel memaksa public_html, copy isi public/ Laravel ke public_html dan sesuaikan path di index.php (opsi fallback, bukan opsi utama).
Verifikasi endpoint:
GET /api/homeGET /api/site-settingsGET /api/admin/dashboard(pakai token admin)- Upload image dari panel admin lalu cek URL hasil upload dapat diakses publik.
Jika URL upload salah host/scheme:
- cek
APP_URL - cek
MEDIA_URL - clear cache config:
php artisan config:clear && php artisan config:cache
Untuk menjaga TTFB dan stabilitas saat trafik naik:
- Aktifkan cache Laravel:
php artisan optimize
php artisan config:cache
php artisan route:cache
php artisan view:cache- Pastikan PHP OPcache aktif di cPanel (direkomendasikan):
opcache.enable=1opcache.memory_consumptiondisesuaikan (umumnya 128MB+)opcache.validate_timestamps=1(set0jika deployment immutable + restart PHP-FPM terkontrol)
-
Aktifkan compression HTTP di web server (gzip/brotli) untuk JSON/CSS/JS.
-
Gunakan
CACHE_STOREyang cepat (Redis direkomendasikan untuk produksi skala menengah/tinggi).