1

我在服务器上设置了一个用户作为我所有 git 存储库的所有者。我是通过 ssh 完成的,所以没有为该用户设置 WHM 帐户。我将此用户命名为“git”。

在我的主域 exmaple.com 上,我创建了一个名为 git.example.com 的子域。

我希望这个指向 /home/example/subdomains/git 的子域改为指向 /home/git/public_html。

我为什么要这样做?好吧,我正在我的服务器上为我的 git 存储库构建一个 Web 界面,我认为将界面粘贴在 'git' 的 public_html 目录中会很有用,这样我在阅读时就不必担心权限/通过接口写入 repos。

(也许有更好的方法来做到这一点,不需要我弄乱权限?idk。)


我首先在此处创建了一个 vhost 包括:
/usr/local/apache/conf/userdata/std/2/example/git.example.com/config.conf
并在此文件中添加DocumentRoot /home/git/public_html
并运行/scripts/ensure_vhost_includes --all-users将我的 .conf 滚动到httpd.conf。

当然,当我尝试访问 git.example.com 时,我现在得到了 403,因为我无法访问用户 'git' 的 public_html 目录。


我需要添加什么到我的 config.conf 以便我能够访问用户 'git' 的 public_html?


更新:我尝试了一些方法来使其正常工作,但没有一个允许我访问子域而不会出现 403 错误:

  • 一位同事建议chgrp -R nobody /home/git/public_html,但这没有用。
  • 我尝试将用户 'git' 添加到组 'nobody' 中不起作用,并将用户 'nobody' 添加到组 'git' 中也不起作用。(没有人是 apache 使用的用户/组)
  • 我尝试使用 SuexecUserGroup 和 RUidGid 从我的虚拟主机包含中添加为我的虚拟主机设置用户/组,但这也不起作用。(除了 git git 之外,我还尝试了 git nobody、nobody 和 nobody git,但没有运气。)

    <IfModule !mod_disable_suexec.c>
        <IfModule !mod_ruid2.c>
            SuexecUserGroup git git
        </IfModule>
    </IfModule>
    <IfModule mod_ruid2.c>
        RUidGid git git
    </IfModule>
    
  • 我的虚拟主机建议我备份所有“git”用户的数据,擦除帐户,然后使用 WHM 而不是useradd通过 ssh 创建“git”,然后恢复我的备份。看起来这是我唯一的选择。

4

0 回答 0