11

我无法正确获取权限。我正在尝试通过 XAMPP 在我的 Mac 上的本地环境中运行它。

我尝试了以下方法:

  • 做脱模
  • 设置权限
  • 通过清除缓存php app/console cache:clear
4

4 回答 4

24
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 服务器仍然无法写入这些目录/文件。

于 2012-08-30T06:42:00.383 回答
6

一般来说,您应该从与 php5-cli 相同的用户运行您的网络服务器。并且您的项目所在的文件夹应该拥有该用户的所有权限。

你应该change user for project directory或者简单地chmod -R 777 app/cachechmod -R 777 app/logs

于 2012-08-30T06:12:46.847 回答
1

请参阅配置和设置部分中的设置权限旁注。将 ACL 方法与.setfacl

于 2012-08-30T06:35:39.853 回答
-1

我收到了这个错误,我尝试了所有这些技巧但没有成功......

我最终通过停用 seLinux 找到了解决方案。为此,请编辑文件“/etc/selinux/config”并将 SELINUX 值替换为

SELINUX=disabled
于 2015-09-08T14:42:42.540 回答