Symfony无法创建日志目录


Symfony unable to create the logs directory

我正在将Symfony部署到web服务器,一旦部署,我想清除缓存。我现在使用的umask是0000,以避免任何潜在的权限问题(我在部署用户下进行清理,并在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/ dir的粘性位来设置权限为drwxrws--t,以便当我们作为部署用户进行缓存清除时,它可以将用户设置为apache和组设置为www,它们都在www组中。

似乎Symfony不会创建目录结构来存储日志(尽管它似乎为缓存创建)。这意味着日志目录(在本例中为/var/symfony/log/projectname/branchname/environment/)需要在清空缓存之前存在。

在我的例子中,为了解决这个问题,我将在我的部署(shell)脚本中运行检查以确保目录存在,如果不存在则创建它。

注意:如果你浏览到站点(并且权限正确),它将创建日志目录。但是,如果您使用控制台清除缓存命令,它将不会创建路径,并且将失败。