Panduan Lanjutan Pengembang untuk File wp-config.php

Diterbitkan: 2022-09-28

Seberapa baik Anda benar-benar tahu wp-config ? Ada sejumlah kekuatan yang mengejutkan di beberapa baris PHP itu! Artikel ini adalah tur tentang beberapa bit wp-config yang mungkin tidak Anda ketahui, tetapi sebenarnya harus.

Apakah Anda tahu semua yang perlu diketahui tentang wp-config.php ? Sudahkah Anda membaca seluruh halaman dokumentasi WordPress tentangnya? Benar sampai akhir?

Jika Anda sudah terbiasa dengan dasar-dasar wp-config , maka membaca dokumentasi resmi WordPress mungkin akan menjadi acara tunda yang tepat.

Jika Anda ingin suguhan pengembang yang sebenarnya, dikelompokkan dengan baik berdasarkan subjek, dan disampaikan dengan apa yang hanya bisa disebut "antusiasme yang sama sekali tidak perlu atas beberapa konstanta PHP," maka bertahanlah: Saya akan membuat wp-config.php keren lagi.

Milhouse dari Simpsons, dengan "wp-config" di wajahnya, dan keterangan "Ibuku bilang aku keren."

Daftar isi

  1. Siapa yang Harus Membaca Ini?
  2. Mengapa Anda Harus Membaca Ini?
  3. Dasar
  4. Melihat Konstanta wp-config
  5. Memecah Proses Pemuatan wp-config.php
    1. wp-config Dapat Dipindahkan ke Atas
    2. Layar Pengaturan Memuat jika Tidak Ada File wp-config.php
    3. wp-config.php Dimuat Sangat Awal
    4. Jangan Main-main dengan wp-config.php!
  6. Memeriksa/Melinting File wp-config.php Anda
  7. Mengamankan WordPress Dengan wp-config.php
    1. Melindungi wp-config.php Dari Pengunjung Situs Web
    2. Tombol Putar/Garam
    3. Memindahkan dan Menyembunyikan Benda
    4. Menonaktifkan Editor File
    5. Menonaktifkan Pembaruan Otomatis
    6. Mencegah Permintaan HTTP Eksternal
  8. Memindahkan Barang Di Sekitar
    1. Memindahkan Tabel Pengguna dan Usermeta
    2. Pindahkan Direktori Konten, Unggahan, dan Plugin
  9. Pengaturan Terkait Konten
    1. Ubah URL Situs dan Dasbor
    2. Pengaturan Posting
    3. Posting Revisi
    4. Mengubah Interval Simpan Otomatis
  10. Membungkus

Siapa yang Harus Membaca Ini?

Artikel ini ditujukan untuk pengembang dan pengguna tingkat lanjut yang telah mengetahui cara mengedit wp-config.php dan mengetahui beberapa pengaturan konfigurasi yang dapat Anda masukkan ke dalamnya.

Saya tidak akan memberi tahu Anda cara mengedit file menggunakan FTP atau cPanel, atau mengapa Anda tidak boleh menggunakan MS Word untuk mengeditnya.

Saya tidak akan memberi tahu Anda cara mengonfigurasi database Anda atau membahas pengaturan lama yang Anda gunakan pada tahun 2013 tetapi sebenarnya tidak perlu lagi. Dan sebagian besar tuan rumah akan mengurus dasar-dasarnya untuk Anda.

Jika Anda baru wp-config.php , tidak ada kekurangan panduan yang akan memberi Anda dasar-dasarnya, atau Anda selalu dapat menggali dokumentasi resmi.

Mengapa Anda Harus Membaca Ini?

Ya, ya, aku mendengarmu. Jika detail dasar dari apa yang dapat Anda masukkan ke dalam artikel ini semuanya tercakup di tempat lain, dan jika tuan rumah Anda tetap menangani sebagian besar dasar-dasarnya, mengapa Anda harus membaca ini? Dan, memang, mengapa saya menghabiskan waktu saya untuk menulisnya?

Nah, jika Anda senang mengedit wp-config.php , dan Anda tahu dasar-dasarnya, maka Anda mungkin setidaknya seorang pengembang WordPress tingkat menengah.

Anda mungkin setidaknya sebagian bertanggung jawab untuk meng-hosting situs besar, mungkin untuk klien. Jadi Anda perlu tahu bagaimana Anda dapat menggunakan file ini dalam keadaan darurat. Dan untuk memiliki pemahaman yang cukup tentang file ini, jika Anda mengeditnya, Anda tidak akan melakukan kesalahan.

Selain itu, Anda hampir pasti ingin mengunci fitur WordPress tertentu di luar apa yang dapat dikonfigurasi oleh host Anda secara otomatis.

