加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

debian系统中安装git的gitosis服务器教程

发布时间:2022-06-20 03:14:39 所属栏目:教程 来源:互联网
导读:Gitosis 就是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本,本文我们来看看在debian系统下安装和配置gitosis服务的步骤. 以前在自己的电脑上搭建过svn服务器,所以这次想尝试一下搭建git的服务器,git是分布式的版本控制软件,因此本身没有很强
  Gitosis 就是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本,本文我们来看看在debian系统下安装和配置gitosis服务的步骤.
 
  以前在自己的电脑上搭建过svn服务器,所以这次想尝试一下搭建git的服务器,git是分布式的版本控制软件,因此本身没有很强的服务器概念,因此选择了gitosis这个软件.
 
  安装这个软件非常方便,直接用apt-get就可以了,很久没有刷新软件源了,导致第一次安装没有成功,重新刷新一下就好了,安装完之后,按照http://en.gentoo-wiki.com/wiki/Gitosis这篇wiki的指示配置gitosis,不过其中有一点需要说明的是,debian安装的gitosis创建的组和用户都是gitosis,因此wiki上描述的远程路径帐户名都要改为gitosis.
 
  在本地用ssh-keygen生成一对密钥对之后,把公钥上传到龙芯上,然后用那把公钥初始化版本库,这样我这台电脑就是这个版本库的拥有者了,初始化之后,就可以通过gitosis账户远程clone一个gitosis-admin.git版本库,里面有账户和代码库的设置,修改之后,先commit到本地,然后再push到远程版本库中.
 
  在安装gitosis之前,apt建议我安装git-daemon-run和gitweb两个包,那就试试看好了,前面那个包好像是用runit程序进行管理的,现在还不清楚是怎么控制开启和关闭,在/etc/init.d文件夹下没有服务脚本,修改一下/etc/sv/git-daemon/run文件,把git-daemon启动参数改掉,其中的base-path改为版本库的路径,我这里是/srv/gitosis/repositories,gitosis账户的家目录是在/srv/gitosis,最后加上–export-all暴露所有的版本库.
 
  然后安装gitweb,安装也很方便,配置起来麻烦了点,因为不会弄apache的虚拟主机,所以直接在原来的默认主机里进行配置,把gitweb安装在/usr/lib/cgi-bin中的gitweb.cgi复制到原来配置的cgi-bin路径,我这里是/srv/sgi-bin,把/usr/share/gitweb下的图片和css文件复制到apache默认主机的根目录,我把它们复制到了/srv/www/git文件夹下,然后配置/etc/gitweb.conf,其中的$projectroot改为版本库的根路径,我这里是/srv/gitosis/repositories,所有图片和css文件的路径前面加上了”/git”,因为我把它们放在了默认主机的根目录下的git目录中,最后修改apache的配置,debian的默认主机配置文件是/etc/apache2/sites-enabled/000-default,在虚拟主机项目下增加:
 
  SetEnv  GITWEB_CONFIG   /etc/gitweb.conf
 
  这样apache会去读取gitweb的配置文件,设置好相应的环境变量,代码如下:
 
  <Directory "/srv/www/cgi-bin/gitweb">
  Options FollowSymlinks ExecCGI
  Allow from all
  AllowOverride all
  Order allow,deny
  --phpfensi.com
  <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,访问xxx/cig-bin/gitweb.cgi,但是显示的是403错误,没有权限访问,不清楚为什么会这样,把整个版本库根文件夹访问权限改为755就可以显示了.
 
  最后照着样子自己本地初始化git版本库,然后放到远程的版本库中,初始化是成功的,在gitweb页面中也可以看见,但是修改之后commit,然后再push的时候,报错project description file hasn’t been set。这个不知道怎么解决,网上搜索了下,说是要同时修改本地和远程的描述文件,.git/description,然后的确是可以提交了,先尝试到这里,以后继续.
 
 

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!