linux - 如何使我的 git 存储库可通过 HTTP 访问

标签 linux git apache

我最近的任务是在 Linux 上托管 git 服务器。我对 Linux 世界还很陌生,所以走到今天这一步是很艰难的。我现在已经创建了一个裸存储库,并且可以使用 GitWeb(托管在 Apache 上)查看它。

由于我可以使用 GitWeb 浏览它,我认为我的 apache 服务器和 git 的配置是正确的,但我仍然无法在远程计算机上克隆存储库。根据我对 apache 的配置方式,尝试克隆时会收到 403 Forbidden 错误或 404 错误。

我不确定我的 git 存储库是否配置不正确,我的 apache 配置是否错误,或者文件夹安全性使其无法访问。这可能是多种原因。

我已经删除了 GitWeb,以便我可以使用最简单的 git 和 apache 配置。我确信我的问题有很多不同的原因,所以我更多地询问一些可能是罪魁祸首的常见错误配置。

这是我的 apache 配置的一些部分。我的存储库位于/opt/git

<VirtualHost *:80>
ServerName gitserver
DocumentRoot /opt/git
<Directory /opt/git>
    Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride All
    order allow,deny
    Allow from all
</Directory>
 ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
</VirtualHost>

<Directory "/opt/git">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

</Directory>

正如我所说,我能够(使用不同的配置)浏览到我的 GitWeb 页面,因此 apache 肯定正在运行,并且在某些时候 VirtualHost 配置正确,但肯定有问题。

谢谢!

最佳答案

看起来这不是 apache 的问题,而是 git 的问题。我需要运行命令 git update-server-info

我很困惑,因为 This Documentation使得命令看起来像是会自动运行,因为我刚刚复制了示例 Hook 。我想每当您创建新存储库时都必须运行该命令?

关于linux - 如何使我的 git 存储库可通过 HTTP 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37464487/

相关文章:

linux - 在 rsync 参数中使用环境变量(处理引号和转义字符)

linux - 在 Linux 上读取 USB 批量消息

linux - 无需手动干预即可获得完整的telnet输出

swift - xcschememanagement.plist 文件在 XCode 中有什么作用?我可以用 git 忽略它吗?

git - 如何创建一个兄弟分支,其中包含从另一个分支到一个节点的所有提交?

android - 进程 'command ' git'' 以非零退出值 128 完成

php - 下载文件时 index.php 未打开和运行

c - 如何以特定格式打印time_t?

apache - 在Docker中运行Apache和Cron

php - 关于HTaccess和子目录