Php shell_exec响应命令

Php shell_exec响应命令,php,shell,Php,Shell,我试图通过php脚本在我的服务器上执行命令。我有cPanel,但我正在通过我的域访问php文件。脚本是: $output = exec('php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations'); echo "<pre>$output</pre>"; 试一试 通过这种方式,您可以将yes的输出通过管道传输到php脚本。这意味着什么:exec(“yes”)?没有任何意义。。。您需要

我试图通过php脚本在我的服务器上执行命令。我有cPanel,但我正在通过我的域访问php文件。脚本是:

$output = exec('php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations');
echo "<pre>$output</pre>";
试一试


通过这种方式,您可以将yes的输出通过管道传输到php脚本。

这意味着什么:
exec(“yes”)?没有任何意义。。。您需要将字符串写入(回显)一个管道,以写入该命令输入。所以你需要更多的管道。您需要以不同的方式启动所执行的命令,以便能够将管道连接到该命令。如果命令不起作用,则会显示:错误:迁移失败。在migrationPath中指定的目录不存在:@ve ndor/dektrium/yii2 user/migrations;“是”不是命令:
不将“是”识别为内部或外部命令、可操作程序或批处理文件。
它正在工作,非常感谢。我在执行时犯了错误it@FosAvance:哪个在工作?错误是什么?这可能对其他人有帮助。它不起作用。我只想使用“是”来确认命令:应用上述迁移?(是|否)[否]。但我不知道怎么做,我在谷歌上搜索,但找不到你用
exec(“echo yes | php yii migrate/up--migrationPath=@vendor/dektrium/yii2 user/migrations”)试过了吗?
?现在可以用了,非常感谢。我在执行时犯了错误
exec("php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")
    $handle = fopen ("php://stdin","r");
    exec("yes");
    $line = fgets($handle);
    if(trim($line) != 'yes'){
        echo "ABORTING!\n";
        exit;
    }
    echo "\n";
    echo "Thank you, continuing...\n";
exec("yes | php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations")