I wanted a seamless procedure to update web sites and web applications without compromising security. Quería una perfecta procedimiento para actualizar los sitios web y aplicaciones web sin comprometer la seguridad. The development server is under a firewall and so is the production server. El desarrollo del servidor se encuentra bajo un cortafuegos y también lo es el servidor de producción. Also the changes should be merged bi-directionally. Asimismo, los cambios deberían fusionarse bi-directionally. I had few options like subversion or unison. Tuve algunas opciones como la subversión o unísono. I chose subversion because of greater familiarity and also because all of our source code is maintained in Subversion. Yo escogí la subversión debido a una mayor familiaridad y también porque todos los de nuestro código fuente se mantiene en Subversion. Here are the simple steps which you too can use to keep your production and development server in sync. Aquí están los pasos sencillos que usted puede utilizar para mantener su producción y el desarrollo en el servidor de sincronización.

The requirements are: Los requisitos son los siguientes:
1. Subversion should be installed on both the machines Subversion debe estar instalado en tanto las máquinas
2. You should be able to allow certain IP addresses in your development server machine Usted debe ser capaz de permitir que ciertas direcciones IP en su máquina servidor de desarrollo
3. Apache running on development server and configured to allow access to Subversion repository.* Apache se ejecuta en el servidor de desarrollo y configurarse para permitir el acceso al repositorio de Subversion .*

*My development server runs Apache which is configured to allow access to Subversion repository. * Mi servidor de desarrollo que ejecuta Apache está configurado para permitir el acceso al repositorio de Subversion. This is simple to setup and so I will not dwell upon it. Esto es simple de instalar y de modo que no voy a detenerme en él.

The firewall is configured separately for two subnets. El firewall está configurado por separado para dos subredes. The subnet identified as internet is not allowed to access any internal servers. La subred de Internet identificadas como no se le permite acceder a cualquier tipo de servidores internos. However I added the IP address of my production server as a trusted host which essentially punched a hole in the firewall to allow my production server to access my development server. Sin embargo he añadido la dirección IP de mi servidor de producción como un host de confianza que, en esencia, un agujero perforado en el firewall para permitir que mi servidor de producción para acceder a mi servidor de desarrollo.

With this simple setup all that is required is to checkout the files on the production server. Con esta simple configuración de todo lo que se requiere es para pedir los archivos en el servidor de producción. I can make changes to the files from any development machines or even the production machine. Puedo hacer cambios a los archivos de cualquier desarrollo máquinas o incluso la máquina de producción. After testing the files are committed and then the production server is updated with a single command (svn update). Después de probar los archivos se han comprometido y, a continuación, el servidor de producción se actualiza con un solo comando (svn update).

BTW: If you are unfamiliar with Subversion you may find it easier to understand with my BTW: Si no está familiarizado con Subversion puede resultarle más fácil de entender con mi 5 minutes guide to subversion 5 minutos de guía a la subversión .

The downside of this approach is that subversion creates tons of files for its own use (in .svn directories) which consumes space and may create problems for web hosting palns with low disk space. La desventaja de este enfoque es que la subversión crea toneladas de archivos para su propio uso (en. Svn directorios) que consume el espacio y puede crear problemas para web hosting palns con baja de espacio en disco. For an alternative you can try using Unison. Por una alternativa se puede tratar de usar Unison.

Note: The security of the process can be further improved by transferring the data through ssh tunnel only. Nota: La seguridad del proceso puede mejorarse aún más mediante la transferencia de datos a través de ssh túnel.