I wanted a seamless procedure to update web sites and web applications without compromising security. Je voulais une procédure transparente de mise à jour des sites Web et des applications web sans compromettre la sécurité. The development server is under a firewall and so is the production server. Le serveur de développement est en cours d'un pare-feu, de même que le serveur de production. Also the changes should be merged bi-directionally. Aussi les changements devraient être fusionnés bi-directionnelle. I had few options like subversion or unison. J'ai eu quelques options comme la subversion ou l'unisson. I chose subversion because of greater familiarity and also because all of our source code is maintained in Subversion. J'ai choisi la subversion en raison d'une plus grande connaissance et aussi parce que tous nos code source est mis à jour de Subversion. Here are the simple steps which you too can use to keep your production and development server in sync. Voici les étapes simples qui vous aussi pouvez utiliser pour maintenir votre production et de développement serveur de synchronisation.

The requirements are: Les exigences sont les suivantes:
1. Subversion should be installed on both the machines Subversion devraient être installées sur les machines
2. You should be able to allow certain IP addresses in your development server machine Vous devriez être en mesure d'autoriser certaines adresses IP de votre machine serveur de développement
3. Apache running on development server and configured to allow access to Subversion repository.* Apache tourne sur serveur de développement et configuré pour autoriser l'accès à Subversion repository .*

*My development server runs Apache which is configured to allow access to Subversion repository. * Mon serveur de développement qui tourne Apache est configuré pour permettre l'accès à Subversion repository. This is simple to setup and so I will not dwell upon it. C'est très simple à installer et donc je ne m'attarderai pas sur lui.

The firewall is configured separately for two subnets. Le pare-feu est configuré séparément pour les deux sous-réseaux. The subnet identified as internet is not allowed to access any internal servers. Le sous-réseau identifié comme Internet n'est pas autorisé à accéder à tous les serveurs internes. 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. Mais j'ai ajouté l'adresse IP de mon serveur de production comme un hôte de confiance des coups de poing qui, pour l'essentiel un trou dans le pare-feu pour permettre à mon serveur de production à accéder à mon serveur de développement.

With this simple setup all that is required is to checkout the files on the production server. Avec cette configuration simple tout ce qui est nécessaire à la caisse les fichiers sur le serveur de production. I can make changes to the files from any development machines or even the production machine. Je peux apporter des modifications aux fichiers de tout développement des machines ou même la machine de production. After testing the files are committed and then the production server is updated with a single command (svn update). Après les essais, les fichiers sont alors engagés et le serveur de production est mise à jour avec une seule commande (SVN mise à jour).

BTW: If you are unfamiliar with Subversion you may find it easier to understand with my TVA: Si vous n'êtes pas familier avec Subversion mai vous trouver plus facile de comprendre avec mon 5 minutes guide to subversion 5 minutes guide à la subversion .

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. L'inconvénient de cette approche est que la subversion crée tonnes de fichiers pour son propre usage (en. Svn), qui consomme de l'espace et mai de créer des problèmes pour l'hébergement Web palns à faible espace disque. For an alternative you can try using Unison. Pour une alternative que vous pouvez essayer d'utiliser l'unisson.

Note: The security of the process can be further improved by transferring the data through ssh tunnel only. Note: La sécurité du processus peut être encore améliorée par le transfert des données via le tunnel SSH.