在一个linux服务器上部署着多个项目,许多项目的资源文件软连接到其他文件夹下,那么就会出现
open_basedir=/vagrant/vbee/:/tmp/:/proc/
上传资源的时候会出现这样类似,就是权限不足的提示。
一开始,我解决的tp5的做法是这样的,
https://www.cnblogs.com/chenliuxiao/p/12620723.html
后来其他项目的资源上传时出现了找不到目录的情况,当时找这个原因找了很久。因为当时没改过代码,当时就很怀疑是改动了主配置文件造成的。
后来排查的时候发现了不是框架和项目的问题。
排查思路如下,在资源上传脚本中加入,php输出当前文件夹下所有的文件。
然后判断软连接文件夹是否存在,(这点就是不存在)
转折点是什么(我把目前路径写成../.../../disk/data/www/项目的软连接)结果竟然输出了出来!
此时算是终于出现转折点了,说明可能是软连接语法或者权限的问题。后来排查了不是这方面。
然后我就在nginx配置fastcgi.conf中复制粘贴了
fastcgi_param PHP_ADMIN_VALUE
然后测试新项目,果然资源上传跑通了,但是发现之前旧项目出现了问题,那就说明,fastcgi.conf中的配置写法不能同事兼容多个php_admin_value写法
算是终于找到了问题的根源所在,到了一个转折点,然后就在度相关的解答,也看了很多,看起来貌似很有用,但是需要改动的基层比较多
我罗列三个
1、改php.ini文件
2、增加.user.ini文件
3、改动fastcgi
还有一个帖子对我启发比较大,因为他的整体逻辑比较清晰而且跟我最为相似
http://www.linuxdown.net/install/faq/20170716_how_linux_12303.html
后来在我准备实行他这个方法的时候,突然看到我在fastcgi.conf公共配置文件里写的是upload/1/2/1/很详细的路径,所有的资源都在upload下,我可以直接改成
upload,把权限放到最大,这样项目用的时候都能跑起来,这样一改,ok,问题解决
相关参考:
https://www.cnblogs.com/guohong-hu/p/9350076.html
https://segmentfault.com/a/1190000003778382