Symfony2:生产中的 PdfBundle 会导致缓存:清除失败


Symfony2: PdfBundle in prod leads to cache:clear failure

即使 PdfBundle 供应商建议使用 umask(),如果已创建 PDF,则在尝试清除(共享主机)生产环境中的缓存时,也会发生以下情况。 如果尚未创建 PDF,则不会发生错误:

[意外值异常]
FilesystemIterator::__construct(/home/projectmana/www2.projectmana.org/app/ cache/prod_old/zfcache-bd):无法打开目录:权限被拒绝

目录列表为:

drwx------   2 www-data    www-data      4096 Nov  9 17:15 zfcache-05
drwx------   2 www-data    www-data      4096 Nov  9 17:15 zfcache-18
drwx------   2 www-data    www-data      4096 Nov  9 17:15 zfcache-31
drwx------   2 www-data    www-data      4096 Nov  9 17:15 zfcache-bd

共享主机环境中是否有消除此错误的方法?

在这种情况下,唯一可行的替代方法是在控制器中添加清除生产缓存的功能。这个SO帖子是最容易实现的。请注意,在共享主机环境中,系统管理员需要清除 prod* 目录,然后控制器操作才能生效。

您是否考虑过使用另一种缓存方法(如 apc)而不是文件?

ps_pdf:
    cache:
      type: apc

https://github.com/psliwa/PdfBundle#configuration