2010-05-26 18 views
5

He leído mucho sobre la implementación de aplicaciones aquí, pero todavía no he encontrado una respuesta adecuada a nuestras necesidades.La mejor forma de implementar la aplicación web Zend

Tenemos una gran aplicación web construida con el framework zend que queremos implementar en un servidor remoto. Queremos poder implementar de manera fácil y segura una nueva versión de nuestra aplicación en nuestro servidor de producción.

lo que hay que hacer es la siguiente:

  • puesto una página de mantenimiento en la aplicación de producción? Versión
  • exportación desde SVN
  • ejecutar un script de shell para minify los archivos CSS en un directorio determinado (shell script se hace) permisos de archivo
  • conjunto de archivos y directorios
  • copia/sincronización? archivos a un servidor de producción -> ¿solo archivos modificados?
  • ¿quita la página de mantenimiento de la aplicación de producción?

Utilizamos SVN como una herramienta de control de versiones de código y estamos ejecutando CentOS como nuestro sistema operativo de servidor en producción.

He leído sobre: ​​

  • rsync
  • fredistrano/Capistrano
  • Phing
  • shell scripts personalizados

¿Cuáles son sus consejos para una fácil implementación de un clic?

+0

similares: http://stackoverflow.com/questions/1143154/how-to-deploy -sus-aplicaciones-php-correctamente – Sampson

+0

Otro similar: http://stackoverflow.com/questions/2006461/how-to-do-deployment-for-php-application –

Respuesta

3

puedo exportar (o caja) una copia de la página con un nombre diferente (por lo general el número de revisión de la subversión & fecha) y simbólicamente los directorios raíz de documentos en su sitio

1000.20100515/ 
    application/ 
    public/ 
    library/ 
1020.20100621/ 
current (symlink to 1000.20100515/) 
dev (symlink to 1020.20100621/) 

# copy whatever 'dev' points to as the new 'current' symlink. 
rm current && cp -d dev current 

La raíz del documento se encuentra en Apache para ../current/public

Con esto, puedo ver una nueva versión del sitio en el ocio, y poner la nueva versión en vivo en masa en una fracción de segundo. Volver a una versión anterior del sitio es tan fácil como cambiar el enlace simbólico, en caso de que se encuentre un problema importante.

Agregado La herramienta 'Capistrano' basado en Ruby puede ser un excelente método para automatizar completamente esto a través de una serie de máquinas (ya sea uno, o una docena), y de hecho es mi método preferido de despliegue ahora. Capifony es un complemento para Capistrano que también admite proyectos basados ​​en Composer.

+3

¿Y cómo maneja los cambios en el esquema DB? Ahí es donde comienza la diversión: p. – wimvds

+0

yup, me encantaría escuchar eso también. Dbdeploy? – Jorre

+0

.... cuidadosamente. –

0

Prueba Capistrano. Está desarrollado para Ruby y necesita tener Ruby instalado en su computadora, pero no es necesario tenerlo en el servidor de destino.

Funciona con git o svn, y crea versiones en el servidor de destino. Puede retroceder e implementar su nueva versión con una línea de CMD.

He encontrado este tutorial: http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment

Tiene una versión modificada de Capistrano con otro tutorial aquí: http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/

Cuestiones relacionadas