当我尝试对运行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
拥有。
答案 0 :(得分:1)
好了 - 基本上我从头开始重新安装:
/home/git
目录并使用git
以su - git
用户身份运行设置/home/git/repositories
将以下内容放入此处的/etc/apache2/sites-available/git.servername.com
<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>
现在我可以通过ssh访问我的网站了
git clone ssh://git@git.servername.com:gitolite-admin.git
http://admin@git.servername.com/git/testing.git