我试图用git -http-backend和apache建立一个git服务器2.4我发现this question关于同样的东西,这对我很有帮助,但我仍然达到了一个地步我卡住了。用apache设置git-http-backend 2.4
我已经安装在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的所有者的所有权(IM告知)。运行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)
现在我不知道,因为它看起来既像root
和www-data
正在运行的东西,但现在我已经决定设置所有权www数据(也许它应该是根?)。 www数据的组也是www数据(我认为)
$ 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
现在从我的LOCALMACHINE我试图克隆myrepo:
git clone http://<ip-address>/myrepo.git
而且我得到的错误:
fatal: unable to access 'http://<ip-address>/myrepo.git/': The requested URL returned error: 503
任何人都可以看到什么林做错了什么?
呀这样的别名,我复制的别名从[这个答案](http://stackoverflow.com/a/26734934/3486338)林不知道这是必要的。我认为主要问题是权限问题,但是我将目录所有权更改为'root',现在我可以克隆它,但我无法恢复。我认为它类似于[这篇文章](http://stackoverflow.com/questions/6448242/git-push-error-insufficient-permission-for-adding-an-object-to-repository-datab) – bradimus