© 2026 Basis Pengetahuan Cloudkilat. Hak Cipta Dilindungi.

|
>
>
  1. Beranda
  2. Troubleshooting, Tips & Trik
  3. Panduan Lengkap Mengatasi Error Umum Website

Panduan Lengkap Mengatasi Error Umum Website

Kode error 500 atau 404 adalah petunjuk. Panduan ini membahas 10 error umum akses website (termasuk error Database & DNS) untuk membantumu menemukan akar masalah dan solusi langkah demi langkah untuk memperbaikinya.

Waktu baca: 10 menit • Lihat progres baca di bar atas
Oleh Fadli Muhammad Habibi
Dipublikasikan 25 Februari 2026
linuxcmsWeb PerformancewebsiteErrorHTTP Error CodesTips

A. Pendahuluan

Saat mengakses atau mengelola website, kamu mungkin pernah menemukan pesan seperti “Internal Server Error”, “Bad Gateway”, atau “Not Found”. Pesan ini menunjukkan bahwa ada sesuatu yang tidak berjalan sesuai harapan di sisi server, aplikasi, atau konfigurasi website kamu.

Kode error tersebut menjadi petunjuk penting untuk membantu kamu menemukan sumber masalah dan menentukan langkah perbaikan yang tepat.

Panduan ini merangkum 10 error yang paling sering muncul beserta penyebab dan cara mengatasinya.

  • Panduan Terkait:
    • Pemahaman Singkat Mengenai Jenis-Jenis Kode HTTP Website
    • Cara Mudah Untuk Mengecek Kode HTTP Website

B. Daftar Error dan Solusinya

Untuk memudahkan kamu memahami setiap kondisi, daftar ini dibagi menjadi tiga kelompok:

  • Error Server (5xx): Masalah terjadi di dalam server VPS-mu (dibahas pada nomor 1-3).
  • Error Akses (4xx): Masalah terjadi pada izin akses atau permintaan dari pengunjung (dibahas pada nomor 4-7).
  • Error Koneksi (Lainnya): Masalah terjadi di level database, DNS, SSL, atau konfigurasi lainnya (dibahas pada nomor 8-10).

Error 4XX VS 5XX

Gambar 1: Peta Klasifikasi Error (4xx vs 5xx)


1. Error 500 (Internal Server Error)

a. Gejala:
Website menampilkan halaman kosong (blank page) atau pesan “Internal Server Error”. Ini berarti server menemukan masalah, tetapi tidak dapat memberikan detailnya secara langsung.

500 Internal Server Error

Gambar 2: Website Error 500 Internal Server Error

b. Penyebab Umum:

  • Error pada Skrip: Kesalahan sintaks (syntax error) pada file .php, .py, atau script backend lainnya.
  • Konfigurasi .htaccess Rusak: (Umum di server Apache) Ada aturan yang salah tulis di dalam file .htaccess kamu.
  • Kehabisan Memori: Script (misalnya PHP) mencoba menggunakan memori lebih banyak dari batas yang diizinkan.

c. Solusi:

  • CEK ERROR LOG! Ini adalah langkah pertama dan paling penting. Error 500 selalu mencatat detail kesalahannya di log. Lokasi log bisa berbeda, tapi umumnya ada di:
    • /var/log/nginx/error.log (jika pakai Nginx)
    • /var/log/apache2/error.log (jika pakai Apache)
    • error_log (sering ada di dalam direktori website-mu, misal public_html/error_log)
    • Panduan Terkait:
      • 500 Internal Server Error: Bagaimana Cara Mengatasinya?
      • Log-Log Penting di Linux dan Cara Memeriksanya

Pengecekan Error Log

Gambar 3: Investigasi Error Log Pada Server

  • Rename .htaccess: Jika kamu menggunakan Apache, coba ganti nama file .htaccess menjadi .htaccess_backup.
  • Naikkan Limit Memori: Jika di log ada pesan Allowed memory size of ... bytes exhausted, kamu perlu menaikkan memory_limit di file php.ini.

2. Error 502 (Bad Gateway) / 503 (Service Unavailable)

