问题: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
应该可以修复此问题。