8

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

当我运行 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/bash.bashrc,/etc/profile以及/root/.bashrc/root/.profile没有找到类似 tty 或 stty 的任何内容。所以我不知道我可以删除什么来使它工作。

我有点卡住了,因为我需要缓存预热并且无法弄清楚出了什么问题。

4

1 回答 1

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。我希望这可以帮助一个或另一个在这样的问题上挣扎的人!

于 2012-06-04T20:29:47.240 回答