Nginx/php-fpm umask 设置

Posted

技术标签:

【中文标题】Nginx/php-fpm umask 设置【英文标题】:Nginx/php-fpm umask setting 【发布时间】:2012-07-20 00:08:35 【问题描述】:

当我使用 apache2 服务器时,将 /etc/apache2/envvars 中的默认 umask 设置为 0002 用于解决我所有的权限问题。现在我正在尝试设置 nginx/php-fpm,当使用不正确的权限创建文件时,我遇到了同样的问题。

nginx或php-fpm中是否有umask设置?

【问题讨论】:

【参考方案1】:

感谢Blossoming_Flower's answer 和answer on unix.stackechange...

最好的方法似乎是像 Blossoming _Flower 所说的那样,但是使用 override 文件而不是编辑可能会被您的发行版重新安装/升级替换的系统文件。

要做到这一点(我在 php 7.0 上,但要根据你的版本进行调整)

systemctl edit php7.0-fpm.service

它将自动在/etc/systemd/system/php7.0-fpm.service.d/override.conf 创建(或编辑,如果已经存在)一个文件。

您可以将 Blossoming_Flower 的建议内容单独放在该文件中。 Systemd 然后会用这个覆盖发行版的设置,实际上是添加一个 umask 设置。

然后只需 systemctl daemon-reload && systemctl restart php7.0-fpm 就完成了。

【讨论】:

【参考方案2】:

取自另一个答案的链接问题:

如果你使用 systemd [即Ubuntu 16.04],然后编辑 /lib/systemd/system/php5-fpm.service 并编辑章节“服务”:

[Service]
UMask=0002

【讨论】:

最好不要自己更改服务文件。或者有一天,当相应的包更新时,更改会丢失。通过/etc/systemd/system/<service>.service.ddirs覆盖设置。【参考方案3】:

我设法通过将umask 0002 添加到/etc/init/php-fpm.conf不是 /etc/init.d/php-fpm)为自己解决了这个问题。请参阅How to trace where php5-fpm umask settings are coming from on ubuntu 了解说明。

【讨论】:

以上是关于Nginx/php-fpm umask 设置的主要内容,如果未能解决你的问题,请参考以下文章

nginx+php-fpm故障排查

Nginx + php-fpm下载php文件而不执行[重复]

nginx php-fpm记录php错误日志怎么配置

docker 部署nginx、php-fpm错误记录

Nginx+php-fpm 502 504问题

使用 Nginx + PHP-FPM 拒绝访问 PHP 文件 (403)