环境为:Linux + Nginx + PHP
我在测试服务器的 git 库写了个钩子,用来将最新的代码发布到测试环境的 www 目录。这个 www 目录是个软链接。
比如现在有软链接:/var/www/a 链接到 /var/code/a0
当有人提交代码时,会新建 /var/code/a1 目录,并删除 /var/code/a0 目录,然后将 /var/www/a 链接到 /var/code/a1
问题:当有成员提交代码后,在浏览器访问项目地址时,会在一段时间内持续报 403 错误。一会又好了。
猜想:是不是 fpm 在读取一个文件后会记录其 innode 并缓存一段时间,导致发布代码后,fpm 还在尝试通过之前缓存的 innode 来加载文件,所以导致 403 呢? 如果是,有什么好办法解决吗?