a. Gejala:
Website menampilkan "502 Bad Gateway" (biasanya dari Nginx) atau "503 Service Unavailable".

503 Service Temporarily Unavailable

Gambar 4: Website Error 503 Service Temporarily Unavailable

b. Penyebab Umum:
Error ini terjadi ketika web server (Nginx) gagal mendapatkan respons dari layanan backend (PHP-FPM, Node.js, dll.) yang seharusnya memproses permintaan tersebut.

  • Layanan backend (misal PHP-FPM) sedang mati atau crash.
  • Socket atau port yang digunakan untuk komunikasi salah konfigurasi.

Alur Koneksi Bad Gateway 502 or 504

Gambar 5: Alur Koneksi "Bad Gateway" (502/504)

c. Solusi:

  • Restart Layanan Backend: Seringkali ini adalah solusi tercepat.
    # Contoh jika kamu pakai PHP 8.1 FPM
    sudo systemctl restart php8.1-fpm
    sudo systemctl restart nginx
    
  • Periksa Status Layanan: Jika restart gagal, periksa statusnya untuk melihat pesan error:
    sudo systemctl status php8.1-fpm
    
  • Cek Penggunaan Resource: Error 503 juga bisa terjadi jika server kehabisan RAM.
    • Panduan Terkait: Panduan Penggunaan Perintah htop di Linux

3. Error 504 (Gateway Timeout)

a. Gejala:
Browser loading sangat lama (biasanya 30-60 detik), lalu akhirnya menyerah dan menampilkan "504 Gateway Timeout".

Error 504 Gateway Timeout

Gambar 6: Website Error 504 Gateway Timeout

b. Penyebab Umum:
Error 504 terjadi ketika web server (Nginx) berhasil terhubung ke layanan backend (PHP), namun layanan backend tersebut terlalu lama memproses permintaan hingga batas waktu (timeout) web server habis.

  • Skrip aplikasi sedang menjalankan tugas yang sangat berat (misal: import ribuan data, query database yang sangat lambat).

c. Solusi:

  • Optimalkan Skrip: Ini adalah solusi jangka panjang terbaik. Cari tahu kenapa skripmu berjalan sangat lambat.
    • Panduan Terkait: Ini Dia Tips Ampuh Untuk Mengatasi Website Lambat
  • Naikkan Nilai Timeout (Solusi Jangka Pendek): Jika skrip memang wajar berjalan lama, kamu bisa menaikkan batas waktu timeout di beberapa tempat:
    1. Di Konfigurasi Aplikasi: (Misal php.ini, naikkan max_execution_time dari 30 jadi 300).
    2. Di Konfigurasi Web Server: (Misal Nginx, tambahkan fastcgi_read_timeout 300s;).
    3. Setelah selesai, restart semua layanan terkait.
  • Cek Resource: Gunakan htop untuk memastikan server tidak kehabisan CPU atau RAM.
    • Panduan Terkait: Panduan Penggunaan Perintah htop di Linux

4. Error 404 (Not Found)

a. Gejala:
Browser menampilkan pesan "404 Not Found" atau "Halaman tidak ditemukan". Ini artinya server merespons, tapi file atau halaman spesifik yang kamu minta tidak ada.

Error 404 Not Found

Gambar 7: Website Error 404 Not Found

b. Penyebab Umum:

  • URL Salah Ketik: Kamu atau pengunjung salah mengetik alamat URL.
  • Halaman/File Terhapus: File atau halaman tersebut memang sudah tidak ada lagi di server.
  • Konfigurasi URL Rewrite Salah: Aturan rewrite di .htaccess (Apache) atau try_files (Nginx) tidak bisa menerjemahkan URL yang kamu minta ke file yang benar.

c. Solusi:

  • Periksa Ulang URL: Pastikan kamu tidak salah ketik.
  • Periksa Aturan Rewrite: Jika kamu pakai Apache, coba regenerasi file .htaccess-mu (jika CMS-mu menyediakannya). Jika di Nginx, pastikan blok try_files di konfigurasimu sudah benar (misal try_files $uri $uri/ /index.php?$query_string;).
  • Periksa Konfigurasi Web Server: Pastikan root direktori di Nginx/Apache sudah menunjuk ke folder yang benar.

