2011-08-10 1 views
4

J'ai une commande que j'ai créée qui fait un appel d'information à un dépôt SVN stocké sur le service SVN hébergé. Voici un exemple:Faire une requête de ligne de commande SVT HTTPS avec exec() dans PHP

exec('svn info https://myrepo.svn.beanstalkapp.com/project/name/folder 2>&1', $output, $returnStatus); 
if ($returnStatus) 
{ 
    print_r($output); 
} 

La réponse que je reçois est:

Array 
(
    [0] => Authentication realm: SVN 
    [1] => Password for 'apache': Authentication realm: SVN 
    [2] => Username: svn: PROPFIND request failed on '/project/name/folder' 
    [3] => svn: PROPFIND of '/project/name/folder': authorization failed (https://myrepo.svn.beanstalkapp.com) 
) 

Je suis d'exécuter le script sur une boîte qui a Plesk sur elle. Il fonctionne en local, donc je pense que c'est un problème de configuration (que je n'arrive pas à trouver de réponses en ligne).

Je ne sais pas comment faire en sorte que l'utilisateur apache puisse accéder au domaine d'authentification - Je pense que c'est le problème à résoudre.

+0

Il semble utiliser l'authentification de base sur https. Il peut donc suffire d'utiliser 'svn --password ... --username ...' pour exécuter la requête. – mario

+0

Je lance toujours cette erreur. La commande exacte que j'utilise est svn info --username myuser --password passe https://myrepo.svn.beanstalkapp.com/project/name/folder 2> & 1 - donne la même erreur. :-( –

+1

Pouvez-vous également ajouter des options '--no-auth-cache --non-interactive' pour les tests? Cela pourrait être pertinent dans votre cas, sinon essayez de définir $ HOME et $ USER sur le compte que vous avez exécuté avec succès' svn info' avec Ou en dernier recours configure 'sudo' pour effectuer n'importe quelle interaction sous ce compte - au lieu de l'utilisateur' apache' (peut fonctionner dans un sandbox/jail/selinux/etc?) – mario

Répondre

2

Vous devez fournir les informations de connexion - --username et --password (ou assurez-vous que les informations d'identification sont stockés dans ~/.subversion pour l'utilisateur exécutant l'application)

Et pourquoi utilisez-vous pas une bibliothèque client comme phpsvnclient - http://code.google.com/p/phpsvnclient/

+0

J'utiliserais le phpsvnclient, mais il n'est pas très sympathique ou ne semble pas bien pris en charge.Je passais en fait le nom d'utilisateur et mot de passe via l'URL à savoir http: // nom d'utilisateur: mot de passe @ http: //myrepourl.beanstalkapp.com - il jette encore cette erreur ... je pense que c'est une erreur de configuration ou quelque chose ... peut-être l'utilisateur Apache n'a pas la permission d'accéder à ce "domaine"? –

+0

David D. - L'avez-vous essayé comme 'svn info --username - -password https: // myrepo.svn.beanstalkapp.com/project/nom/dossier' – manojlds