2012-02-19 2 views
2

J'essaye de configurer github pour automatiser le déploiement de websever. J'ai tout fonctionne sauf le plus important. J'ai un fichier @ mydomain.com/github.php qui ressemble à ceci:'git pull' s'exécutant en SSH, mais pas dans le script github post-receive

<?php 
`git pull`; 
?> 

ce qui est l'URL après réception pour mon repo github. Github est en train de publier avec succès, mais la commande shell n'est pas en cours d'exécution. Lorsque je tente l'exécution de ssh dans mon serveur, et en cours d'exécution directement le script:

php github.php 

il fonctionne très bien et les fichiers modifiés sont tirés avec succès

From git://github.com/user/Repo 
    7e3176d..f889c14 master  -> origin/master 

mais lorsque vous accédez à la page dans mon navigateur ou lorsque GitHub POSTs à lui - la commande shell n'est pas exécutée. Il n'y a pas d'erreur - juste un résultat vide. Qu'est-ce que je fais mal ici?

+1

Je n'ai jamais vu cette syntaxe PHP avant – Vitamin

+2

http://php.net/manual/fr/language.operators.execution.php Je viens d'apprendre à ce sujet l'autre jour moi-même :) – Yev

+0

try Kuba

Répondre

3

Il y a 2 questions possibles:

  1. Autorisations - le plus probable que votre utilisateur du serveur web ne dispose pas nécessaire
  2. répertoire de travail. Vérifiez bien que votre commande shell est en cours d'exécution dans le chemin correct (getcwd())

UPD

Git envoie les messages d'erreur à stderr, pour ainsi voir le vrai message d'erreur que vous avez besoin

echo `git pull 2>&1`; 
+0

1. I Je fais cela sur l'un des sous-comptes de mon VPS. J'ai le plein contrôle pour entrer et faire les changements nessecary aux permissions, mais malheureusement je ne sais pas comment/où je ferais ceci. Pourriez-vous m'indiquer comment je pourrais vérifier et définir les autorisations appropriées? 2. Le répertoire de travail actuel est correct. – Yev

+0

"erreur: impossible d'ouvrir .git/FETCH_HEAD: Autorisation refusée" est l'erreur que je reçois. – Yev