5. Error 403 (Forbidden)

a. Gejala:
Browser menampilkan pesan "403 Forbidden" atau "You don't have permission to access this resource." Ini artinya server tahu file yang kamu minta ada, tapi kamu tidak diizinkan untuk melihatnya.

Error 403 Forbidden

Gambar 8: Website Error 403 Forbidden

b. Penyebab Umum:

  • File Permission Salah: Ini adalah 90% penyebab error 403. User yang menjalankan web server (misalnya www-data) tidak memiliki izin baca (read) ke file tersebut.
  • Aturan .htaccess: Ada aturan di .htaccess yang secara spesifik memblokir akses ke file, folder, atau IP-mu.

c. Solusi:

  • Perbaiki File Permission: Ini adalah solusi utama. Kamu perlu memastikan semua direktori disetel ke 755 dan semua file disetel ke 644.
    # Pergi ke direktori website-mu
    cd /var/www/html/websiteku
    
    # Perbaiki izin direktori
    sudo find . -type d -exec chmod 755 {} \;
    
    # Perbaiki izin file
    sudo find . -type f -exec chmod 644 {} \;
    
  • Periksa Kepemilikan (Ownership): Pastikan file dan direktori dimiliki oleh user yang tepat (biasanya www-data).
    sudo chown -R www-data:www-data /var/www/html/websiteku
    
  • Panduan Terkait:
    • Penyebab 403 Forbidden pada Nginx dan Cara Mengatasinya
    • Memahami Permission dan Ownership di Linux

Rekomendasi Permission File dan Directory

Gambar 9: Default Permission Untuk Direktori (755) dan File (644)


6. Error 401 (Unauthorized)

a. Gejala:
Mirip dengan 403, tapi browser akan menampilkan pop-up login atau halaman login khusus, dengan pesan "401 Unauthorized" atau "Authentication Required."

Error 401 Unauthorized

Gambar 10: Website Error 401 Unauthorized

b. Penyebab Umum:
Error 401 berarti "Autentikasi Dibutuhkan". Ini muncul karena kamu mencoba mengakses halaman yang dilindungi password di level server (misal .htpasswd) dan kamu belum memberikan kredensial login yang benar.

c. Solusi:

  • Masukkan username dan password yang benar untuk area yang dilindungi tersebut.
  • Periksa file .htaccess dan .htpasswd di server untuk memastikan kredensialnya sudah benar.

7. Error 429 (Too Many Requests)

a. Gejala:
Website tiba-tiba memblokir kamu atau menampilkan pesan "429 Too Many Requests."

429 Too Many Requests

Gambar 11: Website Error 429 Too Many Requests

b. Penyebab Umum:

  • Rate Limiting: Server (Nginx) atau aplikasi sengaja membatasimu karena kamu me-refresh halaman terlalu cepat.
  • Firewall Aplikasi (WAF): Tool keamanan (seperti Fail2Ban) memblokir IP-mu karena mendeteksi aktivitas mencurigakan.

c. Solusi:

  • Tunggu beberapa menit dan coba lagi.
  • Jika kamu terblokir permanen, kamu harus masuk ke Konsol VPS untuk menghapus IP-mu dari daftar blokir (misal di Fail2Ban).
    • Panduan Terkait: Instalasi Fail2Ban Sebagai Pengamanan VPS

8. Kesalahan Koneksi Database (Error Establishing a Database Connection)

a. Gejala:
(Umumnya terjadi pada aplikasi berbasis database seperti CMS WordPress). Website menampilkan halaman putih dengan teks "Error establishing a database connection."

Error establishing a database connection

Gambar 12: Website Error establishing a database connection

b. Penyebab Umum:
Ini murni masalah antara aplikasimu dan database (MySQL/MariaDB).

  • Kredensial Database Salah: Username, password, nama database, atau database host di file konfigurasi (misal .env, config.php) salah.
  • Layanan Database Mati: Layanan MySQL/MariaDB di server kamu sedang crash atau mati.
  • Firewall memblokir koneksi ke port database (misal port 3306).

