【问题标题】:Not found when setup git server on HTTP protocol在 HTTP 协议上设置 git 服务器时找不到
【发布时间】:2021-08-25 06:09:27
【问题描述】:

操作系统:ubuntu 20.04 桌面

网络服务器:服务器版本:Apache/2.4.41 (Ubuntu)

配置:

<VirtualHost *:80>
DocumentRoot /var/www/html

SetEnv GIT_PROJECT_ROOT /var/www/html
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend
Alias /git /var/www/html

<Location />
    Options ExecCGI Indexes
    Order allow,deny
    Allow from all
    Require all granted
</Location>

</VirtualHost>

我正在尝试在我的计算机上设置 HTTP 服务器,chrome 浏览器可以成功显示 repo。

但是,git clone 始终显示 not found

$ git clone http://localhost/test/base.git/
Cloning into 'base'...
fatal: repository 'http://localhost/test/base.git/' not found

可能是什么问题? Apache2 日志如下所示

127.0.1.1:80 127.0.0.1 - - [09/Jun/2021:11:04:34 +0800] "GET /test/base.git/info/refs/info/refs?service=git-upload-pack HTTP/1.1" 404 432 "-" "git/2.25.1"

【问题讨论】:

  • 如果您从命令行尝试wget 'http://localhost/test/base.git/config' 之类的东西,它会起作用吗?这比浏览器测试更类似于你用 git 做的事情。
  • @Mort 它工作正常,并成功下载了正确的配置文件。只是 git clone 不起作用。

标签: git http apache2


【解决方案1】:
ScriptAlias /git/ /usr/lib/git-core/git-http-backend

看来,apaches 只是替换了别名字符串。我想念这个选项中的/,正确的应该是

ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

顺便说一句,我通过查看/var/log/apache2解决了它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多