查看“Git服务器Gitosis安装设置”的源代码
来自Ubuntu中文
←
Git服务器Gitosis安装设置
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
1、安装 openssh服务器 sudo apt-get install openssh-server openssh-client 2、创建个人公钥和私钥 在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥 ssh-keygen -t rsa 默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示: id_rsa id_rsa.pub known_hosts 3、安装 git服务器 sudo apt-get install git-core 4、配置 git服务器 创建git服务器管理用户 sudo useradd -m git sudo passwd git 创建git仓库存储目录 sudo mkdir /home/git/repositories 设置git仓库权限 sudo chown git:git /home/git/repositories sudo chmod 755 /home/git/repositories 初始化全局设置 git config --global user.name "myname" git config --global user.email "myname@server" 5、安装python的setup tool sudo apt-get install python-setuptools 6、获取并安装gitosis cd /tmp git clone git://eagain.net/gitosis.git cd gitosis sudo python setup.py install 7、配置gitosis cp ~/.ssh/id_rsa.pub /tmp sudo -H -u git gitosis-init < /tmp/id_rsa.pub sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update 8、管理gitosis配置 cd ~ git clone git@hostname/gitosis-admin.git cd gitosis-admin/ 各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的 ssh公钥文件都拿来,拷贝到keydir目录下。 修改gitosis.conf文件,如下所示 [gitosis] [group gitosis-admin] writable = gitosis-admin members = a@server1 [group developers] writable = helloworld members = a@server1 b@server2 [group test] readonly = helloworld members = c@server3 这个配置文件表达了如下含义:gitosis-admin组成员有a,该组对gitosis-admin仓库有读写权限; developers组有a,b两个成员,该组对helloworld仓库有读写权限; test组有c一个成员,对helloworld仓库有只读权限。 当然目前这些配置文件的修改只是在你的本地,你必须推送到gitserver上才能真正生效。 加入新文件、提交并push到git服务器: git add . git commit -am "add helloworld project and users" git push origin master 9、安装apache2 sudo apt-get install apache2 10、安装gitweb sudo apt-get install gitweb 11、配置 gitweb 默认没有 css 加载,把 gitweb 要用的静态文件连接到 DocumentRoot 下: cd /var/www/ sudo ln -s /usr/share/gitweb/* . 修改配置: sudo vi /etc/gitweb.conf 将 $projectroot 改为git仓库存储目录(例如:/home/git/repositories),保存后刷新浏览器。 如果没有找到项目,你需要将$projectroot/*.git 的属性改为755,让apache用户有可读权限。可以只改你需要让别人通过web访问的那个git。 http://localhost/cgi-bin/gitweb.cgi 修改/etc/gitweb.conf 内容: # path to git projects (<project>.git) #$projectroot = "/var/cache/git"; $projectroot = "/home/git/repositories"; # directory to use for temp files $git_temp = "/tmp"; # target of the home link on top of all pages $home_link = $my_uri || "/"; # html text to include at home page $home_text = "indextext.html"; # file with project list; by default, simply scan the projectroot dir. $projects_list = $projectroot; # stylesheet to use @stylesheets = ("/gitweb/static/gitweb.css"); # javascript code for gitweb $javascript = "gitweb/static/gitweb.js"; # logo to use $logo = "/gitweb/static/git-logo.png"; # the 'favicon' $favicon = "/gitweb/static/git-favicon.png"; # git-diff-tree(1) options to use for generated patches #@diff_opts = ("-M"); @diff_opts = (); 12、配置apache2 ubuntu中默认的web目录是/var/www,默认的cgi目录是 /usr/lib/cgi-bin/,安装完成gitweb后,gitweb的gitweb.cgi会自动放置到该目录下。 如果你的cgi路径不是默认的/usr/lib/cgi-bin/,需要将gitweb安装在/usr/lib/cgi-bin中的gitweb.cgi复制到原来配置的cgi-bin路径,并在apache的配置文件/etc/apache2/apache.conf末尾加上以下内容: SetEnv GITWEB_CONFIG /etc/gitweb.conf <Directory "/srv/www/cgi-bin/gitweb"> Options FollowSymlinks ExecCGI Allow from all AllowOverride all Order allow,deny <Files gitweb.cgi> SetHandler cgi-script </Files> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.* /gitweb.cgi/$0 [L,PT] </Directory> 重新启动apache:sudo /etc/init.d/apache2 restart,访问http://localhost/cgi-bin/gitweb.cgi [[File:http://Chromium.png]]
返回
Git服务器Gitosis安装设置
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息