Projet de sites Web mis à jour par SVN

Ce tutoriel met en place une communication serveur Web / serveur de Subversion.
le but sera de mettre à jour un projet de site web qui sera une copie locale d’un projet subversionné.
Le principe est que lors d’un commit d’un fichier sur SVN, le projet Web hébergé sur un autre serveur sera mis a jour automatiquement.
Plus besoin de serveur local pour tester son site !

Installer un nouveau projet sur le serveur :

1/ Faire le hook Post commit
Se connecter en SSH sur le serveur SVN
Aller dans le répertoire du projet subversionné ,puis dans hook/post-commit

si le fichier post-commit n’existe pas , copier coller le post-commit-template

rajouter :

WEBSERVER=adresse IP du server
SCRIPT_PATH=shellExecNomduProjet.php

wget http://$WEBSERVER/$SCRIPT_PATH

mettre le post-commit en droits 777

2/ Créer le domaine sur le serveur web

se connecter en SSH sur le serveur Web

Aller dans /etc/apache2/sites-available rajouter www.projet.tan  (pour Debian / ubuntu)

taper ensuite a2ensite www.projet.tan pour activer le vhost
reloader apache

Contenu :

<VirtualHost *:80>
ServerAdmin admin@domain.com
ServerName projet.tan
ServerAlias www.projet.tan
DocumentRoot "/var/www/projet/"

</VirtualHost>

3/ Créer un répertoire dans /var/www

faire un svn checkout http://adresseduserveurSVN/TanSubversion/nomduprojet
dans  /var/www/nomduprojet

appliquer les droits suivants sur ce répertoire :
chmod 775
user : www-data
group : www-data

4/ Créer un shellExecProjet.sh

Exemple :

<?php

echo 'update project<br>';
$cmd = 'updateproject.sh';
$output = shell_exec('cd script;./'.$cmd);

//$output = shell_exec('ls -al');

echo nl2br($output);

?>

appliquer les droits suivants sur ce fichier :
chmod 775
user : www-data
group : www-data

5/ Scripts :

Dans scripts créer  updateProjet.sh:

 #!/bin/sh

USER="loginSVN"
PASS="motdepasseSVN"
SVNPATH="/var/www/Projet"
SVN_INFO_FILE="infoProjet.txt"

cd $SVNPATH

svn update --username $USER --password $PASS

svn log --limit 10 -v > /var/www/script/$SVN_INFO_FILE

et créer infoProjet.txt (document texte vierge)

appliquer les droits suivants sur ces fichiers :
chmod 775
user : www-data
group : www-data