2010-05-26 10 views
5

Ho letto molto sulla distribuzione delle applicazioni qui, ma non ho ancora trovato una risposta adeguata alle nostre esigenze.Il modo migliore per distribuire l'applicazione Web Zend

Abbiamo una grande applicazione Web costruita con il framework zend che vogliamo implementare su un server remoto. Vogliamo essere in grado di distribuire in modo facile e sicuro una nuova versione della nostra applicazione sul nostro server di produzione.

ciò che deve essere fatto è il seguente:

  • messo su una pagina di manutenzione sulla domanda di produzione? Versione
  • esportazione da SVN
  • eseguire uno script di shell per minify i file CSS in una certa directory (script di shell è fatto) i permessi dei file
  • insieme su file e directory
  • copia/sincronizzazione? file su un server di produzione -> solo i file modificati?
  • rimuovere la pagina di manutenzione dall'applicazione di produzione?

Utilizziamo SVN come strumento di controllo delle versioni del codice e stiamo eseguendo CentOS come sistema operativo del server in produzione.

che ho letto su:

  • rsync
  • fredistrano/Capistrano
  • Phing
  • script di shell personalizzata

Quali sono i tuoi consigli per la facile implementazione con un clic?

+0

analogo: http://stackoverflow.com/questions/1143154/how-to-deploy -your-php-applications-correct – Sampson

+0

Un altro simile: http://stackoverflow.com/questions/2006461/how-to-do-deployment-for-php-application –

risposta

3

esportare (o checkout) una copia del sito con un nome diverso (in genere il numero di sovvertimento di revisione & data) e link simbolico la radice del documento in posizione

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 radice del documento è impostato in Apache per ../current/public

Con questo, posso controllare una nuova versione del sito a piacere, e mettere la nuova versione live en-mass in una frazione di secondo. Passare a una versione precedente del sito è facile come cambiare il link simbolico - se si riscontrasse un grosso problema.

Aggiunto Lo strumento ruby-based 'Capistrano' può essere un ottimo metodo per automatizzare completamente questo in un certo numero di macchine (che si tratti di uno, o una dozzina), e in effetti è il mio metodo preferito di distribuzione ora. Capifony è un plug-in per Capistrano che supporta anche progetti basati su Composer.

+3

E come si gestiscono le modifiche allo schema del DB? È qui che inizia il divertimento: p. – wimvds

+0

sì, mi piacerebbe sentire anche quello. Dbdeploy? – Jorre

+0

.... attentamente. –

0

Prova Capistrano. È sviluppato per Ruby e devi avere Ruby installato sul tuo computer, ma non è necessario averlo sul server di destinazione.

Funziona con git o svn e crea versioni sul server di destinazione. È possibile eseguire il rollback e distribuire la nuova versione con una riga di CMD.

Ho trovato questo tutorial: http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment

Si dispone di una versione modificata di Capistrano con un altro tutorial qui: http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/

Problemi correlati