Pb script pour mise à jour via SVN

Résolu
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 29 août 2007 à 15:19
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 30 août 2007 à 11:25
Bonjour à tous,

Ca fait un plus d'un jour et demi que je me casse la tête sur le problème suivant :

Situation :

Serveur linux, Apache2, Subversion (SVN).
J'ai un dépot de fichiers dans /srv/www/htdocs/svn/depot/site_web.
Le contenu du dépot est récupéré dans le dossier /srv/htdocs/site_web.

Fichier index.php dans /srv/htdocs/site_web :

<?php

$retour;

$cmde = "whoami";
echo " $cmde
";
system($cmde,$retour);
echo "
retour: $retour

";

$cmde = "groups";
echo "$cmde
";
system($cmde,$retour);
echo "
retour: $retour

";

$cmde = "env | grep PWD=";
echo " $cmde
";
system($cmde,$retour);
echo "
retour: $retour

";

$cmde = "ls -l";
echo "$cmde
";
system($cmde,$retour);
echo "
retour: $retour

";

$cmde = "svn upgrade";
echo " $cmde
";
system($cmde,$retour);
echo "
retour: $retour

";

?>

Problème :

Lorsque je vais sur http://serveur/site_web, voici ce qui s'affiche :

whoami
wwwrun
retour: 0

groups
www
retour: 0

env | grep PWD =
PWD=/srv/www/htdocs/site_web
retour: 0

ls -l
total 4 -rwxrwxrwx 1 wwwrun www 552 Aug 29 15:07 index.php
retour: 0

svn update

retour: 1

Tout se passe bien sauf la mise à jour (svn update). Mais quand je suis sur la console, connecté avec le login wwwrun, je me place dans "/srv/htdocs/site_web" et je tape : "svn up", ça marche : ça affiche "At revision 1."

wwwrun:www est propriétaire de tout /srv/www/htdocs/svn et /srv/htdocs/site_web.

Qu'est-ce qui ne va pas ??

Merci pour votre aide

7 réponses

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
30 août 2007 à 11:25
j'ai déjà fait une redirection de la sortie vers un fichier, le ficheir contenait la même chose.

Pour ton deuxième point je voit ce que tu veux dire. index.pph fait effectivement parti des fichiers du dépot, mais je ne crois pas que apache garde le fichier ouvert en lecture, je peux presque te l'affimer même puisque maitenant ca marche.

Voilà comment j'ai fait :
j'ai fait un shell script, on va dire qu'il est dans /srv/scripts/script_svn
j'ai ensuite modifier le fichier /etc/sudoers
j'ai rajouté la ligne wwwrun ALL=NOPASSWD:/srv/scripts/script_svn
dans index.php je fais : system("sudo /srv/scripts/script_svn");
ca marche.

Je vais m'appliquer pour serrer les droits au max.

A+
3
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
29 août 2007 à 20:46
$cmde = "svn upgrade";

la commande "svn upgrade" n'existe pas.
c'est "svn update" ou "svn up"

D'où ton code d'erreur 1.
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
29 août 2007 à 20:50
j'ai pas pris les valeurs en même temps que le code, mais les valeurs retournées indiquent que c'est svn update qui a été exécuté, et ca ne marche pas.
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
29 août 2007 à 21:25
Alors essayes avec exec au lieu de system pour avoir les éventuels messages d'erreurs retournés par ta commande.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
29 août 2007 à 23:01
J'ai déjà essayé popen, system et shell_exec. J'essayerais exec, sinon je vais créer un script en shell et essayer de l'exécuter depuis php...
Merci, je te tiens au courant
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
30 août 2007 à 10:03
exec ne donne pas plus d'informations. Le script exécuté depuis php fait la même chose... Il me semble avoir lu que l'on pouvait exécuter un script avec les droits de son créateur avec apache. Je vais faire des recherches de ce coté la je pense.
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
30 août 2007 à 11:12
Je crois savoir ce qu'il t'arrive. Mais d'abord deux questions :

As-tu fais la redirection de la sortie des erreurs vers la sortie standard avec exec (pour avoir justement les message d'erreurs) ?

svn update 2>&1

Le fichier index.php fais-t-il partie des fichiers contenus dans le dépôt (tu vois ce que je veux dire) ?
0