Symfony Apache 2:无法创建缓存目录 /var/cache

Posted

技术标签:

【中文标题】Symfony Apache 2:无法创建缓存目录 /var/cache【英文标题】:Symfony Apache 2 : Unable to create the cache directory /var/cache 【发布时间】:2018-03-09 15:13:08 【问题描述】:

我知道这个问题已被多次报告,但我尝试了每一个解决方案,但似乎没有任何效果。

我在 Debian 9 Stretch 上运行 Symfony 3,但存在我无法修复的权限问题

cat /var/log/apache2/project_error.log

php 致命错误:未捕获的 RuntimeException:无法在 /var/www/mobileoutfitters.fr/public_html/vendor/ 中创建缓存目录 (/var/www/mobileoutfitters.fr/public_html/var/cache/prod)\n symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:676\nStack

/etc/apache2/envvars

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

我的用户实际上是该组的一部分。我尝试了所有可能的chown -R 777 命令,并且正如 Symfony 文档中所说,这两个命令:

HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1)

sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var

我试图删除 var 文件夹,删除它的内容,清除缓存...但是还是这个错误。

【问题讨论】:

检查目录的所有者,也许它的根目录和你的 www-data 不能在那里创建。 目录归我的用户所有,或者由 www-data 拥有,具体取决于我的尝试 【参考方案1】:

原来我的 Symfony 数据库已创建但为空。

运行后:bin/console doctrine:schema:update --force 现在可以工作了

【讨论】:

【参考方案2】:

我也遇到过同样的问题,对我来说,在我使用 setenforce Permissive 在本地 Centos 虚拟机虚拟机上禁用 selinux 后它就可以工作了。

【讨论】:

以上是关于Symfony Apache 2:无法创建缓存目录 /var/cache的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf Symfony资产缓存破灭

创建新 symfony 项目时出错,无法使用 bin/console

Symfony 和 Docker - 缓存和日志目录权限

Symfony 2 Apache 2.4 php7 升级 Vhost 文件

Symfony .htaccess apache-pack无法正常工作

Apache2 Vhost 不适用于 Symfony 2.8