1

我有一个使用 Bitnami 脚本安装在 Ubuntu 12.04 服务器上的 gitorious 服务器。我可以使用 ssh 很好地克隆存储库,不幸的是,当我尝试使用 https URL 时,它会克隆一个空存储库。在网上搜索后,我发现我需要安装 mod_xsendfile。我使用以下方法安装了它:

wget https://tn123.org/mod_xsendfile/mod_xsendfile-0.12.tar.gz#hash(sha256:9078ec28697d672a7f8aa3a19180109c1ccf73dc6aa335e856d1129344566b7e)
tar -xzf mod_xsendfile-0.12.tar.gz
cd mod_xsendfile-0.12/
sudo /opt/gitorious-2.4.12-1/apache2/bin/apxs -cia mod_xsendfile.c
sudo /opt/gitorious-2.4.12-1/ctlscript.sh restart

根据我能找到的所有文档,这应该就是我所需要的。我确实必须在我的 /etc/hosts 文件中为 IP 添加条目,以便 git.gitorious(我选择“gitorious”作为域名)实际上映射了正确的 IP。我在我的服务器和我想克隆到的 Ubuntu 机器上都这样做了。

不幸的是,http 克隆仍在生成空存储库,并且直接访问 URL 也不起作用。我错过了什么?

更新 编辑 /opt/gitorious-2.4.12-1/apps/gitorious/conf/gitorious.conf 并添加行

XSendFile on
XSendFilePath /opt/gitorious-2.4.12-1/apps/gitorious/tarballs

到目录标签:

<Directory "/opt/gitorious-2.4.12-1/apps/gitorious/htdocs/public">

更改了行为,现在当我转到该 URL 时,我看到了消息而不是空白文件

好的

在此服务器上找不到请求的 URL /dejanney/dejanney.git。

不知道这算不算进步。我已经为 XSendFilePath 尝试了不同的设置,但我似乎不能很好地工作。“/opt/gitorious-2.4.12-1/”不起作用。

4

1 回答 1

0

看起来我找到了解决方案,但它有点糟糕。

我变了

XSendFilePath /opt/gitorious-2.4.12-1/apps/gitorious/tarballs

XSendFilePath /opt/gitorious-2.4.12-1/apps/gitorious/repositories

这导致了以下错误:

2013 年 7 月 3 日星期三 12:18:51] [错误] [客户端 143.122.172.123] (13) 权限被拒绝:xsendfile:无法打开文件:/opt/gitorious-2.4.12-1/apps/gitorious/repositories/test/测试.git/

我通过运行解决了这个问题

sudo chmod 775 /opt/gitorious-2.4.12-1/apps/gitorious/repositories

我试过的其他方法都没有。我不确定这些权限是否安全,但它们让我可以通过 HTTP 进行克隆。我无法推送,但 Gitorious 无论如何都不支持 HTTP。

于 2013-07-03T17:17:36.643 回答