Php symfony2应用程序,流浪者和;ant:stty:标准输入:参数无效

Php symfony2应用程序,流浪者和;ant:stty:标准输入:参数无效,php,ant,symfony,phpunit,stty,Php,Ant,Symfony,Phpunit,Stty,我正在尝试使用vagrant和默认的ubuntu 10.04 64位机器将我的开发环境(symfony2应用程序)从windows 7本地主机移动到虚拟机。一切都准备好了,几乎可以正常工作,但有一件事困扰着我: 当我运行ant并执行phpunit时,我在执行我自己制作的引导程序时出现以下错误: stty: standard input: Invalid argument 我可以将问题缩小到执行symfony cache:warmup命令的以下代码行: executeCommand($appli

我正在尝试使用vagrant和默认的ubuntu 10.04 64位机器将我的开发环境(symfony2应用程序)从windows 7本地主机移动到虚拟机。一切都准备好了,几乎可以正常工作,但有一件事困扰着我:

当我运行ant并执行phpunit时,我在执行我自己制作的引导程序时出现以下错误:

stty: standard input: Invalid argument
我可以将问题缩小到执行symfony cache:warmup命令的以下代码行:

executeCommand($application, "cache:warmup");
这将执行以下命令:

php app/console -e test -q cache:warmup
在没有ant的情况下运行phpunit可以正常工作,在没有executeCommand行的情况下运行ant也可以正常工作

我读了一些关于这个stty错误的信息,并查找了
~/.bashrc
~/.profile
/etc/bashrc
/etc/profile
,以及
/root/.bashrc
/root/.profile
,但没有找到任何类似tty或stty的内容。所以我不知道我可以删除什么来让它工作


我有点困了,因为我需要缓存预热,无法找出哪里出了问题。

这花了一段时间才弄清楚,但我现在明白了

出于某种原因,传递给symfony2应用程序对象的选项仅在ant运行时才会导致问题。 我不知道是什么原因导致了它,但将命令更改为此可以解决问题:

php app/console --env=test --quiet cache:warmup
因为这只是一个很长的表格,没有改变任何事情,我很高兴。我的整个executeCommand函数如下所示:

function executeCommand($application, $command, Array $options = array()) {
    $options["--env"] = "test";
    $options["--quiet"] = true;
    $options = array_merge($options, array('command' => $command));

    $application->run(new ArrayInput($options));
}
唯一的变化是第2行和第3行,其中数组的键从
-e
-q
更改。我希望这能帮助那些在这样的问题上挣扎的人