NGINX - 从上游读取时拒绝重命名权限

Posted

技术标签:

【中文标题】NGINX - 从上游读取时拒绝重命名权限【英文标题】:NGINX - Rename Permission Denied While Reading From Upstream 【发布时间】:2021-03-02 12:24:39 【问题描述】:

我最近从 Apache 切换到 nginxphp 语言底层并使用 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 - 从上游读取时拒绝重命名权限的主要内容,如果未能解决你的问题,请参考以下文章

重命名文件夹时拒绝访问

重命名文件权限

Win10不能重命名文件夹,老提示找不到指定路径怎么办?

Linux,上传文件、重命名、修改权限、切换用户

Java File类(文件的读取,写入,复制与重命名)

重命名 TableRow 属性名称