"Unable to write in the cache directory"(交响乐)



我正在尝试将我的symfony 3.4应用程序部署到生产环境中,并且在所有配置之后,当我访问索引页时会发生此错误:

[Thu Aug 30 15:46:27.245613 2018] [php7:error] [pid 1748]  PHP Fatal error:  Uncaught RuntimeException: Unable to write in the cache directory ([...]/app/cache/prod)
in [...]/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:755
Stack trace:
#0 [...]/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(633): Symfony\Component\HttpKernel\Kernel->buildContainer()
#1 [...]/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(137): Symfony\Component\HttpKernel\Kernel->initializeContainer()
#2 [...]/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(197): Symfony\Component\HttpKernel\Kernel->boot()
#3 [...]/web/app.php(14): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#4 {main}
thrown in [...]/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php on line 755

app/cache 和 app/logs 目录拥有正确的权限,它们属于 "apache" 用户(Centos 7 服务器(。

所以,我不知道我做错了什么。解决方案是什么?

感谢您的回复 MoxGeek。经过多次头痛,我解决了它。问题不在于权限,而在于服务器配置。我用 SELinux 创建了一个 Centos 7 服务器实例,所以问题就在那里。

解决方案只是禁用 SELinux。之后就没有问题了! 多谢。

您是否为您的应用程序/缓存和应用程序/日志提供了正确的权限? 也不要忘记清除缓存

是的。此解决方案工作正常。

程序:

打开 SELinux 配置文件:/etc/selinux/config找到以下行:

SELINUX=enforcing

将值更改为禁用:

SELINUX=disabled

保存更改并关闭文件。 下次重新启动时,SELinux 将被永久禁用。

注: 除了禁用 SELinux,您还可以设置permissive属性。这将帮助您打印警告而不是enforcing

命令:

SELINUX=permissive

要在重新启动之前动态禁用它,请运行以下命令:

# setenforce 0

相关内容

最新更新