Tampaknya ada hal-hal yang bahkan tidak Anda ketahui yang dapat Anda lakukan dengan wp-config.php ! Beberapa "Aha!" momen yang bisa didapat.

Artikel ini adalah titik referensi yang berguna untuk mengonfigurasi beberapa internal WordPress. Jadi baca terus, bookmark, dan bagikan dengan teman dan kolega Anda.

Dasar

Saya mengatakan ini bukan artikel pemula, tetapi kita harus menetapkan fakta dasar untuk memastikan kita berada di titik awal yang sama.

File wp-config.php berada di root instalasi WordPress Anda (dapat berada di tempat lain, tetapi kami akan membahasnya), dimuat sebagai bagian dari inisialisasi WordPress, dan memungkinkan Anda untuk mengonfigurasi inti WordPress.

Ini penting untuk menjalankan WordPress. Ini menyimpan satu set konstanta yang memungkinkan Anda menentukan:

  • Koneksi database dan awalan tabel yang digunakan WordPress.
  • Informasi keamanan seperti garam dan kunci autentikasi.
  • Pengaturan untuk fitur inti WordPress lainnya seperti WP_CACHE dan WP_DEBUG .
  • Pengaturan untuk plugin yang dapat menambahkan opsi mereka sendiri ke file.
  • Opsi konfigurasi Anda sendiri.

Yang terpenting, wp-config.php adalah file khusus lingkungan. Isinya dapat (dan harus!) berbeda untuk situs yang berbeda. Bahkan salinan lokal, pementasan, dan langsung dari situs yang sama akan memiliki nilai yang berbeda dalam file.

WordPress hadir dengan wp-config-sample.php yang berisi detail minimal yang dibutuhkan WordPress untuk berfungsi. Anda dapat menyalin ini ke wp-config.php Anda sendiri sebagai bagian dari instalasi, tetapi hari ini biasanya dilakukan untuk Anda.

Terakhir, perhatikan bahwa mungkin saja ketika Anda membuka wp-config.php dari situs yang ada, Anda mungkin melihat beberapa konstanta PHP lama untuk fitur lama seperti izin file default dan kredensial FTP untuk menjalankan peningkatan. Kami tidak akan membahasnya di sini karena sepertinya Anda tidak perlu menggunakannya.

Melihat Konstanta wp-config

Ada beberapa cara untuk memeriksa nilai konstanta WordPress dengan cepat tanpa SSHing ke server jauh dan membuka file.

Fitur Kesehatan Situs inti WordPress memungkinkan Anda melihat beberapa nilai dasar dengan menavigasi ke Alat -> Kesehatan situs -> Info -> Konstanta WordPress. Konstanta basis data juga dapat dilihat di bagian “Database” di halaman yang sama.

Konstanta basis data, ditampilkan di sini di bagian Basis Data pada halaman Kesehatan Situs WordPress.

Plugin Query Monitor memiliki panel "Lingkungan" di mana Anda dapat melihat beberapa konstanta wp-config umum digunakan.

Panel "Lingkungan" plugin Query Monitor, menunjukkan beberapa konstanta wp-config yang umum digunakan.

WP-CLI, antarmuka baris perintah WordPress, memiliki perintah wp config yang dapat digunakan untuk mendapatkan dan mengatur konstanta di wp-config.php . Ini biasanya mengharuskan Anda untuk SSH terlebih dahulu, tetapi jika Anda mengatur alias dalam konfigurasi WP-CLI Anda, maka Anda dapat membuat pintasan cepat untuk melihat dan memodifikasi konstanta dalam wp-config jarak jauh.

Memecah Proses Pemuatan wp-config.php

Sangat berguna untuk mengetahui kapan wp-config.php dimuat, karena ini menentukan beberapa hal yang dapat dan tidak dapat Anda lakukan dengannya. Ini adalah latihan yang baik untuk melacak proses pemuatan:

  • WordPress mulai memuat dengan file index.php . Ini membutuhkan wp-blog-header.php .

  • Hal pertama yang dilakukan wp-blog-header.php adalah memuat wp-load.php .

  • Selanjutnya, wp-load.php menyetel konstanta ABSPATH (direktori inti WordPress dasar) dan menginisialisasi error_reporting() sebelum memuat wp-config.php .

