【发布时间】:2016-03-14 12:46:15
【问题描述】:
我已将本地 laravel 5 存储文件夹设置为权限 755 和用户 www-data,因为我在我的机器上使用 apache2。但是,我得到的是空白屏幕,而不是错误的堆栈跟踪,所以我将权限更改为 777,从而解决了问题。
但是我觉得这是一个(可怕的)创可贴,因为它实际上允许 any 用户以所有权限而不是具有有限权限的正确用户来修改此目录。我不知道这个问题是否会影响开发或生产服务器,但在这种情况下授予这些权限不是一种选择。
我如何确定哪个用户(或组)实际上需要权限才能使用此目录进行 laravel 日志记录,以便我可以将目录分配给他们并将权限返回到 755?
我试过了
ps aux | egrep '(apache|httpd)'
但它表明大多数进程都以www-data...
【问题讨论】:
-
我如何确定哪个用户(或组)实际上需要权限才能将此目录用于 laravel 在您的项目目录中尝试
ls -l。它将打印所有目录及其各自的所有者。要更改所有者,您可以使用chown- man page 上的详细信息。啊,要检查进程的用户,请使用ps u。这个问题与超级用户最相关。 -
你转了
error_reporting并配置了你的.htaccess? -
您是否递归设置了所有者和权限?因为如果你运行
chmod 775 storage,那只会改变storage目录的权限,但里面的文件和文件夹仍然会有不同的权限,chown也是如此。通常我运行它来更改组chgrp -R www-data storage和权限chmod -R 775 storage,这样你可以让任何用户作为所有者(甚至root),但是Apache 仍然可以写入存储文件,因为组设置为@ 987654339@。如果这没有帮助,发布您遇到的错误也将有所帮助。 -
您还可以通过以下方式检查哪个用户正在写入存储:当拥有
777权限时,只需访问返回视图的路由,然后检查storage/framework/view目录并查看是什么ls -l内的视图缓存文件的所有者,因为它们是由 HTTP 服务器创建的。如果您运行的是基于 Debian 的操作系统,例如 Ubuntu,则 Apache 用户很可能是www-data。 -
所有者是
www-data为storage/framework/view。也许这是一个htaccess问题...
标签: laravel laravel-5.1