Fehlermeldung beim Update trotz installiertem Git "Cannot run "sync-recipes --force": git not found."

Ich antworte mir mal selbst, weil ich mithilfe einer Facebook-Gruppe und vor allem mithilfe meines Providers eine Lösung finden konnte:

Git wird nicht gefunden, weil der Befehl

is_executable(‚/usr/bin/git‘)

im Update Skript von Shopware durch open_basedir (Kein Zugriff auf /usr/bin/) unterbunden wird. In der Folge wird die Fehlermeldung „Cannot run „sync-recipes --force“: git not found.“ ausgegeben.

Sofern Git sicher installiert ist, kann das Update nach Auskommentieren der folgenden Zeilen durchgeführt werden:

in /htdocs/shopware/vendor/symfony/flex/src/Command/InstallRecipesCommand.php:

/*
exec(‚git --version‘, $output, $retval);
if ($retval === 0) {
// Git ist verfügbar
}
else {
// Git ist nicht verfügbar
}
*/

und in /htdocs/shopware/vendor/symfony/flex/src/Command/UpdateRecipesCommand.php

/*
if (!@is_executable(strtok(exec($win ? ‚where git‘ : ‚command -v git‘), \PHP_EOL))) {
throw new $runtimeExceptionClass(‚Cannot run „recipes:update“: git not found.‘);
*/

Und am Ende noch einen Hinweis von meinem Provider (fürs Shopware-Team): Diese Prüfung hätte man anders lösen können, in dem man die Prüfung direkt per exec durchführen würde:

exec(‚git --version‘, $output, $retval);
if ($retval === 0) {
// Git ist verfügbar
}
else {
// Git ist nicht verfügbar
}

1 „Gefällt mir“