【问题标题】:Proper laravel storage permissions适当的 laravel 存储权限
【发布时间】: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-datastorage/framework/view。也许这是一个htaccess 问题...

标签: laravel laravel-5.1


【解决方案1】:

ps aux | egrep '(apache|httpd)' 让您走在正确的轨道上。

进程

Apache/httpd 以用户root 启动,但随后它生成进程以按照用户在其配置中定义的方式处理传入请求。该默认用户通常是www-dataapache

服务器操作系统

CentOS/RedHat 服务器上,您可能会看到进程作为用户/组 apache 运行(这是默认设置)。

Debian/Ubuntu 上,处理请求的进程的默认用户集是 www-data

这一切都假设 apache 正在使用 mod-php。如果您使用php-fpm,则可以单独配置运行PHP的使用(尽管它与我的经验中的apache具有相同的默认值)。

storage 的权限

如您所知,storage 目录需要可由运行这些进程的用户或组(取决于权限)写入。

www-数据?

听起来ps aux | egrep '(apache|httpd)' 的结果是www-data,所以很可能,但不是100% 确定,该目录需要用户/组www-data 可写(通过将其设置为所有者和确保所有者拥有这些权限,或通过组权限设置它,或使其可全局写入)。

快速测试

一种简单的判断方法是,您是否从storage 目录中删除日志文件/查看缓存文件,然后将该目录设为全局可写。

在 Laravel 中发出一些请求来重新生成这些文件,然后查看在新文件上设置的用户/组。

这是查看运行 PHP 的进程的用户/组设置的一种方式。

【讨论】:

  • 这让我整理好了,chowning 给www-data 用户
【解决方案2】:

storage 中的文件夹是否也设置为 755?

如果没有,您应该通过执行chmod -R 755 storage 递归更改权限。使用 chmod -R 时请小心,因为您可能会错误地将整个服务器设置为 755。

【讨论】:

  • 是的,文件夹的权限也发生了变化,没有区别。
猜你喜欢
  • 2016-10-05
  • 2021-09-06
  • 2021-02-17
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
相关资源
最近更新 更多