Setiap kali WordPress gagal terhubung ke database, pesan error yang muncul hampir selalu merujuk ke wp-config.php. File itu tidak pernah dibuka lewat dashboard, tapi tanpa isinya yang benar WordPress tidak bisa berjalan. Memahami isinya membantu kamu menelusuri masalah tanpa menebak-nebak.
wp-config.php adalah file PHP yang menyimpan konfigurasi inti instalasi WordPress. Semua pengaturan di file ini dibaca sebelum WordPress memuat tema, plugin, atau database, sehingga satu karakter salah ketik di sini bisa membuat situs menolak tampil.
Fungsi wp-config.php dalam alur boot WordPress
Saat kamu membuka halaman WordPress, file wp-load.php mencari wp-config.php di direktori yang sama. Begitu ketemu, WordPress membaca kredensial database, nama tabel, dan beberapa konstanta lain sebelum melanjutkan memuat sistem inti. Setelah itu WordPress memanggil wp-settings.php yang menjalankan mu-plugin, plugin aktif, lalu tema.
Urutan ini punya arti praktis: konfigurasi di wp-config.php berlaku lebih dulu daripada apa pun yang kamu atur di dashboard. Kalau ada pengaturan yang ingin dipaksakan agar tidak bisa diubah lewat admin, wp-config.php adalah tempatnya.
Isi penting di dalam wp-config.php
Kredensial database dan prefix tabel
Empat konstanta pertama yang biasanya kamu lihat adalah DB_NAME, DB_USER, DB_PASSWORD, dan DB_HOST. Di bawahnya ada $table_prefix. Sebaiknya nilai prefix bukan wp_ bawaan. Banyak serangan injeksi SQL menyasar nama tabel default karena sudah tahu bentuknya.
Kunci keamanan dan garam
Bagian AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, beserta empat pasangan salt-nya dipakai untuk mengenkripsi cookie login. Mengganti nilainya membuat semua sesi login aktif berakhir dan setiap pengguna harus masuk ulang. Itu justru langkah yang tepat ketika kamu mencurigai cookie sesi bocor.
Mode debugging
WP_DEBUG mengaktifkan laporan error PHP. Kalau kamu juga mengatur WP_DEBUG_LOG ke true, error tercatat di berkas wp-content/debug.log alih-alih tampil di halaman. Untuk situs yang sedang live, kombinasi dua konstanta ini lebih aman daripada menampilkan error ke pengunjung. Konstanta WP_DEBUG_DISPLAY bisa disetel ke false untuk memastikan pesan tidak muncul di layar.
Pengaturan URL situs
Menetapkan WP_HOME dan WP_SITEURL di wp-config.php membuat alamat situs terkunci dan tidak bisa diubah dari menu Settings. Pola ini berguna untuk situs yang sering dipindah antar lingkungan staging dan produksi. Hati-hati: begitu nilainya di-hardcode, kamu tidak bisa mengoreksinya lewat dashboard kalau alamat salah.
Contoh penambahan konstanta
Tambahkan baris baru di atas kalimat /* That's all, stop editing! */ supaya pengaturan tidak tertimpa saat pembaruan. Contoh mengaktifkan log error tanpa menampilkannya ke pengunjung:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Simpan file, lalu ulangi langkah yang tadi memicu error. Periksa isi wp-content/debug.log untuk melihat pesan lengkap beserta baris kode yang bermasalah. Setelah selesai, kembalikan WP_DEBUG ke false agar log tidak terus membengkak.
Hal yang perlu diperhatikan saat mengedit
- Cadangkan dulu file dan database sebelum mengubah wp-config.php. Prosedur backup WordPress manual cukup dijalankan lewat FTP dan phpMyAdmin, tidak perlu alat tambahan.
- Gunakan editor teks biasa, bukan pengolah kata. Karakter tak terlihat dari aplikasi dokumen bisa merusak sintaks PHP.
- Jangan menaruh wp-config.php di folder yang bisa diakses publik. WordPress biasanya menyarankan memindahkannya satu tingkat di atas public_html bila konfigurasi server memungkinkan.
- Kalau memakai kontrol versi, jangan pernah commit file ini berisi kredensial asli. Simpan contohnya saja tanpa nilai rahasia.
Perubahan pada file ini juga berpengaruh ke lapisan cache. Saat menambah konstanta baru, cache objek yang sudah berjalan perlu dibersihkan agar nilainya ikut terbaca. Penjelasan soal mekanisme tersebut ada di artikel mempercepat WordPress dengan object cache.
Kapan sebaiknya tidak menyentuh file ini
Banyak pengaturan yang dulu hanya bisa lewat wp-config.php sekarang tersedia di dashboard atau plugin. Mengubah alamat situs, mengatur jumlah revisi, dan menyesuaikan batas unggah biasanya lebih aman lewat plugin khusus atau konfigurasi server. File wp-config.php sebaiknya dipakai untuk hal yang memang harus dikunci di level inti, seperti kredensial, kunci keamanan, dan mode debugging.
Kalau kamu memindahkan situs ke server baru dan database ikut berubah, wp-config.php adalah file pertama yang perlu disesuaikan sebelum yang lain. Untuk urutan pemasangan dari nol, langkahnya dibahas di panduan membuat website WordPress pertama.
Ringkasan
wp-config.php memegang kendali atas koneksi database, kunci keamanan sesi, dan perilaku debugging. Karena dibaca paling awal, kesalahan kecil di sini berdampak besar. Simpan cadangan, edit dengan editor teks, dan batasi perubahan pada konstanta yang memang kamu pahami efeknya. Bila kamu juga membangun antarmuka pendukung di sisi aplikasi lain, misalnya aplikasi mobile atau layanan Java, pola konfigurasi terpusat seperti ini mirip dengan memilih pendekatan animasi SwiftUI dibanding UIKit maupun menyiapkan connection pool di Java: semua nilai kunci dikumpulkan di satu tempat agar mudah diaudit.
Pertanyaan yang Sering Diajukan
Apa yang terjadi kalau wp-config.php terhapus?
WordPress akan menampilkan layar pemberitahuan bahwa file konfigurasi tidak ditemukan dan menawarkan proses pemasangan ulang. Jangan lanjutkan proses itu pada situs yang sudah berisi data karena bisa membuat tabel baru. Pulihkan file dari cadangan atau buat ulang dengan kredensial database yang sama.
Apakah wp-config.php bisa dipindah ke luar folder instalasi?
Bisa, dan sebagian konfigurasi server mengizinkannya. WordPress akan mencari file itu satu tingkat di atas direktori instalasi bila tidak menemukannya di tempat biasa. Pastikan folder tujuan tetap terbaca oleh proses PHP tapi tidak bisa diakses lewat browser.
Kenapa perubahan di wp-config.php kadang tidak berefek?
Periksa apakah konstanta yang sama sudah didefinisikan lebih dulu di file lain, misalnya di wp-config-local.php atau skrip mu-plugin. Definisi pertama yang dieksekusi akan menang, dan konstanta tidak bisa dideklarasikan ulang. Cache objek yang masih menyimpan nilai lama juga bisa menjadi penyebab.


