¿Existe alguna práctica recomendada para incluir su wp-config.php
archivo en su repositorio de control de versiones?
Estoy considerando crear un nuevo sitio con este tipo de configuración (similar a Alex King y Mark Jaquith ):
/index.php
/local-config.php
/wp-config.php
/wp/ (core)
/wp-content/ (plugins, themes, etc.)
¿Cómo puedo hacer esto sin exponer mis contraseñas a git, en caso de que este repositorio se vuelva público?
Especialmente en la publicación de Mark, parece que local-config.php puede almacenar detalles y contraseñas de bases de datos locales, pero los de producción permanecen en wp-config.php. ¿Es esto demasiado problema y debería dejar wp-config.php sin versión?
wp-config
version-control
jjeaton
fuente
fuente
Respuestas:
Así es como lo hago y no he encontrado nada mejor que esto. Mantengo una versión diferente del archivo wp-config.php bajo control de versiones y luego mantengo un archivo un directorio arriba que contiene todas las credenciales de la base de datos y sales / claves. También de esta manera, puedo distinguir entre el tipo de configuración que estoy ejecutando y hacer las cosas de manera diferente en función de eso.
Aquí está el
wp-config.php
que mantengo debajogit
( https://gist.github.com/1923821 ):Y aquí está el archivo de configuración local que mantengo un directorio por encima de la raíz de WordPress y esto también lo hace fuera del directorio accesible desde la web, por lo que en caso de que apache deje de analizar archivos PHP y comience a desecharlos, nuestras credenciales de base de datos siguen siendo seguras ( https: / /gist.github.com/1923848 ):
De esta manera, si se nombra el archivo anterior
local-config.php
, mi sistema se comporta como una instalación local. Si se nombrastaging-config.php
, se comporta como una instalación provisional y si se nombraproduction-config.php
. Me ayuda a tener diferentes valores de ciertas constantes, como la depuración, tener diferentes valores en diferentes entornos y aún tener todo bajo SCM (git). Las posibilidades son infinitas y no se requieren hackers para diferentes entornos.Esto se asegura de que nunca revele ninguna información confidencial al público de todos modos y lo uso solo para comenzar cualquier proyecto en el que trabajo, tengo las claves más seguras de forma predeterminada y tan pronto como las agrego al segundo archivo de configuración, un directorio arriba, esos se usan en lugar de los definidos aquí. ¡Felicidad!
fuente
../
(es decir../filename
) en alguna parte? - No encontré ninguno../
en elwp-config.php
archivo principal .DB_CREDENTIALS_PATH
hace eso.Si su
wp-config.php
archivo está en control de versiones, las contraseñas que contenga también estarán en control de versiones. La única forma de evitar eso es no poner el archivo en control de versiones.Mi instinto sería mantenerme
wp-config.php
completamente sin versionar. Pero hay algunas formas de evitarlo.Extraiga la parte de
wp-config.php
eso que contiene sus contraseñas y hashes en un archivo separado yinclude()
en elwp-config.php
archivo normal . Luego, colóquelowp-config.php
bajo control de versiones, pero mantenga suinclude()
archivo separado.wp-config.php
:Ahora puede ver que las contraseñas y los hash no están incluidos en
wp-config.php
absoluto.conf.php
:Pero, sinceramente, en este punto solo está agregando un nivel redundante de abstracción aquí. La razón completa
wp-config.php
es separada en primer lugar porque es específica del entorno. No debería copiarlo de un servidor local a producción en absoluto ... por lo que no debería estar bajo control de versiones.fuente
wp-config.php
tiene un beneficio adicional: puede incluirconf.php
en un script que no sea WP sin cargar todo WordPress.El ejemplo de Mark supone que está trabajando con un repositorio privado:
En lugar de definir las credenciales, podría crear fácilmente un archivo production-config.php e incluirlo dentro de la verificación condicional:
Luego, en su versión no configurada-config.php:
fuente
Puede enviar el
wp-config.php
archivo al repositorio sin sus cadenas secretas y luego ejecutar:Esto le dirá a git que asuma que el archivo no ha cambiado.
fuente
assume-unchanged
cambio, pero aquí están mis dos puntos: (1) Si puede agregar el archivo directamente, se agregará al índice. Por lo tanto, existe el riesgo de que pueda agregarlo accidentalmente en algún momento. (2) Fusionar una confirmación con este indicador activado hará que la fusión falle correctamente, de modo que pueda manejarla manualmente, lo que hace que esta no sea una solución elegante. Solo se puede usar para ignorar temporalmente los cambios mientras que algo como una sesión de desarrollo. Aquí lea más - gitready.com/intermediate/2009/02/18/…