问题:之前我在我的电脑上安装了svn服务器,上周去北京下午早走了一会,关了电脑。然后还在路上的时候同事告知我svn代码提交不上去,当然提交不上去了,我电脑都关了。于是这周来了之后,就试图在服务器上安装。
前面已经说了,不管是svn还是git在内网环境安装是非常痛苦的,主要问题是各种依赖包问题。由于不能使用yum联网安装,让本来一两行代码搞定的事情束手无策。
然而这个时候我发现了gitblit。它只依赖于java环境。也就是说只要服务器上能执行java命令就ok。
然后开始干活,
1.去gitblit官网下载了linux版本,
http://www.gitblit.com/
2.通过sftp上传到了服务器,
put 本地路径 服务器路径 // 如果省略不写服务器路径,默认上传到/root目录下
3.解压
tar -xf gitblit-1.8.0.gz.tar
4.进入解压后目录下的data文件夹下
vim default.properties
5.主要更改几个参数
5.1
Server.httpPort 是对http协议进行的配置,可自定义 若参数设为0则为禁用此端口,
例如将server.https设为0则是禁用https的端口 ,这里若只用http协议可以将其设为8989 ,将httpsPort和sshPort的端口设为0禁用,根据个人具体需要来设置
5.2
server.httpBindInterface 设置对应协议的ip参数,默认为空,也可写成固定的例如192.168.2.254,为空时则可通过远程可以访问本机,这里建议设为空。设置修改编辑完成后按ESC 输入:wq 保存退出
5.3
git.repositoriesFolder更改git仓库位置
6.运行jar启动
配置完成后
返回上一级目录 ls找到gitblit.jar文件在当前路径输入java -jar gitblit.jar 即可手动启动gitblit
我这里报错了,原因是服务器的jdk版本为1.6,而最新版的gitblit不支持此版本jdk
但是我又不能更改默认的jdk版本,其他项目还是需要运行在1.6下的。
只能采用迂回办法,我新建了一个用户,然后给此用户安装了jdk1.8
然后运行ok,在浏览器已经可以通过ip进行访问了。
7.将服务添加到系统服务中
jar运行有个致命的缺点,就是关闭窗口或者异常退出,服务立即终止。我想用过springboot的小伙伴应该能理解我是什么意思
7.1
来到根目录下面,我们发现了一个service-centos.sh的文件
盘它
vim service-centos.sh
将前三个路径改为你自己的路径
第一个是gitblit_path,改为自己的解压路径
第二个gitbilt_base_folder,git仓库位置
第三个是gitblit_http_port,修改为自己的端口号
保存后,用root
cp service-centos.sh /etc/init.d/gitblit
chkconfig --add gitblit
然后用刚刚新建的用户:
service gitblit start
我在这里又报错了,
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.moxie.MxLauncher.main(MxLauncher.java:129)Caused by: java.lang.RuntimeException: Password required! at com.gitblit.utils.X509Utils$X509Metadata.(X509Utils.java:208) at com.gitblit.GitBlitServer.start(GitBlitServer.java:245) at com.gitblit.GitBlitServer.main(GitBlitServer.java:124) ... 5 more
经过检查发现是https的锅
上面是启动文件里面的配置,下面是配置文件defaults.properties里面的配置,主要是这个httpsport,如果启动文件里面的httpsport设置为非零端口,他就会报错!并且它并没有读取配置文件里面的httpsport值,因为我们没有要求必须使用https所以直接改成0就解决问题了
重新启动,已经ok