【发布时间】:2017-03-20 07:04:00
【问题描述】:
我正在将 Symfony 部署到 Web 服务器,部署后我想清除缓存。我现在使用 0000 的 umask 来解决任何潜在的权限问题(我在 deploument 用户下进行清除并在 apache 用户下运行网站)。
我使用/var/symfony/cache/projectname/branchname/environment 和/var/symfony/log/projectname/branchname/environment 作为dirs 来保存缓存和日志。这些是在AppKernel.php 文件中配置的。
当我部署(使用 'php bin/console cache:clear --env=prod --no-debug')时,我收到一条消息:
[运行时异常] 无法创建日志目录()
我已经在 /var/symfony/log/ 目录中创建了一个文件,它运行良好,所以知道缓存清除命令失败的原因吗?
我们使用/var/symfony/ 目录中的一个粘性位将权限设置为drwxrws--t,这样当我们以部署用户身份进行缓存清除时,它可以将用户设置为 apache 并将组设置为 www,它们都在www 组。
【问题讨论】:
-
运行脚本的用户没有创建这些目录的权限。您可以预先创建 then 或授予用户在父目录中创建文件的权限。您可以在不使用 ACL 触及父级的用户/组的情况下执行此操作。如果服务器是 Linux,请查看 setfacl 和 getfacl 命令。
-
不,这不是问题,我已经为将来的人们发布了答案。
标签: php apache symfony caching