Apakah ada praktik terbaik untuk memasukkan wp-config.php
file Anda di repositori kontrol versi Anda?
Saya sedang mempertimbangkan untuk membuat situs baru dengan jenis konfigurasi ini, (mirip dengan Alex King dan Mark Jaquith ):
/index.php
/local-config.php
/wp-config.php
/wp/ (core)
/wp-content/ (plugins, themes, etc.)
Bagaimana saya bisa melakukan ini tanpa mengekspos kata sandi saya ke git, kalau-kalau repositori ini menjadi publik?
Khususnya di pos Mark, sepertinya local-config.php dapat menyimpan detail basis data dan kata sandi lokal, tetapi yang produksi tetap di wp-config.php. Apakah ini terlalu banyak masalah dan haruskah saya membiarkan wp-config.php tidak berversi?
wp-config
version-control
Jonaton
sumber
sumber
Jawaban:
Inilah cara saya melakukannya dan saya belum menemukan yang lebih baik dari ini. Saya menyimpan versi yang berbeda dari file wp-config.php di bawah kontrol versi dan kemudian menyimpan file satu direktori di atas yang menampung semua kredensial dan garam / kunci basis data. Juga dengan cara ini, saya dapat membedakan antara jenis pengaturan yang saya jalankan dan melakukan hal-hal yang berbeda berdasarkan itu.
Ini adalah bagian yang
wp-config.php
saya simpangit
( https://gist.github.com/1923821 ):Dan di sini adalah file konfigurasi lokal yang saya simpan satu direktori di atas root WordPress dan ini juga membuatnya di luar direktori yang dapat diakses web, jadi jika apache berhenti mem-parsing file PHP dan mulai membuangnya, kredensial basis data kami masih aman ( https: / /gist.github.com/1923848 ):
Dengan cara ini jika file di atas dinamai
local-config.php
, sistem saya berperilaku seperti instalasi lokal. Jika diberi namastaging-config.php
, berperilaku seperti instal pemasangan dan jika namanyaproduction-config.php
. Ini membantu saya memiliki nilai yang berbeda dari konstanta tertentu seperti debugging memiliki nilai yang berbeda di bawah lingkungan yang berbeda dan masih memiliki semuanya di bawah SCM (git). Kemungkinan tidak terbatas dan tidak ada peretasan yang diperlukan untuk lingkungan yang berbeda.Ini memastikan Anda tidak pernah mengungkapkan informasi sensitif apa pun kepada publik dan saya menggunakan ini hanya untuk memulai proyek apa pun yang saya kerjakan, saya memiliki kunci yang lebih kuat di tempatnya secara default dan segera setelah saya menambahkannya ke file konfigurasi kedua satu direktori di atas, yang digunakan bukan yang didefinisikan di sini. Kebahagiaan!
sumber
../
(yaitu../filename
) suatu tempat? - Saya tidak menemukan apa pun../
diwp-config.php
file utama .DB_CREDENTIALS_PATH
melakukan itu.Jika
wp-config.php
file Anda ada dalam kontrol versi, maka semua kata sandi yang dikandungnya juga akan berada dalam kontrol versi. Satu-satunya cara untuk menghindarinya adalah dengan tidak meletakkan file di kontrol versi.Perasaan saya adalah untuk tetap
wp-config.php
tidak berversi sepenuhnya. Tetapi ada beberapa cara di sekitarnya.Ekstrak bagian
wp-config.php
yang berisi kata sandi dan hash Anda ke file terpisah daninclude()
diwp-config.php
file biasa . Kemudian, letakkan diwp-config.php
bawah kontrol versi, tetapiinclude()
pisahkan file Anda .wp-config.php
:Anda dapat melihat sekarang bahwa kata sandi dan hash tidak dimasukkan
wp-config.php
sama sekali.conf.php
:Tapi jujur, pada titik ini Anda hanya menambahkan tingkat abstraksi yang berlebihan di sini. Seluruh alasan
wp-config.php
terpisah pada awalnya adalah karena itu khusus lingkungan. Anda tidak boleh menyalinnya dari server lokal ke produksi sama sekali ... jadi tidak harus di bawah kontrol versi sama sekali.sumber
wp-config.php
memiliki manfaat tambahan: Anda dapat memasukkanconf.php
ke dalam skrip non-WP tanpa memuat keseluruhan WordPress.Contoh Markus menganggap Anda bekerja dengan repo pribadi:
Alih-alih mendefinisikan kredensial, Anda dapat dengan mudah membuat file production-config.php dan memasukkannya dalam pemeriksaan bersyarat:
Kemudian di production-config.php Anda yang tidak berversi:
sumber
Anda bisa mengkomit
wp-config.php
file ke repositori tanpa string rahasia Anda, lalu jalankan:Ini akan memberitahu git untuk berasumsi bahwa file tersebut, yah, tidak berubah.
sumber
assume-unchanged
peralihan tetapi inilah dua poin saya: (1) Jika Anda git menambahkan file secara langsung, itu akan ditambahkan ke indeks. Jadi ada risiko Anda tidak sengaja dapat menambahkannya di beberapa titik. (2) Menggabungkan komit dengan flag ini aktif akan menyebabkan penggabungan gagal dengan anggun, sehingga Anda dapat menanganinya secara manual yang menjadikan ini bukan solusi yang elegan. Itu hanya dapat digunakan untuk mengabaikan perubahan sementara untuk sesuatu seperti sesi pengembangan. Di sini baca lebih lanjut - gitready.com/intermediate/2009/02/18/…