06
2025
01
22:35:30

Linux deployer 发布代码,提示文件权限问题

Linux deployer 发布代码,提示文件权限问题

背景

发布代码用的是 deployer 用户, id deployer 得到 uid=1001(deployer) gid=1001(deployer) groups=1001(deployer)

web程序用的是 www 用户, id www 得到 uid=1000(www) gid=1000(www) groups=1000(www)

deploye.php 配置文件,设置了 shared_dirs,并且包含 storage/framework/cache 与 storage/framework/sessions 目录

laravel 项目

问题

使用 deployer 发布代码,发布的时候一直报如下错误


  The command "cd /var/www/hupun/releases/5 && (setfacl -L -R -m u:"www":rwX -m u:`whoami`:rwX storage/framework)" failed.  

                                                                                                                            

  Exit Code: 1 (General error)                                                                                              

                                                                                                                            

  Host Name: 47.xx.xx.xx                                                                                                     

                                                                                                                            

  ================                                                                                                          

  setfacl: storage/framework/sessions/3Q2JPjObrrRGMMh3QUbuQereFpigjMIQ8gdPP9Pr: Operation not permitted                     

  setfacl: storage/framework/cache/data/ee/2f/ee2f842aa7bb1f53edf3a2ed2c09a1807ffa6c90: Operation not permitted  


分析

项目配置文件中,CACHE_DRIVER 与 SESSION_DRIVER 选项设置的值为 file,那么就会使用本地文件来保存会话与缓存。

web程序的执行是 www 用户,项目的发布是deployer 用户,他们归属不同的组。

错误文件,是 web 运行时产生的,归属于www用户www组。发布项目时,deployer 操作了不属于他的文件,提示权限不足,就引发了发布代码失败的结果

解决

方法一:这是最好的办法,修改 CACHE_DRIVER 与 SESSION_DRIVER 配置的值为 redis,前提是已经配置了 redis

方法二:删除提示权限错误的文件,然后就可以发布代码了。但是这里有一个问题,那就是页面中已经登入的用户,会掉线,甚至还有更多不可预知的问题

————————————————




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8825.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: