我想使用php在我的Ubuntu服务器上执行以下命令:
android create project --target 8 --name $fname --path ./$fname --activity MainActivity --package $fpack 2>&1
以上命令是创建一个Android应用程序项目。因此,当我在终端上输入此命令时,它工作正常,但是当我通过php执行它时:
<?php
$fname = $_POST['fname'];
$fpack = $_POST['fpack'];
$email = $_POST['email'];
//Creating a new Android project
var_dump(shell_exec("android create project --target 8 --name $fname --path ./$fname --activity MainActivity --package $fpack 2>&1"));
?>
当我运行PHP脚本时,我得到以下输出:
string(26) "sh: 1: android: not found "
为什么当我手动输入终端(来自用户'ashish'帐户)但不能用php输入时?我的apache用户和组是相同的(ashish)。任何帮助将不胜感激:)
答案 0 :(得分:0)
看到这个
http://php.net/manual/en/function.shell-exec.php
http://php.net/manual/en/function.exec.php
shell_exec - 通过shell执行命令并将完整输出作为字符串
返回exec - 执行外部程序
所以尽量使用 exec()insted shell_exec()
exec(&#34; android create project --target 8 --name $ fname --path ./$fname --activity MainActivity --package $ fpack 2&gt;&amp; 1&#34;)
答案 1 :(得分:0)
从shell_exec更改为exec对我有用。
我试图运行没有输出的脚本...
显然,它有所作为...
更改所有者也很重要:
CREATE TABLE users (
user_id int(6)
NOT NULL
AUTO_INCREMENT
PRIMARY KEY,
name varchar(64)
NOT NULL,
display_name varchar(256)
NOT NULL
);
我不确定将其包含在exec参数中是否有帮助:chown www-data:www-data -R <directory>