NGINX - 从上游读取时拒绝重命名权限
Posted
技术标签:
【中文标题】NGINX - 从上游读取时拒绝重命名权限【英文标题】:NGINX - Rename Permission Denied While Reading From Upstream 【发布时间】:2021-03-02 12:24:39 【问题描述】:我最近从 Apache 切换到 nginx。 php 语言底层并使用 fastcgi_pass 到 php7.4-fpm 来运行所有脚本文件。一切似乎都运行良好。页面正在运行,PHP 正在执行,所有资产加载正常等。但是我的 nginx 错误日志中充斥着这些错误:
2020/11/19 06:28:52 [关键] 3332114#3332114: *26646323 rename() “/tmp/0012831123”到“/opt/www/example/web/controller.php”失败(13: 权限被拒绝)同时读取上游,客户端:104.220.189.242, 服务器:www.example.com,请求:“GET /path1/path2/path3/HTTP/1.1”,上游:“fastcgi://unix:/run/php/php7.4-fpm.sock:”,主机: “www.example.com”,引用者:“https://www.example.com/”
我已经在谷歌上尝试了一周,但什么也没有。尝试查看 nginx 缓存文件等的权限,但没有。我真的被难住了。我不知道为什么某些 tmp 文件会尝试重命名为应该可执行的实际文件。这看起来很糟糕,而且有点吓人。
我们将不胜感激任何关于在哪里寻找的帮助或建议。
干杯!
【问题讨论】:
【参考方案1】:[TLDR] 为了避免其他人像我一样在这方面花费大量时间。有一个配置设置'fastcgi_store',需要设置为'off'。
基本上有一个“fastcgi_store”设置允许将文件或动态生成的文件复制到磁盘。不确定这是用于什么用例,但在我的“..../sn-ps/fastcgi-php.conf”文件中启用了它。考虑到我对 NGINX 还很陌生,我可能从某个地方复制了这个,但并没有真正了解它的用途或它的影响。
我认为主要问题是某处权限不正确,无法写入文件。这可能是件好事,因为这些文件会很快填满我的网络服务器磁盘空间。由于我不需要这些文件,我只是禁用了它,并没有进一步研究权限问题。
这里是 nginx 文档的链接: http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_store
更改配置文件: fastcgi_store 关闭;
【讨论】:
以上是关于NGINX - 从上游读取时拒绝重命名权限的主要内容,如果未能解决你的问题,请参考以下文章