使用PHP exec()通过浏览器执行gradlew失败

时间:2016-02-01 00:02:31

标签: php curl browser exec gradlew

我想使用PHP运行gradlew。我尝试过的是使用exec(), shell_exec,passthru。我在名为“build.php”的PHP脚本中执行了这些命令。我尝试从浏览器或 curl 调用脚本并出现此错误

Exception in thread "main" java.lang.RuntimeException: java.io.: /var/www/.gradle/wrapper/dists/gradle-2.2.1-all/6dibv5rcnnqlfbq9klf8imrndn/gradle-2.2.1-all.zip.lck (No such file or directory)

然而,当我使用php build.php从命令行调用它时,它运行得非常好。

所以,我需要通过浏览器的用户操作执行gradlew命令。我的问题:什么可能导致这个错误以及如何摆脱它?

已更新

这就是build.php的样子:

<?php

// some sorts of code ...

$alias = 'myalias';
$storepass = 'mypassword';
$keypass = 'mypassword';

$keystore = str_replace('.', '_', $packageName);
$exec = 'keytool -genkey -noprompt -keystore '.$keystore.'.keystore -alias '.$alias.' -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=kahfi, OU=ID, O=yanmii, L=jogja, ST=diy, C=ID" -storepass '.$storepass.' -keypass '.$keypass;
echo $exec;
$output = '';
exec($exec, $output);
print_r($output);

passthru("./gradlew assembleRelease 2>&1");

?>

0 个答案:

没有答案