设置gitweb / apache2


10

我最近开始存储代码,这些代码是我在家中的本地服务器上编写的。

我希望在家中启动一个gitweb实例,以便可以查看提交并与其他队友一起跟踪进度。

我没有运气就尝试过在线服务器教程。我希望gitweb被访问example.com/git

我希望将我的代码放在 /code/git

我将不胜感激任何帮助!请尝试尽可能明确,因为我显然不知道自己在做什么。我读了很多文章。

谢谢,麻烦您了。

Answers:


6

叫做gitweb部分:

您必须使用以下命令安装软件包gitweb sudo apt-get install gitweb

然后,您必须编辑apache gitweb配置文件

$EDITOR /etc/apache2/conf.d/gitweb

更改Alias /gitweb /usr/share/gitweb

Alias /git /usr/share/gitweb

打开/etc/gitweb.conf文件:

您必须将线更改 $projectroot ".."$projectroot "/code/git"

并改变含有任何其他线/gitweb/git 例如

$stylesheet = "/gitweb/gitweb.css";

$stylesheet = "/git/gitweb.css";

然后重新加载您的Apache Web服务器 sudo /etc/init.d/apache2 horse-reload

GIT部分本身:

我强烈建议您使用gitosishttp://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

记住,如果你使用的gitosis$projectroot/etc/gitweb.conf必须是

$projectroot = "/home/git/repositories/";

您可以在http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way上找到有关如何设置gitosis的详细信息。

描述完整的gitosis设置对于此答案来说太长了。

如果您需要有关gitosis的更多帮助,请给我评论

要解决apache权限问题,可能有必要执行以下操作:

adduser www-data git
chgrp -R git /home/git/repositories

git和gitosis有什么区别。
myusuf3 2010年

gitosis是用于设置安全git托管的脚本。(使用ssh和东西对用户进行身份验证。)使用包含配置的特殊git存储库进行了相当不错的改进。在此配置中,您可以配置其他git存储库
aatdark 2010年

这对我来说很有趣。您可以修改答案以包含gitosis设置吗?
myusuf3 2010年

scie.nti.st/2007/11/14/… 非常详细(我自己使用了它)。如果您一步一步遇到问题,请给我写评论
aatdark 2010年

0

这是我gitweb在Ubuntu 14.04 上设置的操作-使用SSL并使用进行系统用户身份验证pwauth。默认情况下,gitweb使用/etc/gitweb.conf,期望使用中的git项目/var/lib/git

因此,我尝试将我的存储git库放入此处,因此在此示例中,我们无需更改/etc/gitweb.conf-我的/var/lib/git外观如下:

$ ls -la /var/lib/git/
total 12
drwxrwxrwx  3 root          root          4096 Apr  9 16:01 .
drwxr-xr-x 75 root          root          4096 Apr  7 17:31 ..
lrwxrwxrwx  1 myuser        myuser        28 Apr  9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x  7 myuser        www-data      4096 Apr 10 17:50 testrepo.git

因此,除了您的存储库之外,您还需要/usr/share/gitweb/gitweb.cgi在此目录中进行符号链接...

然后,您可以将以下内容用作/etc/apache2/sites-available/gitw-ssl.conf

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    ServerName localhost
    HeaderName HEADER
    DocumentRoot /var/www/html

    LogLevel info
    ErrorLog ${APACHE_LOG_DIR}/error-gw.log
    CustomLog ${APACHE_LOG_DIR}/access-gw.log combined

    SSLEngine on
    SSLCertificateFile  /etc/apache2/ssl/my.crt
    SSLCertificateKeyFile /etc/apache2/ssl/my.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
      SSLOptions +StdEnvVars
    </Directory>

    <IfModule mod_authnz_external.c>
      # old style:
      AddExternalAuth pwauth /usr/sbin/pwauth
      SetExternalAuthMethod pwauth pipe
      # new style:
      #DefineExternalAuth pwauth pipe /usr/sbin/pwauth
    </IfModule>

    # as more specific, /gitweb/static should go first
    Alias /gitweb/static /usr/share/gitweb/static
    Alias /gitweb /var/lib/git
    # gitweb.cgi alias is no dice - symlink is needed:
    Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
    <Directory /var/lib/git>
      Options +FollowSymlinks +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
      AddHandler cgi-script .cgi
      DirectoryIndex gitweb.cgi
    </Directory>

    ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
    <Directory "/usr/lib/git-core/">
      SetEnv GIT_PROJECT_ROOT /var/lib/git
      SetEnv GIT_HTTP_EXPORT_ALL
      Options +ExecCGI
      SSLRequireSSL
      AuthType basic
      AuthName "Private git repository"
      AuthBasicProvider external
      AuthExternal pwauth
      Require valid-user
    </Directory>

  </VirtualHost>
</IfModule>

最后,您可以执行以下操作:

# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload

之后,gitweb应该在上可用https://localhost/gitweb/(例如https://localhost/gitweb/?p=testrepo.git;a=summary);并且您应该能够克隆(如果是自签名SSL证书):

GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.