2016-11-07 68 views
0

我正在将Symfony部署到Web服务器,并且一旦部署,我想清除缓存。我现在使用的是一个为0的umask,以解决任何潜在的权限问题(我在deploument用户下执行清除并在apache用户下运行该站点)。Symfony无法创建日志目录

我使用/var/symfony/cache/projectname/branchname/environment/var/symfony/log/projectname/branchname/environment作为dirs来保存缓存和日志。这些配置在AppKernel.php文件中。

当我部署(使用的PHP斌/控制台高速缓存:明确--env =督促--no调试'),我得到一个消息,说:

[RuntimeException的] 无法创建日志目录()

我已经做了触摸创建在/ var/symfony中/日志/ DIR文件,它工作得很好,所以任何想法,为什么缓存清除命令失败的原因?

我们正在使用从/var/symfony/ DIR高达设置权限为drwxrws--t黏着位,这样,当我们做缓存明确作为部署的用户,它可以设置用户为Apache和组作为WWW组中与他们两人WWW 。

+1

运行脚本的用户没有创建这些目录的权限,您可以事先创建,或者授予用户在父目录中创建文件的权限。使用ACL触摸父母的用户/组。如果服务器是Linux,请查看setfacl和getfacl命令。 – solarc

+0

不,这不是问题,我已经为未来发布了答案。 – MicWit

回答

1

看来Symfony不会创建存储日志的目录结构(尽管它似乎是用于缓存)。这意味着日志目录(在这种情况下,/var/symfony/log/projectname/branchname/environment/需要在清除缓存之前存在)

在我的情况下,为了解决这个问题,我将在我的部署(shell)脚本中运行检查以确保该目录存在并创建如果它不是,

注意:如果您浏览到站点(并且权限是正确的),它将创建日志目录。但是,如果您使用console clear cache命令,它将不会创建路径并将