ich ein PHP-Skript bereit, dasgit ziehen nicht, wenn sie von Apache ausgeführt arbeiten, sondern arbeitet auf CLI
shell_exec("git pull");
läuft es angeblich jedes Mal ein Webhook für git Repo-Lauf sein gibt es Änderungen an der Fernbedienung gedrückt. Nach der Ausführung passiert nichts, ich bekomme eine leere Antwort.
Ich habe den Besitzer des Verzeichnisses in "Apache" geändert (Repo wurde als "Apache" geklont). Ich habe einen Schlüssel generiert und auf bitbucket hochgeladen. Es scheint richtig zu funktionieren, wenn ich
läuft funktioniert es perfekt. Keine Eingabeaufforderung.
wenn ich
shell_exec("whoami");
laufen bekomme ich "Apache".
Ist es möglich, dass PHP den Git-Pull blockiert? Wenn ich andere Git-Befehle (wie Git Status), bekomme ich die Antwort.
UPDATE
wenn ich
shell_exec("git pull 2>&1");
tun, sagt er
error: cannot open .git/FETCH_HEAD: Permission denied
Ich bin verwirrt. Ich bin sicher, .git dirs und subdirs Besitzer Apache und es hat richtig priviliges zu gehen ...
UPDATE # 2
Ich betreibe
shell_exec("git --work-tree=/path/to/repo --git-dir=/path/to/repo/.git pull 2>&1");
und es sagt noch
error: cannot open /path/to/repo/.git/FETCH_HEAD: Permission denied
nicht weg! /path/to/repo/.git/FETCH_HEAD ist für alle lesbar!
Ich bin gut verwirrt.
Versuchen Sie dies http://stackoverflow.com/questions/13195814/trying-to-git-pull-with-error-cannot-open-git-fetch-head-permission-denied –