La mejor opción para implementar una aplicación web CakePHP para alojamiento compartido

Siempre he editado código en vivo en un sitio a través de una connection FTP en Coda o similar, sin embargo, acabo de escribir mi primera aplicación web PHP para inscripciones de usuarios, etc. y soy muy cauteloso de que voy a necesitar un plan mejor que "edición en vivo". Estoy en hosting compartido, así que creo que cosas como SVN y GIT probablemente están fuera, pero ¿hay algún software / scripts / soluciones que me permitan enviar código en vivo a un server web y tener la copy maestra en mi Mac?

¿Cuáles son las experiencias de las personas con las aplicaciones web / implementación y el alojamiento compartido?

Escribí mi propio sistema de implementación para evitar la edición en vivo.

Se ejecuta en varias etapas, son:

  1. SVN exporta desde el repository local (esto significa que no obtienes muchos directorys .svn)
  2. rsync exportó el código al server en vivo, pero en el modo de ejecución directa para que pueda ver lo que realmente va a upload a la vida. Este command tiene algunas exclusiones: – excluir aplicación / tmp
  3. rsync en modo normal

Algunos extras que he puesto

  • Debido a que estoy ejecutando el código en varios serveres web detrás de un equilibrador de carga, excluyo core.php y database.php. Luego, he enlazado esos files en cada uno de los serveres web a un NFS accesible desde el centro.
  • La rsync para live se ejecuta, pero solo la carga una vez (a NFS). El script de deployment luego ejecuta un command en un server remoto (a través de ssh) para iniciar una rsync entre el NFS y los serveres web. Es un script bash que significa que puedo administrar fácilmente los nodos web y cómo se expulsan los files.

¡Espero que ayude!

uso una herramienta de shell cakephp que escribí, que usa "rsynch" y solo carga el delta (cambios realizados hasta el momento). con una secuencia de commands rsync de este tipo es rápido para cargar files modificados. solo una cuestión de 1-2 segundos.

con otro proyecto tengo que comprometer todo y manualmente "svn update" el server todo el time. muy molesto + tienes que comprometer incluso "etapas de testing".

entonces, después de todo, recomiendo usar la carga delta anterior. Asegúrate de NO cargar ningún elemento de tmp o, lo que es peor, anular los files basados ​​en el entorno, como cargas, files en caching, etc. Al usar scripts por lotes como rsynch, normalmente puedes excluir algunos directorys.

mi configuration, por ejemplo, es

server xxx username xxx password xxx local C:\...\app\ remote /var/www/site protocol ftp permissions ignore state timesize exclude _* exclude *__* exclude *~* exclude .svn exclude .git exclude /tmp exclude /files/uploads/* exclude /webroot/files/tmp exclude /webroot/img/content/*