2008-09-16 8 views
5

Tenemos varios proyectos de PHP desarrollados en Windows (xampp) que deben implementarse en una combinación de servidores de Linux/Windows.Despliegue de PHP en servidores de Windows/Unix

Hemos usado capistrano en el pasado para implementar desde Windows a los servidores de Linux, pero los cambios recientes en la arquitectura y los servidores de Windows dejaron la configuración anterior sin funcionar. La receta funciona bien para la implementación de Linux, pero la configuración de los servidores de Windows ha requerido más tiempo de lo que tenemos ahora. Las ideas para la receta de Capistrano son respuestas válidas. obviamente, los servidores windows/linux no comparten usuarios, por lo que esto lo complica un poco (para la suposición capistrano del mismo nombre de usuario/contraseña en todas partes).

Actualmente estamos usando svn-update para los servidores de Windows, lo que no me gusta, ya que deja todos los archivos svn colgando en los servidores de producción. (y todavía tenemos que svn-update manualmente en Windows) Y la actualización manual de archivos usando winscp y la sincronización de los directorios con sus contrapartes de Linux.

Mi pregunta es, ¿qué herramientas/configuración Qué sugieres para automatizar este escenario de implementación: "Varios desarrolladores de PHP Windows/Linux que despliegan a 2+ máquinas Windows/Linux mixtos"

(ps: tenemos no hay problemas al usar linux tools o cualquier cosa que funcione a través de cygwin, simplemente necesitamos hacer que el despliegue sea una simple operación de un solo paso)

editar: Actualmente no podemos trabajar en un entorno all-linux, tenemos que implementar en ambos Linux y servidor de Windows. Podemos comenzar la implementación desde cualquier lugar, pero preferiríamos poder hacerlo desde cualquier entorno.

Respuesta

4

utilizo 4 enfoques diferentes dependiendo del entorno de cliente:

  1. Capistrano y herramientas similares (eficaces, pero compleja)
  2. rsync de + a Windows, Linux , Mac (simple, no hace cumplir la disciplina)
  3. svn de + a Windows, Linux, Mac (simple, no imponer la disciplina)
  4. On-servidor de secuencias de comandos (ejecutar a través del navegador, complejo)

hay algunos requisitos que impulsan lo que necesita:

  • ¿Cuánta disciplina que desea aplicar
  • Si necesita la base de datos (o configuración) migraciones (arriba y/o hacia abajo)
  • Si quieres un estático "estamos abajo" página
  • ¿Quién puede hacer la actualización
  • diferencias de configuración entre servidores

Sugiero aplicar la disciplina suficiente para salvarte: despliega en un servidor de desarrollo, permite las migraciones hacia arriba y la restauración simple de la base de datos, y limita quién puede actualizar el servidor directo a un pequeño número de administradores responsables (donde el servidor dev está abierto a más desarrolladores). También considere empujar a través de un trabajo cron (al servidor de desarrollo), de modo que haya una instantánea diaria de sus cambios incrementales.

mayoría de las veces, me parece que o bien svn o rsync configuraciones son suficientes, con algunas secuencias de comandos del lado del servidor, sobre todo cuando el conjunto de administración se limita a unos pocos desarrolladores.

0

Capistrano es la mejor herramienta de implementación que he visto. ¿Los cambios de arquitectura hacen que sea imposible arreglar las configuraciones para que funcione de nuevo?

1

Esto probablemente suene tonto, pero ... Yo solía tener este tipo de problemas todo el tiempo hasta que decidí al final que si estoy siempre despliegue en Linux, que debía realmente a por lo menos intento desarrollando en Linux también. Yo si. Fue sin dolor. Nunca volví.

Ahora. No estoy sugiriendo que esto sea para todos. Pero, si instala VirtualBox, puede ejecutar una instalación de Linux como un servidor local en su cuadro de Windows. Comparta una carpeta en la máquina virtual y puede usar todas sus técnicas y software de Windows conocidos y de confianza. y tienen la tranquilidad de saber que todo funciona bien en su plataforma de destino.

Además, podrá volver a Capistrano (una buena opción) para la implementación.

¡Lo mejor de todo, si creía que sabía Linux/Unix, espere hasta que lo use todos los días en su escritorio!Quién sabe que puede siquiera le gusta :)

0

¿Por qué ya no puedes usar capistrano?

¿Por qué no te gusta svn-update?

¿Qué cosas en su aplicación requieren una implementación especial?

0

Puede configurar svn:ignore propiedades de ficheros de configuración, de modo que svn update no borrarlas, y luego usar svn export /target/path/ para deshacerse de .svn archivos en su repositorio de Subversion.

Cuestiones relacionadas