【问题标题】:ClearCache command in Symfony2 controller does not work in production environmentSymfony2 控制器中的 ClearCache 命令在生产环境中不起作用
【发布时间】:2016-05-06 13:50:30
【问题描述】:

我已经实现了 Symfony2 控制器方法,它允许用户以编程方式清除缓存(我的意思是 cache: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');

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

'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。

【问题讨论】:

    标签: symfony caching controller console


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-06
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多