【发布时间】:2014-02-28 22:47:55
【问题描述】:
我使用 Laravel 4 创建了一个项目,但是当我转到文件夹 localhost /my_project/public 时,会出现一些与权限相关的错误。我解决了它设置为 777 my_project 中包含的文件夹和文件的所有权限。有没有办法解决这个东西不做777?
【问题讨论】:
标签: php linux apache web laravel-4
我使用 Laravel 4 创建了一个项目,但是当我转到文件夹 localhost /my_project/public 时,会出现一些与权限相关的错误。我解决了它设置为 777 my_project 中包含的文件夹和文件的所有权限。有没有办法解决这个东西不做777?
【问题讨论】:
标签: php linux apache web laravel-4
当您为 my_project 目录设置 755 权限时会发生什么?尝试更改权限并检查它。您的目录应该能够读取公共目录中的所有文件。
【讨论】:
我将我的所有权设置为www-data:
chown -R auser:www-data /path/to/laravel/root
我还将我所有的子文件夹和文件 read 和 write 按组:
chmod -R g+rw /path/to/laravel/root
我还让我的文件夹有一个粘性位,所以如果你添加一个新文件,它会继承:
chmod -R g+s /path/to/laravel/root
这一直对我有用。也许 Linux 专家可能有更好的想法,但这是我使用的。
【讨论】:
请参阅位于http://laravel.com/docs/installation 的 Laravel 安装文档。在任何情况下,您都不应该在生产环境中运行 laravel 并拥有对整个世界的完全权限。您还必须记住,您的“应用程序”将从公共目录执行,因此没有理由允许整个世界对整个项目目录进行读/写/执行,除非您根本不关心安全性。
无论如何,从 Laravel 的权限部分的文档中提取:
“Laravel 可能需要配置一组权限:文件夹 在应用程序/存储中需要 Web 服务器的写入权限。”
这将使您的项目顺利进行。
【讨论】:
sticky bit 可能有助于在创建新文件时将权限从目录复制到新文件。