20 juin
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