我试图在php的函数内运行一些flyway命令。 这是一个简单的干净功能,如下所示:
function clean_schema() {
chdir('my/current/path');
try{
exec('flyway clean', $output, $result);}
catch(Exception $e){
var_dump($e);
}
}
现在作为输出和结果我得到一个空数组和错误127.我环顾四周,发现这意味着我没有将flyway设置为系统环境,但如果我直接运行flyway clean命令我的cmd shell程序,它运行得很好。
答案 0 :(得分:1)
Error code 127表示在给定的上下文中找不到可执行文件。您的shell与从Web上下文执行的shell不同,可能是因为您的PATH
环境变量为different。
您是否尝试使用absolute path执行应用程序?了解可执行文件的第一个位置:
which flyway
然后:
exec('/absolute/path/flyway clean', $output, $result);