Symfony2 Process::start() 在生产环境中 运行 时失败
Symfony2 Process::start() fails when running in production environment
我正在使用 Symfony2 Process 组件来触发生成相当大的报告的 cli 脚本。此时我正在使用 ajax 来监视它的进度并在前端显示进度条填充。在 app_dev.php 中执行以下代码时,它 运行 非常完美,没有任何问题。但是,当我 运行 它在生产中时,它无法启动 Process()。
这是我的代码:
public function generateAction($reportSlug)
{
$this->wrangler->addMoodleGlobal('CFG');
$time = time();
$commandSlug = "report:{$reportSlug}";
$console = $this->container->get('kernel')->getRootDir() ."/console";
$process = new Process("exec php {$console} {$commandSlug} {$time} > /dev/null 2>/dev/null &");
$process->start();
return $this->renderJson(json_encode(array(
'success' => true,
'message' => "php {$console} {$commandSlug}",
'time' => $time
)));
}
我有运行php app/console cache:clear --env="prod"
以及php app/console cache:warmup --env="prod"
机器人无济于事。
谢谢。
当我更改线路时不确定真正的问题是什么
$process = new Process("exec php {$console} {$commandSlug} {$time} > /dev/null 2>/dev/null &");
使用临时输出文件:
$process = new Process("exec php {$console} {$commandSlug} {$time} > /tmp/output.log 2>/tmp/output.log &");
一切开始正常工作。任何人都可以阐明这一点吗?
我正在使用 Symfony2 Process 组件来触发生成相当大的报告的 cli 脚本。此时我正在使用 ajax 来监视它的进度并在前端显示进度条填充。在 app_dev.php 中执行以下代码时,它 运行 非常完美,没有任何问题。但是,当我 运行 它在生产中时,它无法启动 Process()。
这是我的代码:
public function generateAction($reportSlug)
{
$this->wrangler->addMoodleGlobal('CFG');
$time = time();
$commandSlug = "report:{$reportSlug}";
$console = $this->container->get('kernel')->getRootDir() ."/console";
$process = new Process("exec php {$console} {$commandSlug} {$time} > /dev/null 2>/dev/null &");
$process->start();
return $this->renderJson(json_encode(array(
'success' => true,
'message' => "php {$console} {$commandSlug}",
'time' => $time
)));
}
我有运行php app/console cache:clear --env="prod"
以及php app/console cache:warmup --env="prod"
机器人无济于事。
谢谢。
当我更改线路时不确定真正的问题是什么
$process = new Process("exec php {$console} {$commandSlug} {$time} > /dev/null 2>/dev/null &");
使用临时输出文件:
$process = new Process("exec php {$console} {$commandSlug} {$time} > /tmp/output.log 2>/tmp/output.log &");
一切开始正常工作。任何人都可以阐明这一点吗?