Proses pemuatan ini, dan kode di wp-load.php khususnya, dapat mengajari kita beberapa hal menarik. Berikut adalah kode itu:

 /* * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit * of avoiding cases where the current directory is a nested installation, eg / is WordPress(a) * and /blog/ is WordPress(b). * * If neither set of conditions is true, initiate loading the setup process. */ if ( file_exists( ABSPATH . 'wp-config.php' ) ) { /** The config file resides in ABSPATH */ require_once ABSPATH . 'wp-config.php'; } elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) { /** The config file resides one level above ABSPATH but is not part of another installation */ require_once dirname( ABSPATH ) . '/wp-config.php'; } else { // A config file doesn't exist. // [Code here to load the setup screen for in-browser configuration] }

Apa yang kita lihat di sini?

wp-config.php Dapat Dipindahkan ke Atas

Pertama, komentar tersebut memberitahu kita bahwa kita dapat meletakkan wp-config.php di “WordPress root”. Apa yang gagal disebutkan adalah bahwa "root" sebenarnya bisa menjadi direktori di atas ABSPATH tempat wp-load.php .

Kita dapat melihat pemeriksaan tambahan ini di elseif di mana ia mencari dirname( ABSPATH ) . '/wp-config.php' dirname( ABSPATH ) . '/wp-config.php' . Kondisi tambahan di elseif dijelaskan dalam komentar.

Layar Pengaturan Memuat jika Tidak Ada File wp-config.php

Kedua, kita dapat melihat bahwa jika file konfigurasi tidak ada, itu akan memuat layar pengaturan.

Sangat mungkin Anda belum pernah melihat layar ini sebelumnya. Ini memungkinkan Anda memasukkan informasi konfigurasi awal, seperti kredensial database, dalam antarmuka pengguna berbasis web:

Layar pengaturan WordPress yang jarang terlihat. WordPress memuat ini jika tidak menemukan file konfigurasi, memungkinkan Anda untuk mengatur opsi konfigurasi secara manual.

Ini adalah fitur WordPress yang perlu diketahui. Jika Anda pernah meletakkan file inti WordPress di server web yang tersedia untuk umum, tetapi tidak membuat wp-config.php , maka orang lain (atau, lebih mungkin, bot) dapat datang dan mengatur WordPress dengan cara mereka . dan mungkin membahayakan hosting Anda.

wp-config.php Dimuat Sangat Awal

Hal ketiga yang perlu diperhatikan adalah bahwa wp-config.php dimuat sangat awal dalam urutan startup WordPress. Ini berarti bahwa:

  1. Ada banyak hal yang tidak bisa kita lakukan di wp-config.php . Misalnya, kami tidak dapat menambahkan kait (tindakan atau filter) di sini karena fungsi dan struktur data untuk melakukan itu belum dimuat. Dan kami tidak memiliki akses ke fungsi, objek, dan API internal WordPress.

  2. Kami memiliki banyak kendali atas apa yang terjadi selanjutnya. Karena file dimuat sangat awal, itu memiliki banyak pengaruh terhadap WordPress. Ini baik dan buruk. Kita bisa dengan mudah membuat WordPress mati total. Tetapi kita juga dapat mengakses apa pun yang didefinisikan di wp-config.php dari hampir semua tempat lain di WordPress.

Jangan Main-main dengan wp-config.php!

Hal terakhir yang kita pelajari dari proses ini adalah bahwa dengan kekuatan besar ini datang tanggung jawab besar.

Di bagian bawah wp-config.php adalah baris-baris ini:

 /* Add any custom values between this line and the "stop editing" line. */ /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php';

Ada beberapa petunjuk di sini, tetapi baris "berhenti mengedit" itu penting. Setelah baris ini adalah kelanjutan dari urutan inisialisasi WordPress. Menambahkan kode baru di tempat yang salah mungkin hanya akan mengakibatkan kode baru tidak berpengaruh sama sekali. Tetapi untuk amannya, saya sarankan mengikuti petunjuk ini. Mereka ada di sana untuk alasan yang bagus.

Memeriksa/Melinting File wp-config.php Anda

Jika Anda bekerja dalam produksi, Anda benar-benar tidak ingin membuat kesalahan apa pun di wp-config.php . Kesalahan di sini dapat merusak situs web Anda, dan Anda mungkin tidak mendapatkan pesan kesalahan berguna yang ditampilkan saat itu terjadi.

Anda dapat menjalankan php pada baris perintah dengan opsi -l (“lint”) untuk memeriksa wp-config.php Anda dari kesalahan sintaks PHP yang fatal.

$php -l wp-config.php

Kesalahan penguraian: kesalahan sintaksis, token tak terduga "require_once" di wp-config.php on line 9

Kesalahan saat mengurai wp-config.php

Anda bahkan dapat menulis skrip shell untuk…

  1. Salin wp-config.php ke file sementara,
  2. Mengedit file sementara,
  3. Lint file sementara, dan
  4. Salin kembali hanya jika tidak ada kesalahan sintaksis.

Jika Anda senang dengan baris perintah, maka lebih aman menggunakan perintah WP-CLI seperti wp config set <name> <value> untuk menetapkan nilai dengan aman daripada melakukannya dengan tangan.

Anda dapat membuat daftar nilai konfigurasi Anda dengan WP-CLI juga (ini adalah contoh dengan beberapa entri dihapus – Anda mengerti!):

$wp daftar konfigurasi
+----------------------+---------------------------- --------------------+----------+
| nama | nilai | ketik |
+----------------------+---------------------------- --------------------+----------+
| root_dir | /Users/smithers/sites/snpp | variabel |
| webroot_dir | /Users/smithers/sites/snpp/public | variabel |
| table_prefix | wp_ | variabel |
| WP_HOME | https://snpp.test | konstan |
| WP_SITEURL | https://snpp.test/ | konstan |
| DB_NAME | snpp | konstan |
| DB_USER | akar | konstan |
| DB_PASSWORD | Montgomery | konstan |
| DB_HOST | 127.0.0.1 | konstan |
| DB_CHARSET | utf8mb4 | konstan |
| DB_COLLATE | | konstan |
| DB_PREFIX | wp_ | konstan |
| WP_DEBUG | 1 | konstan |
| WP_DEBUG_LOG | 1 | konstan |
| WP_DEBUG_DISPLAY | | konstan |
| WP_ENVIRONMENT_TYPE | pengembangan | konstan |
| DISABLE_WP_CRON | | konstan |
| DISALLOW_FILE_EDIT | 1 | konstan |
+----------------------+---------------------------- --------------------+----------+

Kedua teknik ini benar-benar dapat menyelamatkan Anda dari kerumitan dan menghentikan Anda ketakutan karena secara tidak sengaja meletakkan titik koma di tempat yang salah dalam file yang begitu penting.

Mengamankan WordPress Dengan wp-config.php

Keamanan adalah topik yang selalu hangat di WordPress. Beberapa pengaturan yang dapat kita ubah di wp-config memasukkan lebih banyak alat ke dalam kotak alat keamanan kita.

Bagian dari wp-config ini jelas bukan satu-satunya hal yang harus Anda gunakan untuk mencapai keamanan WordPress yang baik. Pastikan Anda memahami keamanan situs web secara menyeluruh selain informasi di bagian berikut.

Melindungi wp-config.php Dari Pengunjung Situs Web

File wp-config Anda tinggal di direktori root situs web Anda secara default, dan itu kebetulan berisi informasi penting seperti detail login database Anda dan garam kata sandi. Anda tidak ingin informasi ini tersedia untuk umum, jadi Anda harus memastikan bahwa wp-config Anda dilindungi dari pengunjung situs web.

Perusahaan hosting Anda akan sering melakukan ini untuk Anda. Anda dapat memeriksanya dengan mencoba mengakses file dari browser Anda dengan menambahkan /wp-config.php tepat setelah domain Anda. URL ini mungkin berbeda jika Anda telah memindahkan file.

Jika Anda telah menempatkan wp-config di direktori di atas direktori root situs web Anda, maka Anda seharusnya tidak dapat melihatnya. Dalam kebanyakan kasus lain, Anda hanya akan mendapatkan pesan kesalahan PHP saat mencoba mengunjungi file, jadi biasanya tidak ada yang bisa dilakukan di sini. Tetapi jika Anda ingin mengamankannya dengan benar, Anda dapat melakukannya dengan memodifikasi konfigurasi server web Anda (Apache atau nginx) untuk memblokir akses ke sana.

Terakhir, jika Anda menyimpan file situs web Anda di Git, penting untuk tidak menyimpan wp-config di repositori Git Anda. Melakukannya dapat membocorkan informasi penting tentang situs Anda, tetapi Anda mungkin juga menginginkan versi berbeda dari file ini di setiap lingkungan. Jadi lebih baik menambahkannya ke .gitignore Anda dan mengelola file secara manual di setiap lingkungan.

Tombol Putar/Garam

Apa itu kunci/garam?

Bagian kunci dan garam adalah salah satu bagian yang lebih misterius dari wp-config . Kumpulan konstanta yang tampak aneh ini membantu enkripsi hal-hal seperti cookie dan nonce. Tanpa membahas detailnya—seperti yang dimiliki WP Engine—mereka menambahkan lapisan keacakan ekstra yang membuat segalanya lebih sulit untuk didekripsi jika Anda tidak mengetahui garam dan kuncinya.

Mengapa tombol/garam "memutar"?

Pertama, "putar" hanyalah kata yang bagus untuk "berubah." Saya tidak tahu mengapa kami menggunakan "putar". Ini tidak seperti kita pernah kembali ke set kunci yang sama!

Anda mungkin harus mengubah kunci dan garam Anda jika situs telah diretas, karena Anda tidak dapat menjamin bahwa kunci dan garam masih rahasia. Tetapi Anda mungkin ingin merotasinya secara teratur, seperti dengan kata sandi, hanya untuk memastikan tidak ada yang tahu apa itu.

Masalah dengan memutar kunci/garam

Mengganti kunci dan garam bukan tanpa rasa sakit. Siapa pun yang memiliki set cookie akan kehilangannya. Jadi siapa pun yang masuk akan di-boot, dan siapa pun yang memiliki keranjang WooCommerce akan mengosongkannya.

Cara memutar kunci/garam

Maksud saya, Anda dapat mengedit wp-config dan cukup mengetik beberapa karakter acak baru di atas yang lama. Tapi ini akan membosankan dan manusia tidak terlalu pandai dalam keacakan.

Jadi izinkan saya memberi tahu Anda tentang beberapa cara untuk mengatur kunci/garam baru di wp-config Anda.

  1. Menambahkan kunci secara manual dari generator: Anda dapat menggunakan generator wordpress.org untuk mendapatkan kode yang Anda butuhkan. Cukup salin dan tempel ke wp-config sebagai ganti nilai lama.
  2. Gunakan plugin: Banyak plugin keamanan seperti Sucuri Security, iThemes Security, dan Malcare semuanya memiliki fitur ini. Dan Salt Shaker adalah plugin khusus yang akan mengotomatiskan proses ini sesuai jadwal untuk Anda.
  3. Gunakan WP-CLI. Sudahkah kami mengatakan betapa hebatnya WP-CLI? Kita telah melakukannya? OKE. Nah, kami mengatakannya lagi! Dan Anda dapat menggunakan perintah wp config shuffle-salts untuk melakukan pekerjaan ini dalam hitungan detik.

Memindahkan dan Menyembunyikan Benda

Orang-orang keamanan akan memberi tahu Anda bahwa "keamanan dengan ketidakjelasan" bukanlah keamanan sama sekali, tetapi beberapa orang masih suka menyembunyikan barang WordPress mereka untuk memasang beberapa penghalang tambahan bagi peretas.

File wp-config memberi Anda sejumlah opsi untuk melakukan ini, dan kami akan membahasnya di bagian selanjutnya tentang memindahkan sesuatu dan mematikan pengeditan file.

Menonaktifkan Editor File

WordPress memiliki fitur praktis yang memungkinkan Anda mengedit file dalam tema dan plugin dari dalam dasbor admin. Mengedit wp-config.php memungkinkan Anda mematikan editor file ini! Beberapa orang suka menonaktifkannya untuk ketenangan pikiran.

Sekarang saya tahu bahwa ada argumen keamanan bahwa jika seseorang memiliki akses administrator ke situs Anda—yang diperlukan untuk menggunakan editor ini—maka mereka dapat mengunggah plugin dan tetap melakukan apa pun yang mereka suka. Mengaktifkan editor ini tidak memberi peretas kekuatan lebih dari yang sudah mereka miliki.

Namun, meskipun keamanan mungkin tidak benar-benar ditingkatkan dengan menonaktifkannya, alasan sebenarnya untuk melakukannya adalah untuk menghentikan orang yang benar-benar berwenang sebagai admin untuk menggunakannya. Jika Anda seorang agensi, Anda mungkin tidak ingin klien Anda mengetahui bahwa mereka dapat mengedit semua file tema mereka, bukan?

Banyak host hanya akan menonaktifkan fitur ini secara default. Tetapi jika Anda ingin menghilangkannya, sesederhana menambahkan:

 define( 'DISALLOW_FILE_EDIT', true );

Atau jika Anda benar-benar ingin mengunci sistem file Anda, ada DISALLOW_FILE_MODS , yang akan kita bahas di bagian selanjutnya.

Menonaktifkan Pembaruan Otomatis

Baik Anda menyukai atau membencinya, pembaruan otomatis WordPress memiliki dampak positif bersih pada ekosistem WordPress dan sulit untuk diabaikan. Tapi tidak semua orang ingin perangkat lunak mereka mengurus dirinya sendiri!

Jadi wp-config memberi Anda kendali atas proses pembaruan otomatis dengan serangkaian konstanta sederhana yang dapat Anda atur:

 # Disable all core updates: define( 'WP_AUTO_UPDATE_CORE', false ); # Enable all core updates, including minor and major: define( 'WP_AUTO_UPDATE_CORE', true ); # Enable core updates for minor releases (default): define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Jika Anda menginginkan sesuatu yang lebih ekstrim, Anda dapat DISALLOW_FILE_MODS :

 define( 'DISALLOW_FILE_MODS', true );

Tetapi ini menghentikan WordPress menulis apa pun ke disk yang terkait dengan inti, tema, plugin, atau terjemahan, dan menonaktifkan pemberitahuan email tentang pembaruan kecil. Ini telah dijelaskan oleh kontributor inti sebagai "sangat bodoh untuk digunakan kecuali Anda tahu persis apa yang Anda lakukan."

Sedikit kurang ekstrim adalah AUTOMATIC_UPDATER_DISABLED . Ini memungkinkan Anda menginstal plugin dan tema, tetapi tidak akan memperbaruinya atau perangkat lunak inti. Ini juga menonaktifkan pembaruan terjemahan.

 define( 'AUTOMATIC_UPDATER_DISABLED', true );

Ada panduan terperinci tentang semua ini di wordpress.org, termasuk beberapa opsi lain seperti menggunakan filter untuk kontrol yang lebih halus.

Terakhir, saya perhatikan bahwa jika situs Anda dikontrol versinya, maka kemungkinan WordPress telah menonaktifkan pembaruan untuk Anda. Misalnya, keberadaan direktori .git di root situs (atau berbagai file lain di berbagai tempat berbeda) akan menonaktifkan pembaruan otomatis tanpa Anda perlu menambahkan apa pun ke wp-config .

Mengonfigurasi HTTPS

Mengonfigurasi HTTPS sering kali menjadi tantangan. Dengan munculnya sertifikat keamanan tepercaya gratis dari tempat-tempat seperti LetsEncrypt dan Cloudflare, banyak host akan menyiapkannya untuk Anda dengan beberapa klik. Pengaturan ini mungkin harus dianggap sebagai warisan, tetapi mungkin Anda masih membutuhkannya untuk sesuatu.

Konstanta FORCE_SSL_ADMIN memberitahu WordPress untuk selalu menggunakan SSL untuk halaman login dan Dashboard WordPress. Ini memastikan bahwa kredensial dan cookie yang aman tidak dapat dikirim tanpa enkripsi.

Tapi, seperti yang saya katakan, perusahaan hosting yang baik akan membuat pengaturan HTTPS di situs Anda menjadi sederhana, jadi lakukan saja.

Mencegah Permintaan HTTP Eksternal

Terakhir dalam keamanan, Anda dapat memblokir permintaan HTTP eksternal. Ini berarti WordPress tidak dapat menghubungi tempat lain di internet untuk melakukan hal-hal seperti melakukan panggilan API atau mengunduh pembaruan.

Mengizinkan WordPress untuk menghubungi layanan eksternal melalui HTTP umumnya merupakan ide yang baik karena memungkinkan Anda mendapatkan pembaruan, menginstal plugin dan tema, dan banyak plugin akan rusak jika Anda menonaktifkan permintaan HTTP.

Tetapi inti WordPress dan banyak plugin dan tema mengirim "telemetri" atau "data penggunaan" kembali ke server pusat. Ini bisa bagus – ini membantu pengembang plugin dan tema mengetahui siapa yang menggunakan perangkat lunak mereka dan bagaimana caranya. Tetapi jika Anda memiliki situs yang memiliki data yang sangat sensitif, Anda mungkin ingin menonaktifkannya. Dan Anda dapat melakukannya dengan:

 define( 'WP_HTTP_BLOCK_EXTERNAL', true );

Jika Anda ingin memiliki daftar host yang diizinkan yang dapat dihubungi, Anda juga dapat melakukannya:

 define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

Perhatikan bahwa daftar host yang dapat diakses adalah daftar yang dipisahkan koma dan subdomain wildcard diperbolehkan. Dan Anda dapat memantau host apa yang dihubungi menggunakan plugin Log HTTP Requests.

Memindahkan Barang Di Sekitar

Tidak semua instalasi WordPress sama. Beberapa host atau kerangka kerja suka memindahkan direktori untuk alasan keamanan atau untuk menjaga kode dan aset khusus situs terpisah dari inti WordPress. Artikel saya tentang menggunakan Git dan Komposer untuk mengelola WordPress mencakup beberapa manfaat dari pendekatan ini.

Jadi opsi apa yang diberikan WordPress untuk Anda – karena menginginkan istilah yang lebih baik – “memindahkan barang”?

Mengubah Awalan Basis Data

WordPress menggunakan awalan nama tabel database wp_ secara default. Awalan ini ditambahkan ke semua nama tabel database dan digunakan di beberapa tempat lain juga, misalnya opsi <prefix>user_roles dalam tabel opsi, dan entri meta pengguna <prefix>capabilities .

Peretas atau penyerang dapat menggunakan awalan default dalam serangan, mencoba menemukan atau memodifikasi tabel database Anda. Jadi beberapa orang menyarankan untuk mengubahnya dari default.

Opsi wp_config $table_prefix memungkinkan Anda melakukan ini dan Anda mungkin harus mengaturnya ke string pendek tapi acak, diakhiri dengan garis bawah:

 $table_prefix = 'b4F8az_';

Ini akan memberi tahu WordPress untuk menggunakan nama tabel seperti b4F8az_posts alih-alih wp_posts .

Anda tidak perlu memperbarui kode apa pun untuk memenuhi perubahan ini (kecuali kode itu ditulis dengan sangat buruk), tetapi jika Anda mengubah ini di situs yang sudah ada, Anda harus membuat beberapa pembaruan pada database Anda – dan bukan hanya mengganti nama meja!

Beberapa plugin keamanan akan melakukan ini untuk Anda dan ada plugin yang dapat melakukan ini juga. Kami sangat menyarankan untuk membuat cadangan database Anda sebelum melakukan ini, dan perhatikan bahwa memilih awalan tabel non-default paling baik dilakukan saat menginstal WordPress, bukan saat mengubahnya saat situs Anda sedang dalam penerbangan.

Catatan aneh tentang ini adalah bahwa $table_prefix adalah variabel, bukan konstanta. Ini adalah satu-satunya variabel yang ditentukan dalam contoh file konfigurasi yang diberikan WordPress kepada Anda! Dan jika Anda masih penasaran: ya, perintah wp config WP-CLI menangani ini untuk Anda tanpa Anda harus tahu!

Memindahkan Tabel Pengguna dan Usermeta

Saya belum pernah melihat ini dilakukan, dan saya hanya mengetahui bahwa itu bisa dilakukan saat menulis artikel ini, tetapi Anda juga dapat sepenuhnya mengubah nama tabel pengguna dan usermeta.

Saya kira ini membantu mencegah serangan injeksi SQL yang mencoba "SELECT * FROM wp_usermeta;", tetapi saya senang mendengar alasan lain untuk melakukannya.

Bagaimanapun, konstanta CUSTOM_USER_TABLE dan CUSTOM_USER_META_TABLE adalah yang Anda butuhkan:

 define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' ); define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

Ada beberapa peringatan yang perlu diketahui sebelum Anda menggunakan konstanta ini. Periksa dokumen resmi sebelum menggunakan fitur ini. Dan seperti menggunakan awalan tabel khusus, ini pasti paling baik dilakukan saat memasang situs baru, daripada memodifikasinya nanti.

Pindahkan Direktori Konten, Unggahan, dan Plugin

Dimungkinkan juga untuk memindahkan seluruh wp-content , direktori uploads dan direktori themes dan plugins . Hal-hal yang perlu diperhatikan:

  • Dalam beberapa kasus ini Anda perlu mengatur URL serta direktori.
  • Anda harus berhati-hati untuk menggunakan jalur lengkap, atau jalur relatif yang sesuai.
  • Tak satu pun dari pengaturan ini harus memiliki garis miring.

Lihat dokumentasi resmi untuk detailnya – saya tidak akan mengulangi semuanya di sini.

Terakhir, perhatikan bahwa plugin atau tema dengan kode yang buruk dapat mengacaukan jika Anda mengubahnya. Ini seharusnya tidak pernah terjadi, tetapi perlu diketahui.

Jika Anda seorang pengembang plugin atau tema, penting untuk diingat bahwa jalur ini dapat berubah. Jadi pastikan untuk tidak membuat hard code path ke direktori atau URL. Fungsi yang berguna untuk Anda di sini adalah:

wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory - perhatikan bahwa untuk tema anak ini mengembalikan lokasi tema induk
get_template_directory_uri

Ada daftar fungsi yang lebih lengkap seperti ini di buku pegangan pengembang WordPress.

Terakhir, selain memindahkan file di dalam instalasi WordPress Anda, Anda mungkin juga ingin memindahkan lokasi wp-admin Anda, atau mengubah lokasi situs Anda. Dan wp-config.php dapat membantu dengan itu juga.

Pengaturan Terkait Konten

Bagaimanapun, WordPress adalah sistem manajemen konten. Jadi Anda mengharapkan beberapa konstanta yang dapat Anda gunakan di wp-config.php untuk mengontrol opsi konten. Mari kita lihat dan lihat apa yang bisa kita lakukan.

Ubah URL Situs dan Dasbor

Ini selalu membuatku bingung.

Untuk mengatur URL situs Anda, Anda perlu menggunakan konstanta WP_HOME , bukan konstanta WP_SITEURL .

Konstanta WP_SITEURL tidak mengubah URL situs Anda.

Bingung?

Deskripsi resmi tentang apa yang dilakukan WP_SITEURL adalah “alamat tempat file inti WordPress Anda berada.” Ini juga membingungkan karena ini adalah URL, bukan direktori.

Jangan salahkan saya untuk ini, saya hanya pemandu wisata Anda untuk hari itu!

Pengaturan WP_HOME dan WP_SITEURL menimpa entri home dan siteurl di tabel database wp_options . Jadi, setidaknya, masuk akal.

 // NOTE: These must not have trailing slashes define( 'WP_HOME', 'https://helfish.media' ); define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );

Anda dapat menggunakan konstanta ini setelah memindahkan situs ke URL baru, untuk membuat situs aktif dan berjalan saat Anda memperbaiki database dengan benar. Anda bahkan dapat memilih untuk membiarkannya di tempatnya sesudahnya.

Pengaturan WP_SITEURL juga dapat digunakan ketika Anda telah memindahkan file inti WordPress Anda ke direktori yang berbeda.

Menggunakan ini juga mencegah satu atau dua kueri database dijalankan untuk mendapatkan nilai dari tabel opsi, sehingga mungkin memiliki peningkatan kinerja marjinal. Meskipun jika Anda melakukan caching objek, keuntungan itu mungkin dapat diabaikan.

Ada beberapa detail lebih lanjut di dokumen resmi, dan bahkan artikel dukungan penuh tentang mengubah URL situs. Selain itu, artikel itu menyertakan konstanta RELOCATE yang tidak jelas untuk wp-config.php yang belum pernah saya dengar sebelum meneliti artikel ini.

Terakhir, saat memindahkan situs, perhatikan bahwa ini bukan satu-satunya hal yang harus Anda ubah. Disarankan untuk mencari dan mengganti basis data lengkap untuk string URL.

Pengaturan Posting

Ada beberapa pengaturan berbeda yang dapat Anda ubah dalam hal posting. Sebagian besar berkaitan dengan revisi posting atau fitur penyimpanan otomatis.

Posting Revisi

Perilaku default WordPress adalah menyimpan semua revisi yang dibuat untuk posting dan halaman. Keuntungannya adalah mudah untuk kembali ke versi sebelumnya. Kerugiannya adalah bahwa semua revisi tersebut memakan ruang dalam database dan dapat memengaruhi kinerja situs dengan memperlambat kueri database.

Dimungkinkan untuk sepenuhnya menonaktifkan revisi posting dengan memodifikasi nilai WP_POST_REVISIONS di wp-config.php Anda. Ini default ke true. Untuk mematikan revisi, Anda dapat menyetelnya ke false sebagai gantinya:

 define( 'WP_POST_REVISIONS', false );:

Beberapa host, termasuk WP Engine, menonaktifkan revisi posting secara default. Saya sarankan untuk memeriksa dengan penyedia hosting Anda sebelum melakukan perubahan apa pun. Ini bervariasi dari host ke host, tetapi jika Anda menggunakan WP Engine, Anda tidak dapat mengaktifkan revisi melalui wp-config , karena akan ditimpa di tingkat server.

Jika tuan rumah Anda mengontrol ini dan Anda mencoba mengubahnya, Anda tidak akan merusak sesuatu, tetapi Anda mungkin membuang-buang waktu.

Jika Anda khawatir tentang revisi posting yang memperlambat kueri basis data, opsi yang lebih baik mungkin adalah membatasi jumlah revisi yang disimpan WordPress. Ini dikendalikan oleh konstanta WP_POST_REVISIONS , yang dapat Anda atur ke jumlah maksimum revisi yang ingin Anda pertahankan:

 define( 'WP_POST_REVISIONS', 5 );

Mengubah Interval Simpan Otomatis

Anda juga dapat mengurangi seberapa sering penyimpanan otomatis dimatikan. Ini default untuk setiap 60 detik, tetapi Anda dapat mengubahnya ke apa pun yang Anda suka. Jika Anda paranoid, Anda mungkin ingin mengatur ini menjadi 20 atau 30 detik saja.

Penting untuk diingat berapa lama waktu yang dibutuhkan untuk menyimpan otomatis. Anda tidak ingin mereka tumpang tindih dengan membuatnya terjadi terlalu sering, jadi jangan atur nilai ini ke, misalnya, satu detik. Sangat kecil kemungkinannya bahwa penyimpanan otomatis akan memakan waktu lebih dari 60 detik default, tetapi Anda dapat meningkatkan interval jika Anda ingin menyimpan permintaan:

 define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds

Membungkus

Ada banyak potensi di wp-config yang menunggu untuk dibuka. Saya harap tur ini telah membantu menyoroti beberapa dari apa yang mungkin. Dalam artikel mendatang, saya akan melihat lebih banyak kemampuan lanjutan yang melekat pada wp-config , termasuk instalasi multisite, dan debugging. Saya juga akan melihat kinerja, termasuk cara menyesuaikan batas memori, masalah CRON, dan tipe lingkungan.

Tidak diragukan lagi harta karun lain yang bersembunyi di dokumentasi resmi, menunggu untuk ditemukan. Kiat apa yang Anda temukan untuk menggunakan wp-config ? Beri tahu saya di komentar.