我正在将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')我收到一条消息:
[RuntimeException的] 无法创建日志目录()
我已经在/ var / symfony / log / dir中创建了一个文件并且工作正常,所以任何想法为什么缓存清除命令都失败了?
我们使用来自/var/symfony/
目录的粘滞位将权限设置为drwxrws--t
,这样当我们以部署用户身份清除缓存时,它可以将用户设置为apache并将组设置为www他们都在www组。
答案 0 :(得分:1)
似乎Symfony不会创建用于存储日志的目录结构(尽管它似乎是用于缓存)。这意味着在清除缓存之前需要存在日志目录(在这种情况下为/var/symfony/log/projectname/branchname/environment/
。
在我的情况下,为了解决这个问题,我将在部署(shell)脚本中运行检查,以确保目录存在并创建目录(如果不存在)。
注意:如果您浏览到该站点(并且权限正确),它将创建日志目录。但是,如果使用console clear cache命令,它将不会创建路径并将失败。