Symfony2控制器中的ClearCache命令在生产环境中不起作用

时间:2016-05-06 13:50:30

标签: symfony caching controller console

我已经实现了Symfony2控制器方法,它允许用户以编程方式清除缓存(我的意思是缓存:clear --env = prod),它在本地环境中工作但不在生产环境中工作。

private function execute($command)
{
    $app = new Application($this->get('kernel'));
    $app->setAutoExit(false);

    $input = new StringInput($command);
    $output = new BufferedOutput();

    $error = $app->run($input, $output);

    if($error != 0)
        $msg = "Error: $error";
    else
        $msg = $output->fetch();
    return $msg;
}

此方法称为$ this-> execute('cache:clear --env = prod --no-warmup');

我得到的结果是CRITICAL错误,即使目录存在(并且为空)。从终端清除缓存后,结果没问题,但运行此控制器操作最终会出现异常。

'The directory /var/www/clients/client0/web1/web/app/cache/prod/jms_serializer" does not exist.'

有人能指出我可能出错的方向吗?该目录有755,缓存目录中的所有文件夹都拥有相同的所有者。

我唯一想到的是网络上有一个符号链接,这意味着我看到的是/var/www/example.com/web/app/cache/prod

服务器是虚拟的,里面有一些Debian。

1 个答案:

答案 0 :(得分:0)

我已经设法创建了一些非常简单的脚本,递归删除/缓存文件夹。 Symfony自己创造了它。