从 PHP 脚本 exec() 执行时无法从 gradle 获取输出


Unable to get output from gradle when executing from PHP-script exec()

我正在尝试通过使用 exec() 从 PHP 脚本执行 Gradle 来构建 Android 应用程序,但没有响应,所以我无法理解构建失败的原因。

从终端(SSH)执行应用程序gradle包装器时,使用以下命令,整个过程工作正常:

x:/path/to/project/$ ./gradlew assembleRelease
x:/path/to/project/$ ./gradlew assembleRelease --debug --stacktrace
x:/path/to/project/$ ./gradlew assembleRelease --debug --stacktrace > output.txt

输出工作正常,我能够解决任何可能的问题。从 PHP 脚本执行 gradle 时,没有输出。

// array for the output to be dumped into
$output_array = array();
// $result is empty (tried with stacetrace, debug and an output file)
$result = exec("cd /path/to/project && ./gradlew assembleRelease", $output_array);
// nothing displayed
var_dump($output_array);

我无法说出问题出在哪里。我已经检查了所需的环境变量($GRADLE_HOME$ANDROID_HOME)是否使用getenv()设置,并且它们指向正确的路径。

任何帮助都会很棒!

我不是 Linux 专家,但似乎您从"~/path/to/project"(~ 表示您的主页路径)启动它(ssh)。

在 php 中,您尝试从"/path/to/project"(根文件夹的绝对路径)启动它。

尝试用"LS"替换您的第二个命令,这样您就会看到您所在的位置......并与你应该去的地方进行比较!