Cara Mengatasi Error 500 Setelah Upload Website ke Hosting (Checklist 10 Langkah 2026)
Cara Mengatasi Error 500 Setelah Upload Website ke Hosting (Checklist 10 Langkah 2026)
Baru beli source code, semangat upload ke hosting, eh yang muncul malah halaman putih bertuliskan "500 Internal Server Error". Rasanya seperti dikhianati: di localhost jalan mulus, di hosting malah error.
Tenang — kabar baiknya, error 500 setelah upload website adalah masalah paling umum yang dialami pembeli source code, dan 9 dari 10 kasus penyebabnya itu-itu saja. Kabar buruknya, pesan "500" sendiri tidak memberi tahu apa masalahnya. Ia seperti dokter yang hanya bilang "kamu sakit" tanpa menyebut penyakitnya.
Artikel ini adalah checklist troubleshooting berurutan: mulai dari cek paling cepat (30 detik), sampai ke perbaikan yang lebih dalam. Urutannya disusun agar kamu menemukan penyebabnya secepat mungkin tanpa coba-coba acak.
Belum tahu cara upload yang benar? Baca dulu panduan deploy Laravel ke shared hosting cPanel agar struktur foldernya tidak salah sejak awal.
Kenapa Error 500 Muncul Setelah Upload?
Error 500 berarti server gagal menjalankan websitemu, tetapi tidak tahu (atau tidak mau) menjelaskan kenapa. Penyebabnya hampir selalu salah satu dari lima hal ini:
- Konfigurasi salah — file
.env, koneksi database, atau versi PHP tidak cocok. - Permission file/folder salah — server tidak bisa menulis file cache/log.
- File tidak lengkap — folder penting (misalnya
vendor) tidak ikut terupload. - Cache basi — website masih membaca konfigurasi lama.
- Server bermasalah — resource habis atau hosting sedang down.
Strategi kita: jangan menebak. Aktifkan dulu "mode jujur" agar server menunjukkan error aslinya, baru perbaiki berdasarkan pesan tersebut.
Langkah 0: Aktifkan Mode Debug Dulu (Paling Penting!)
Sebelum mengutak-atik apa pun, buat server menampilkan pesan error yang sebenarnya. Tanpa ini, kamu troubleshooting buta.
Untuk Laravel, buka file .env di hosting via File Manager cPanel, ubah sementara:
Refresh halamannya. Sekarang alih-alih "500", kamu akan melihat pesan seperti SQLSTATE[HY000] [1045] Access denied atau No application encryption key has been specified. Catat pesan itu — itulah petunjuk utamamu.
Untuk WordPress, tambahkan baris ini ke wp-config.php:
Error akan tercatat di wp-content/debug.log tanpa ditampilkan ke pengunjung.
Penting: setelah masalah ketemu dan diperbaiki, kembalikanAPP_DEBUGkefalsedan matikanWP_DEBUG. Mode debug yang dibiarkan menyala di website live adalah celah keamanan — pesan error bisa membocorkan struktur database dan path server. Baca juga 9 langkah mengamankan website setelah beli source code.
Langkah 1: Cek Apakah Server Hostingnya yang Bermasalah
Kadang masalahnya bukan di websitemu sama sekali. Cek dulu:
- Buka cPanel — kalau cPanel saja tidak bisa diakses, servernya yang down.
- Cek halaman status provider hostingmu atau hubungi support via live chat.
- Coba buka file statis sederhana (misalnya upload
test.htmlberisi teks biasa). Kalau file HTML polos saja error 500, masalahnya di level server, bukan di kode websitemu.
Kalau servernya sehat, lanjut ke langkah berikutnya.
Langkah 2: Baca Error Log — Jangan Ditebak
Log adalah "rekam medis" websitemu. Tiga lokasi yang wajib dicek:
- cPanel → Metrics → Errors: menampilkan 300 error terakhir dari server Apache.
- Laravel:
storage/logs/laravel.log— hampir semua error 500 Laravel tercatat di sini dengan stack trace lengkap. - WordPress:
wp-content/debug.log(setelah WP_DEBUG diaktifkan).
Contoh pesan log dan artinya:
| Pesan di log Artinya | |
SQLSTATE[HY000] [1045] Access denied for user | Username/password database di .env salah |
No application encryption key has been specified | APP_KEY kosong — jalankan php artisan key:generate |
file_put_contents(.../storage/...): failed to open stream: Permission denied | Permission folder storage salah |
Class '...' not found | Folder vendor tidak lengkap atau autoload rusak |
PHP Fatal error: Composer detected issues | Versi PHP tidak cocok dengan dependency |
Satu baris log yang tepat menghemat 2 jam coba-coba. Biasakan membaca log dulu sebelum mengubah apa pun.
Langkah 3: Periksa Konfigurasi Database di .env
Penyebab nomor satu error 500 setelah upload: kredensial database. Database di hosting bukan database localhost-mu. Cek di cPanel → MySQL Databases untuk nama database, username, dan pastikan user sudah di-assign ke database dengan hak akses penuh.
Tiga kesalahan klasik:
- DB_HOST pakai
localhost— di sebagian hosting justru harus127.0.0.1(atau sebaliknya). Coba keduanya. - Nama database/username salah — di shared hosting biasanya ada prefix akun, misalnya
akunku_namadb, bukan sekadarnamadb. - User belum di-assign ke database — database dan user dibuat terpisah di cPanel, lalu harus dihubungkan manual.
Kalau error-nya Access denied, 99% masalahnya di tiga hal di atas. Kalau database-nya makin besar dan lambat setelah website jalan, baca juga panduan optimasi database MySQL.
Langkah 4: Perbaiki Permission File dan Folder
Server web butuh izin menulis ke folder tertentu. Permission yang salah = error 500. Standarnya:
- File:
644 - Folder:
755 - Folder
storagedanbootstrap/cache(Laravel):775agar bisa ditulis server
Cara memperbaiki di cPanel: buka File Manager, klik kanan folder storage → Change Permissions → centang hingga angkanya 775, centang "Recurse into subdirectories" → hanya untuk folder ini.
Di terminal/SSH (kalau tersedia):
Jangan pernah pakai 777 meski "biar gampang". Permission 777 berarti siapa pun bisa menulis file di folder itu — pintu terbuka untuk disusupi malware. Permission yang benar sudah dibahas tuntas di panduan keamanan website.
Langkah 5: Periksa File .htaccess
File .htaccess yang korup atau berisi aturan yang tidak didukung server adalah penyebab klasik error 500, terutama di WordPress dan Laravel yang document root-nya diarahkan manual.
Cara tes cepat:
- Backup dulu: rename
.htaccessmenjadi.htaccess_backupvia File Manager. - Refresh website. Kalau website jalan (walau tampilannya berantakan), berarti
.htaccess-nya yang bermasalah. - Buat
.htaccessbaru yang bersih. Untuk WordPress, isi defaultnya:
Untuk Laravel, pastikan document root domain mengarah ke folder public Laravel, bukan ke root project — kalau mengarah ke root project, file .htaccess bawaan Laravel tidak akan terbaca dan routing rusak.
Langkah 6: Pastikan Folder vendor Ikut Terupload (Khusus Laravel)
Di shared hosting biasanya tidak ada akses terminal untuk menjalankan composer install. Artinya folder vendor (berisi semua library Laravel) harus diupload manual dari komputermu.
Gejala folder vendor tidak lengkap: error Class not found atau halaman putih total meski .env sudah benar. Solusinya:
- Di komputer lokal, jalankan
composer install --no-dev --optimize-autoloader. - Upload ulang folder
vendorsecara utuh (ukurannya besar — pakai upload ZIP lalu extract di cPanel agar tidak ada file yang gagal di tengah jalan).
Tips: upload sebagai satu file ZIP lalu extract via File Manager jauh lebih aman daripada upload ribuan file satu per satu via FTP — koneksi yang putus di tengah sering bikin vendor tidak lengkap tanpa disadari.
Langkah 7: Cek Versi PHP di Hosting
Setiap versi Laravel dan WordPress punya syarat versi PHP minimum. Laravel 11 butuh PHP 8.2+, Laravel 12 butuh PHP 8.2+. Kalau hosting masih diset ke PHP 7.4 atau 8.0, website langsung error 500 tanpa ampun.
Cara cek dan ubah: cPanel → Software → Select PHP Version (atau "MultiPHP Manager"). Pilih versi yang sesuai dengan requirement source code yang kamu beli — biasanya tertulis di dokumentasi atau file composer.json pada baris "php".
Jangan asal pilih versi PHP terbaru juga: plugin/tema WordPress lama atau package Laravel lama bisa tidak kompatibel dengan PHP 8.3+. Sesuaikan dengan requirement, bukan dengan yang terbaru.
Langkah 8: Bersihkan Cache Bawaan
Setelah mengubah .env atau mengupload file baru, Laravel kadang masih membaca cache lama. Ini sering bikin frustrasi: "padahal sudah dibenerin, kok masih error?"
Kalau ada akses terminal/SSH:
Kalau tidak ada akses terminal (shared hosting biasa), hapus manual file-file di bootstrap/cache/ kecuali .gitignore — file config.php, routes-v7.php, dan sejenisnya di folder itu adalah cache yang aman dihapus, Laravel akan membuatnya ulang otomatis.
Setelah website normal kembali, justru cache-lah yang bikin website cepat. Pelajari teknik caching yang benar di 10 cara mempercepat website Laravel.
Langkah 9: Nonaktifkan Plugin dan Tema (Khusus WordPress)
Kalau error 500 muncul setelah install/aktivasi plugin atau tema baru, pelakunya hampir pasti plugin/tema tersebut. Cara menonaktifkannya tanpa akses dashboard:
- Buka File Manager →
wp-content/plugins. - Rename folder plugin yang dicurigai (misalnya
elementor→elementor_off). - Refresh website. Kalau normal, ketemu pelakunya.
- Kalau belum ketemu, rename satu per satu, atau rename seluruh folder
pluginsmenjadiplugins_offuntuk menonaktifkan semuanya sekaligus.
Untuk tema: rename folder tema aktif di wp-content/themes, WordPress otomatis fallback ke tema default.
Langkah 10: Cek Limit Resource Hosting
Kalau error 500 munculnya kadang-kadang (tidak konsisten), bukan salah kode — resource hosting yang habis:
- Memory limit PHP terlalu kecil — naikkan di Select PHP Version → Options (coba 256M atau 512M).
- max_execution_time terlalu singkat untuk proses berat (import data, generate laporan) — naikkan ke 120 atau 300 detik.
- CPU/EP (Entry Process) limit habis karena traffic tinggi — terlihat di cPanel → Resource Usage.
Error 500 yang intermittent hampir selalu soal resource, bukan soal kode. Kalau resource sering mentok, itu sinyal paket hostingmu sudah kekecilan untuk websitenya.
Kapan Harus Minta Bantuan?
Setelah 10 langkah di atas, sebagian besar error 500 sudah teratasi. Tapi ada dua situasi di mana kamu tidak perlu berjuang sendirian:
- Log menunjukkan error di level server (misalnya
mod_security, konfigurasi Apache yang diblokir) — ini wewenang support hosting. Kirimkan baris log yang relevan ke mereka, jangan cuma bilang "website saya error". - Error berasal dari bug di source code-nya — hubungi penjual source code dengan menyertakan pesan error lengkap dari mode debug (Langkah 0). Pesan error yang jelas membuat penjual bisa membantu 10x lebih cepat daripada sekadar "error 500 bang".
Kesimpulan
Error 500 setelah upload website memang menakutkan, tapi polanya selalu sama: aktifkan mode debug, baca log, lalu telusuri checklist dari konfigurasi database, permission, .htaccess, kelengkapan file, versi PHP, cache, sampai resource server. Urutan ini penting — mayoritas kasus selesai di tiga langkah pertama.
Punya website yang sudah jalan tapi terasa lambat? Lanjut ke 10 cara mempercepat website Laravel agar performanya ikut optimal setelah errornya beres.
Artikel Terkait
Cara Optimasi Database MySQL agar Website Tidak Lemot (Panduan Praktis 2026)
05 Oct 2026
10 Cara Mempercepat Website Laravel yang Lambat (Panduan Praktis 2026)
04 Oct 2026
9 Langkah Mengamankan Website Setelah Beli Source Code (Panduan 2026)
03 Oct 2026
Aplikasi Helpdesk: Bangun Sistem Tiket Sendiri atau Sewa SaaS?
25 Sep 2026