J'ai un projet hébergé avec gitolite sur mon propre serveur, et je voudrais déployer l'ensemble du projet à partir du dépôt nu de gitolite vers le lieu accessible d'apache, par un hook post-receive.
J'ai le contenu du prochain crochet
echo "starting deploy..."
WWW_ROOT="/var/www_virt.hosting/domain_name/htdocs/"
GIT_WORK_TREE=$WWW_ROOT git checkout -f
exec chmod -R 750 $WWW_ROOT
exec chown -R www-data:www-data $WWW_ROOT
echo "finished"
Le crochet ne peut pas être terminé sans message d'erreur.
chmod: changing permissions of `/var/www_virt.hosting/domain_name/file_name': Operation not permitted
signifie que git n'a pas le droit de le faire.
Le chemin de la source git est /var/lib/gitolite/project.git/
qui appartient à gitolite:gitolite
Et avec ces permissions, redmine (qui travaille sous l'utilisateur www-data) ne peut pas accéder au dépôt git pour récupérer toutes les modifications.
L'ensemble du projet devrait être placé ici : /var/www_virt.hosting/domain_name/htdocs/
qui appartient à www-data:www-data
.
Quels changements dois-je faire pour que le hook post-receive fonctionne correctement dans git, et redmine avec le dépôt ?
ce que j'ai fait, c'est :
# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),119(gitolite)
# id gitolite
uid=110(gitolite) gid=119(gitolite) groups=119(gitolite),33(www-data)
n'est pas aidé.
Je veux avoir aucun problème pour faire fonctionner apache (pour voir le projet), redmine pour lire les fichiers sources du projet (sous git) et git (faire le déploiement vers le chemin accessible www-data).
que dois-je faire ?