我已经实现了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。
答案 0 :(得分:0)
我已经设法创建了一些非常简单的脚本,递归删除/缓存文件夹。 Symfony自己创造了它。