服务器777还是不能创建文件夹,没有CHMOD 777,无法在NGINX中创建文本文件或将其追加到文本文件中...

我真的很想知道人们如何建议这样做chmod或chown完全缺乏OP服务器设置的细节。

根据到目前为止提到的所有内容,我可以假设OP是以这种方式运行的:NGINX的运行方式为www-data。

PHP-FPM以不同的用户名运行(因此出现权限问题)。假设PHP-FPM池的用户名是foo。

让我们概述这种设置的最佳实践。这样一来,您将很快获得良好的状态,而不会遇到任何权限问题。

谁必须拥有文件

通常(无论是否有多站点服务器),您都需要一个拥有站点文件的特定用户。用户应该永远是www-data。为此,它必须是您创建的一个单独的用户:foo。

通常,该用户foo将被设置为运行PHP-FPM池的用户。

因此,请为foo用户设置正确的所有权:chown -R foo:foo /path/to/your/site/html

由于PHP-FPM脚本的运行方式为foo,现在该目录及其中的所有文件均由该所有者拥有foo,因此PHP-FPM可以在那里毫无问题地完成工作。这样,您将绝对不会有PHP无法创建/访问内容的可能性。

授予对Web服务器的访问权限

请记住,该设置涉及两个用户:一个是Web服务器的(www-data),另一个是PHP-FPM的(foo)。

既然文件已正确拥有foo,我们需要授予读取它们的权限www-data。为什么只看书?因为NGINX与在此设置中写入文件系统无关。它只需要读取文件和遍历目录。

通常通过使Web服务器的用户成为站点用户组的成员来完成此授予的方式。一开始很难理解,但是我会更加冗长:

假设有一个站点文件data.txt,该文件现在归foo:foo所有者所有-Linux中的所有权是双重所有权:文件由foo用户和foo组拥有。

目前,该foo组只有一个成员:foo用户。

我们需要做的是将另一个成员添加到该foo组:www-data用户。

因此:usermod -a -G foo www-data

此后,该foo组将具有以下成员:foo用户,www-data用户。

现在我们可以继续使用权限了:)

应该有什么权限

既然我们已经完成了所有权,剩下的重要一点就是以这种方式调整所有文件和目录的权限:目录应允许+x组的遍历()

文件应允许读取(+r)组

必须具有这些权限www-data才能读取每个网站文件和目录。

最有可能的是,您不需要显式设置这些设置,因为umask设置(此处将不涉及本主题)将已经设置为所有文件都已具有这些权限。

但是,如果您需要修复自己的东西,则可以执行以下操作:chmod -R g+rX /path/to/your/site/html

大写X确保+x仅针对目录设置。

安全起见

在为这种设置设置了正确的文件和组所有权之后,您可以进一步提高安全性并设置更严格的限制chmod。

例如,Magento安全chmod 遵循该安装程序的约定,因此chmod,0400对于PHP文件和0640媒体文件,您可以使用的权限:)

除非您要处理一个真正奇怪的用例,否则最后chmod一位应始终为0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值