Symfony prod.log exception /var/cache/prod/annotations 是不可写的



我有基于symfony 3的web。对于部署,我有自己的 bash 脚本。在这个脚本中是像 git pull、清除缓存这样的例程......

在服务器上是: Debian GNU/Linux 9 (stretch(

但是部署后,我可以在prod.log中看到异常:

[2018-05-11 16:55:36] 请求。关键:未捕获的 PHP 异常 无效参数异常:">

目录 "/var/www/domain.com/var/cache/prod/annotations" 不可写。 在/var/www/domain.com/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php 第 92 行 {"exception":"[object] (InvalidArgumentException(code: 0(: 目录 \"/var/www/domain.com/var/cache/prod/annotations\" 不可写。 at/var/www/domain.com/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php:92("} []

但问题是 - 在清除缓存之前和之后,我有命令chmod -R 777 /var,部署后,如果我查看/var/cache/prod/annotations,我看到新文件的变化时间等于我运行清除缓存的时间(通过 sh 脚本(。

有人有什么想法吗?哪里看什么切克?

如果您的 shell 首先写入app/cache,然后您打开您的网站,其他部分也应该写入该文件夹,则会发生此错误。

简单的解决方案:将您的 shell 用户添加到您的 Web 服务器使用的组中,可能是www-data,通过sudo usermod -a -G www-data userName

问题是权限,要修复,请使用以下内容:

setfacl -R -m u:www-data:rX folderProject 
setfacl -R -m u:www-data:rwX folderProject/var/cache folderProject/var/logs folderProject/var/sessions folderProject/app/sessions  
setfacl -dR -m u:www-data:rwX folderProject/var/cache folderProject/var/logs folderProject/var/sessions folderProject/app/sessions  

将文件夹项目替换为您的项目名称。 如果您使用带有 apache 的 Ubuntu,此命令可以解决问题,如果您使用的是另一个 GNU/Linux,请将用户 www-data 更改为您的用户

最新更新