Pb script pour mise à jour via SVN [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
dmk04
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
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

Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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+
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
7
$cmde = "svn upgrade";

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

D'où ton code d'erreur 1.
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
7
Alors essayes avec exec au lieu de system pour avoir les éventuels messages d'erreurs retournés par ta commande.
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
7
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) ?