php-命令不能与php shell_exec一起使用

时间:2015-02-25 08:07:13

标签: php linux bash shell-exec

我想使用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)。任何帮助将不胜感激:)

2 个答案:

答案 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>