我正在尝试使用vagrant和默认的ubuntu 10.04 64位计算机将我的开发环境(symfony2应用程序)从我的Windows 7 localhost移动到虚拟机。一切都已建立,几乎可以运作,但有一件事困扰着我:
当我运行ant并执行phpunit时,我在执行自制bootstrap时遇到以下错误:
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/bash.bashrc
,/etc/profile
以及/root/.bashrc
和{{1}没有找到像tty或stty这样的东西。所以我不知道我能删除什么才能让它发挥作用。
我有点卡住,因为我需要缓存预热并且无法弄清楚出了什么问题。
答案 0 :(得分:1)
这需要一段时间来弄明白,但我现在明白了。
由于某种原因,传递给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
更改。我希望这可以帮助一个或那个与这样的问题斗争的人!