c. Solusi:

  • Periksa file Konfigurasi Aplikasi: Pastikan file koneksi databasemu (misal .env atau config.php) memiliki DB_USER, DB_PASSWORD, DB_NAME, dan DB_HOST (biasanya localhost) yang sudah 100% benar.
  • Periksa Status Layanan Database: Jalankan sudo systemctl status mysql (atau mariadb) di server untuk memastikan layanannya active (running).
  • Cek Firewall dan Port: Pastikan port database (misal 3306) terbuka.
    • Panduan Terkait:
      • Panduan Lengkap Menggunakan UFW di Linux
      • Cara Scanning Port dengan nmap
  • Perbaiki Database: Jika diduga rusak (corrupt), gunakan tool perbaikan database (misalnya REPAIR TABLE).

9. Peringatan SSL & "Mixed Content"

a. Gejala:
Website bisa diakses, tapi browser menampilkan peringatan "Not Secure" atau "Koneksi Anda tidak pribadi." Atau, ikon gemboknya ada tapi disertai tanda seru kuning.

Mixed Content

Gambar 13: Secure Website vs Mixed Content Website

b. Penyebab Umum:

  • Mixed Content: Kamu sudah memasang SSL (HTTPS), tapi di dalam halamanmu masih ada aset (gambar, CSS, JS) yang dipanggil menggunakan http://.
  • Sertifikat Kedaluwarsa/Tidak Valid: Sertifikat SSL-mu sudah kedaluwarsa, atau sertifikat dipasang untuk domain yang salah.

c. Solusi:

  • Perbaiki Mixed Content: Lakukan search-replace di database atau kode aplikasi untuk mengubah semua URL aset (http://...) menjadi https://....
  • Perbarui Sertifikat: Jika kedaluwarsa, jalankan ulang perintah Certbot (sudo certbot renew).
  • Periksa Konfigurasi SSL: Pastikan kamu mendaftarkan SSL untuk kedua versi domain (misal -d domain.com -d www.domain.com) saat menggunakan Certbot.
    • Panduan Terkait: Kenali Error SSL yang Sering Kamu Jumpai dan Cara Mengatasinya

10. Error DNS (DNS_PROBE_FINISHED_NXDOMAIN)

a. Gejala:
Browser menampilkan "This site can’t be reached" atau "DNS_PROBE_FINISHED_NXDOMAIN". Ini error yang terjadi sebelum browser sempat berbicara dengan VPS-mu.

Error DNS PROBE FINISHED NXDOMAIN

Gambar 14: Website Error DNS_PROBE_FINISHED_NXDOMAIN

b. Penyebab Umum:

  • Domain Belum Diarahkan: Kamu lupa mengarahkan A Record di DNS registrar-mu ke IP VPS yang benar.
  • Masa Propagasi: Kamu baru saja mengganti DNS, dan butuh waktu (bisa 1-24 jam) agar perubahan itu tersebar ke seluruh internet.
  • Domain Kedaluwarsa: Kamu lupa memperpanjang domainmu.

c. Solusi:

  • Buka panel DNS (di tempat kamu beli domain, bukan di VPS) dan pastikan A Record untuk @ dan www sudah menunjuk ke IP VPS-mu.
  • Gunakan tool eksternal seperti whatsmydns.net untuk memeriksa apakah IP-mu sudah terpropagasi.
    • Panduan Terkait: Tips Mengatasi Error DNS_PROBE_FINISHED_NXDOMAIN
  • Bersihkan cache DNS di komputermu (ipconfig /flushdns di Windows).

C. Kesimpulan

Kode error HTTP adalah sebuah petunjuk. Setiap kode memberikan informasi berharga untuk diagnosis. Langkah pertama yang tidak pernah salah adalah: Periksa file log error di servermu. Log adalah tempat di mana server mencatat detail teknis dari setiap masalah yang terjadi.

  • Panduan Terkait: Log-Log Penting di Linux dan Cara Memeriksanya

Butuh bantuan lebih lanjut?

Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.

Hubungi Kami