gitolite - smart-http - 为rc(“UMASK”)提供未初始化的值

时间:2012-07-25 12:01:47

标签: ubuntu apache2 gitolite

当我尝试对运行gitolite且启用了smart-http的服务器执行git克隆时,我的/var/log/apache2/error.log中出现以下错误

[Wed Jul 25 21:53:36 2012] [error] [client 124.149.104.106] FATAL: warn\tUse of 
uninitialized value $rc{"UMASK"} in umask at /opt/git/gitolite-source/src/
gitolite-shell line 95, <DATA> line 1.<<newline>>

UMASK

中的0027值确实设为/home/git/.gitolite.rc

sites-available中的文件调用su_exec时,为什么没有设置值的任何想法?

我正在运行apache作为www-data - 并根据说明here设置了各种脚本的权限 - 即:

install -d -m 0755 -o git -g git /var/www/bin
install -d -m 0755 -o www -g www /var/www/git

然后:

在名为/var/www/bin的{​​{1}}内创建一个shell脚本,其模式为gitolite-suexec-wrapper.sh,并由用户和组0700拥有。

1 个答案:

答案 0 :(得分:1)

好了 - 基本上我从头开始重新安装:

  1. Install gitolite(将源安装到/home/git目录并使用gitsu - git用户身份运行设置
  2. 阅读the warning here
  3. 运行the steps in this document(即不运行文件 - 只是逐行)
  4. 不要运行the exports here,因为我们将运行gitolite作为git用户
  5. 使用apt-get安装gitweb - 将其配置为指向/home/git/repositories
  6. 的存储库
  7. 将以下内容放入此处的/etc/apache2/sites-available/git.servername.com

    的apache站点配置中
    <VirtualHost *:80>
        ServerAdmin mail@servername.com
        ServerAlias git
        ServerName git.servername.com
    
        DocumentRoot /var/www/git
    
        <Directory /var/www/git>
          Options +Indexes
          AllowOverride none
          Order allow,deny
          Allow from all
        </Directory>
    
        SuexecUserGroup git git
        ScriptAlias /git/ /var/www/bin/gitolite-suexec-wrapper.sh/
        ScriptAlias /gitmob/ /var/www/bin/gitolite-suexec-wrapper.sh/
    
        <Location /git>
          AuthType Basic
          AuthName "Git Access"
          Require valid-user
          AuthUserFile /home/git/gitolite-http-authuserfile
        </Location>
        Loglevel warn
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
    </VirtualHost>
    
  8. 使用styles for gitweb from here

  9. 现在我可以通过ssh访问我的网站了 git clone ssh://git@git.servername.com:gitolite-admin.git http://admin@git.servername.com/git/testing.git

    并查看 http://servername.com/gitweb