No hay tiempo para escribir una respuesta de función completa (sé un poco cojo) pero probablemente valga la pena compartir de todos modos (podría editar esto porque también planeo una publicación de blog sobre esto):
Eso significa que puede tener alguna configuración de WP basada en troncal / versión de rama que puede hackear completamente, incl. temas y complementos.
Como este es un repositorio independiente (local), puede enviar esto a través de ssh a otros repositorios, por ejemplo uno:
- Eso se encuentra en el host remoto donde se debe implementar el sitio (repositorio).
- Eso tiene ganchos para hacer que otro repositorio en ese host realmente se fusione con los cambios que acaba de presionar.
Esto se describe en un flujo de trabajo Git centrado en la web (noviembre de 2008; por Joe Maller) .
Si luego tiene un conmutador de configuración que elige el concreto en wp-config.php
función del sistema en el que se está ejecutando, incluso puede configurar centralmente todos los hosts (desarrollo, en vivo, puesta en escena, amigos, ...) dentro del repositorio.
Los cambios anteriores en WP solo se obtienen y se combinan en el subárbol.
Complementos que solo actualiza y confirma.
La implementación es simple $ git push remote
.
Ejecute copias de seguridad diarias en el host remoto para los repositorios git, la base de datos y los archivos cargados y esto es económico, fácil de usar y flexible. Esto funciona bien para configuraciones de desarrollador único, así como para equipos pequeños porque todos pueden realizar el pago desde la reproducción simple en el control remoto.
Hay algunas advertencias:
Ahora con su lista de verificación y la configuración como se describe anteriormente:
1. Me gustaría tener mi entorno git en mi propio servidor internamente, sin usar Github para manejar repos.
Github solo maneja repositorios ascendentes aquí (Wordpress), no el suyo.
2. Creación automática de subdominios al crear una rama git (development.domain.com, ryan.development.domain.com) - Probablemente algún gancho de script de shell sería ideal para esto.
La configuración como se describe es un enfoque modular con un repositorio por sitio. Puede manejar tantos hosts de desarrollo como desee, podría funcionar igualmente bien con una instalación de múltiples sitios para manejar múltiples dominios, pero eso contaría como una configuración de WordPress en este enfoque.
3. Phing PHP / Shell Script Manejo de la migración db (algo así como http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) para manejar el reemplazo de la base de datos serializada al presionar
Esto no es necesario aquí ya que solo el código está bajo control de versión, las bases de datos son independientes entre el desarrollo (, la puesta en escena) y la producción como debería ser.
Es posible que esté buscando una secuencia de comandos de instalación que realice correctamente la migración del dominio, pero incluso con un mejor código (que está disponible) que se ocupa de la búsqueda y el reemplazo de datos serializados, en esta configuración aquí normalmente no es necesario, ya que simplemente empuja los cambios a vivir , para los casos de prueba, puede crear rápidamente el contenido en la base de datos de desarrollo, que normalmente es el problema más pequeño (desde mi experiencia práctica, la suya puede diferir, pero también sugeriría mantener dichos temas relacionados con la migración de la base de datos en cuestiones de propio aquí en el sitio, pero pregúnteles).
Ejecuto alrededor de 200 sitios en mi propio servidor y me gustaría comenzar a implementar estos sitios en un entorno de flujo de trabajo fuerte de git para que pueda optimizar mi trabajo mucho mejor.
No puedo imaginar cómo esos sitios se convertirían en un entorno de flujo de trabajo de cadena git. Quizás las secuencias de comandos de configuración y los datos de configuración que administra aquí se mantendrán bajo el control de versión de git. Eso podría tener sentido. De lo contrario, por la gran cantidad de sitios, creo que no tiene ningún sentido mantener a todos en un repositorio git. Quizás ni siquiera uno de esos porque lo que describí anteriormente es para los sitios que desarrolla (incluido el código central de WP), no solo para las tareas de instalación. Por lo tanto, es probable que primero necesite crear un pequeño mapa de esos 200 sitios y cómo interactúan entre ellos y en qué paquetes (núcleo WP, complementos, temas) consisten esos sitios. Lo primero podría ser crear una hoja de cálculo / matriz y colocar todos los sitios.
Luego puede guardarlo como CSV, ponerlo bajo control de versiones y hacer que los scripts de implementación hagan su trabajo en función de ese archivo.
Y si he aprendido algo con las tareas de automatización: siga la filosofía de Unix, use las herramientas existentes y que funcionan bien (es mejor pasar medio día leyendo sobre algunos comandos y luego tratar de buscar alternativas porque para la mayoría de los trabajos, los problemas han sido ya resuelto) y se centran en las herramientas de línea de comandos. Ellos son los más poderosos.