繁体   English   中英

使用Apache 2.4设置git-http-backend

[英]Setting Up git-http-backend with apache 2.4

我试图使用git-http-backend和apache 2.4来设置git服务器,我发现这个问题是关于同一件事的,这是有帮助的,但是我仍然遇到问题。

我已经在Ubuntu 16.04上安装了git和apache2并使用添加了所需的模块

sudo a2enmod cgi alias env

然后在/etc/apache2/apache2.conf添加以下代码段:

<VirtualHost *:80>
    SetEnv GIT_PROJECT_ROOT /var/www/git
    SetEnv GIT_HTTP_EXPORT_ALL
    SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
    ScriptAliasMatch \
      "(?x)^/(.*/(HEAD | \
          info/refs | \
          objects/(info/[^/]+ | \
          [0-9a-f]{2}/[0-9a-f]{38} | \
          pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
          git-(upload|receive)-pack))$" \
      "/usr/lib/git-core/git-http-backend/$1"
    Alias /git /var/www/git
    <Directory /usr/lib/git-core>
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

请注意, /var/www/git是我打算回购并运行的位置

find / -name git-http-backend显示/usr/lib/git-core/git-http-backend

接下来,在/var/www/git/内部,我创建了一个目录myrepo.git并将其设置为:

sudo git init --bare --shared
sudo cp hooks/post-update.sample hooks/post-update
sudo git update-server-info

接下来,我必须将目录的所有权更改为apache2所有者(告诉我)。 正在运行ps aux | egrep '(apache|httpd)' ps aux | egrep '(apache|httpd)'返回以下内容:

root 3087 0.0 0.4 73688  4928 ? Ss 02:37 0:00 /usr/sbin/apache2 -k start
www-data 3455 0.0 0.5 362836  5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start
www-data 3456 0.0 0.5 362836  5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start
git 3531 0.0 0.0 14512 932 pts/1 S+ 03:19 0:00 grep -E --color=auto (apache|httpd)

现在我不确定,因为看起来rootwww-data都在运行某些东西,但是我目前决定将所有权设置为www-data(也许应该是root?)。 www-data的组也是www-data(我认为)

$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

所以我用它来设置所有权:

sudo chown -R www-data:www-data .

我似乎也记得读过,整个路径必须属于apache用户,因此我设置的只是一个很好的衡量标准

sudo chown -R www-data:www-data /var/www

现在,从本地计算机上,我正在尝试克隆myrepo:

git clone http://<ip-address>/myrepo.git

而且我得到了错误:

fatal: unable to access 'http://<ip-address>/myrepo.git/': The requested URL returned error: 503

有人可以看到我在做什么吗?

Alias /git /var/www/git

那应该意味着您的网址应该在其中包含/ git:

git clone http://<ip-address>/git/myrepo.git

我在此Apache配置中看不到这样的别名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM