`public_html` 应该拥有什么所有权才能使用 750?(而不是 751)

`public_html` 应该拥有什么所有权才能使用 750?(而不是 751)

问题:Apache 需要什么所有权,以便它不需要public_html( 751) 上的世界的执行权限?

背景:当我通过 cPanel 更改 php.ini 设置时,出现错误“错误:EUID,1005,不拥有 /home/my_user_name/public_html/.htaccess。”我理解这是因为该.htaccess文件归root:root,

因此,作为绿色 SHELL 用户,我使用 更改了每个文件的所有权chown -R my_user_name:my_user_name .[^.]*。太好了,我现在可以通过 cPanel 中的 MultiPHP INI 保存我的 php.ini。

当我尝试访问我的 Drupal 8 网站上的任何页面时,出现了这个明显的错误:

禁止访问 您无权访问此服务器上的 /。服务器无法读取 htaccess 文件,拒绝访问以确保安全

此外,尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误。

即使删除、重新上传并将所有权改回root:root,它仍然不起作用。

唯一有效的方法是将其更改public_html为 751(而不是 750)。为什么 Apache 需要全世界的执行权限?我需要更改哪个所有者/组来修复它?

754 也不起作用

答案1

您需要对目录具有执行权限才能访问里面的文件。

Apache 不是以 root 身份访问文件,而是以另一个用户的身份访问,无论是 httpd 还是 www 还是 www-apache 还是 apache...取决于您的设置。

如果目录所有者是 root,而组是 root,且没有全局可执行位,则只有 root 可以访问其中的文件。运行chmod +x public_html应该可以修复此问题。

相关内容