我无法正确获取权限。我正在尝试通过 XAMPP 在我的 Mac 上的本地环境中运行它。
我尝试了以下方法:
- 做脱模
- 设置权限
- 通过清除缓存
php app/console cache:clear
rm -rf app/cache/*
rm -rf app/logs/*
sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
确保将 www-data 用户替换为您的 Web 服务器运行的用户。通过运行以下命令找出您的 Web 服务器以哪个用户身份运行:
ps aux | grep http
或者
ps aux | grep apache
您可能还需要启用 ACL。有关详细信息,请参阅安装文档,有关 ACL 的信息,请参阅此页面。
从命令行运行 Symfony 时,缓存的文件/目录由您登录的用户创建 - 在您的情况下,“jess”。在您的浏览器中运行网页时,它们是由网络服务器用户创建的 - 在您的情况下,用户“nobody”。您的用户无权修改 Web 服务器创建的文件和目录,反之亦然。
将您的 Web 服务器更改为与您的登录名相同的用户运行并不是理想的解决方案,因为它不是一个非常安全的选项,当您将您的网站放在另一台服务器上时,您仍然会遇到同样的问题。
解决方案是确保您已遵循http://symfony.com/doc/current/book/installation.html上安装文档的设置权限部分。
确保您 rm -rf 文件夹的内容,而不仅仅是 php app/console cache:clear,因为 symfony clear cache 命令将创建目录/文件,您的 Web 服务器仍然无法写入这些目录/文件。
一般来说,您应该从与 php5-cli 相同的用户运行您的网络服务器。并且您的项目所在的文件夹应该拥有该用户的所有权限。
你应该change user for project directory
或者简单地chmod -R 777 app/cache
和chmod -R 777 app/logs
请参阅配置和设置部分中的设置权限旁注。将 ACL 方法与.setfacl
我收到了这个错误,我尝试了所有这些技巧但没有成功......
我最终通过停用 seLinux 找到了解决方案。为此,请编辑文件“/etc/selinux/config”并将 SELINUX 值替换为
SELINUX=disabled