我在VPS上有一个laravel应用程序,配置了apache2和supervisord。文件权限设置如下:
- 整个项目目录归
www-data
组所有 - Apache使用
www-data
用户 - 我和主管使用
app
用户,该用户属于www-data
组。
所有的工作都在文件中进行,直到我不得不处理作业和Web服务器处理的请求中的一些文件。
- 一个用户上传了一个文件,我把这个文件保存在
local
磁盘的临时目录下。
Storage::disk('local')->put('new-directory/filename', $fileContent);
- 我派了一个任务来详细说明文件
- 作业应在细化结束时删除文件:
Storage::disk('local')->delete('new-directory/filename');
但实际上,我得到的是一个权限错误,因为该文件由www-user
所有,而主管用来处理队列的app
用户没有删除该文件的权限。
我试着使用'public'可见性:->put('new-directory/filename', $fileContent, 'public')
,但文件仍然受到保护。下面是ll
在目录中的输出:
-rw-r--r-- 1 www-data www-data 60780 Dec 5 14:15 $filename
是否有办法解决运行队列的用户和Web服务器用户之间的文件权限问题?
2条答案
按热度按时间6jjcrrmo1#
您可以在supervisor的配置文件中添加。
anhgbhbe2#
手动运行队列时,您可能仍需要以
www-data
用户身份运行。如果您的日志文件属于
www-data
,通常情况下就是这样。