Я пытаюсь запустить некоторые команды flyway внутри функции из php.
это простая чистая функция, которая выглядит примерно так:
function clean_schema() {
chdir('my/current/path');
try{
exec('flyway clean', $output, $result);}
catch(Exception $e){
var_dump($e);
}
}
Теперь в качестве результата и результата я получаю пустой массив и ошибку 127. Я осмотрелся и обнаружил, что это означает, что у меня не установлен flyway в качестве системного окружения, но если я запускаю команду flyway clean непосредственно в моей командной оболочке cmd программа работает нормально.
Код ошибки 127 означает, что исполняемый файл не был найден в данном контексте. Ваша оболочка отличается от оболочки, выполненной из веб-контекста, возможно потому, что ваша PATH
переменная окружения разные.
Вы пытались запустить приложение с абсолютный путь вместо? Узнайте, где исполняемый файл является первым:
which flyway
затем:
exec('/absolute/path/flyway clean', $output, $result);
Других решений пока нет …