【发布时间】: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