我已经将本地laravel 5存储文件夹设置为权限755
和用户www-data
,就像我apache2
在计算机上使用的那样。但是我得到的是空白屏幕,而不是堆栈跟踪错误,因此我更改了777
解决该问题的权限。
但是,我觉得这是一个(糟糕的)创可贴,因为实际上它允许任何用户使用所有权限而不是具有有限权限的正确用户来修改此目录。我不知道此问题是否会影响开发或生产服务器,但是在这种情况下授予这些权限不是一种选择。
如何确定哪个用户(或组)实际需要权限才能使用此目录进行laravel日志记录,以便可以将目录分配给他们,然后将权限返回到755?
我试过了
ps aux | egrep '(apache|httpd)'
但它表明大多数进程都以www-data
...运行
您在的正确轨道上ps aux | egrep '(apache|httpd)'
。
Apache / httpd以user身份启动root
,但随后生成了以其配置中定义的用户身份处理传入请求的进程。该默认用户通常是www-data
或apache
。
在CentOS / RedHat服务器上,您可能会看到进程以用户/组的身份运行apache
(这是默认设置)。
在Debian / Ubuntu上,用于处理请求的进程的默认用户集是www-data
。
所有这些都假设apache正在使用mod-php。如果您使用php-fpm
,则可以单独配置运行PHP的使用程序(根据我的经验,它的默认设置与apache相同)。
storage
听起来就像您知道的那样,该storage
目录必须可由运行这些进程的用户或组(取决于权限)来写。
听起来像是ps aux | egrep '(apache|httpd)'
was的结果www-data
,因此该目录可能需要(但不是100%明确)可由用户/组写入www-data
(通过将其设置为所有者并确保所有者拥有这些权限,或者通过组权限进行设置) ,或使其可写入世界)。
一种简单的判断方法是,是否从storage
目录中删除日志文件/查看缓存文件,然后将该目录设置为可写。
在Laravel中提出一些请求,以重新生成这些文件,然后查看在新文件上设置了哪些用户/组。
这是查看运行PHP的进程的用户/组设置的一种方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句