【发布时间】:2016-06-12 13:05:59
【问题描述】:
我在生产中有一个 Symfony 项目,运行 sudo php app/console cache:clear --env=prod 后,文件夹的权限变为
drwxr-xr-x 11 root root 4096 Feb 29 15:08 prod
这不允许用户www-data(apache 默认用户)再访问它。
如何清除缓存并将 www-data 读/写到缓存文件夹?
另外,为我得到的开发模式运行php console cache:clear
The stream or file "../app/logs/dev.log" could not 和 dev.log 文件已创建并具有以下权限:
be opened: failed to open stream: Permission denied-rw-r--r-- 1 www-data www-data 2840530 Feb 29 15:01 dev.log
【问题讨论】:
-
sudo -u {owner} php cache:clear -e prod -
我不建议你用这个命令清理缓存。我发现它并不总是删除这些文件。而是手动删除缓存中的 prod 和 dev 目录/
-
不要将其作为 sudo 运行。除非您指定,否则 cache:clear 将在其清除缓存后执行“预热”。这意味着它创建了缓存目录的基本文件夹结构。结果权限将是 root(如果从 sudo 运行)
-
不仅仅是缓存清除命令。它也是数据库创建、模式更新和尝试写入 dev.log 的所有内容