这几天又看了看Git的操作与使用,想下学期在实验室给组内搭一个私有的Git服务器,查了一下比较主流的有两种,一个是Gitlab,这个是基本完全和GitHub一样,使用Ruby写的,性能啥的没的说,但是比较臃肿,需要主机有4G的内存,这对于我们这些贫穷的学生显然是不太现实的,而且我设想的需求也就是:可以作为组内成员无门槛的代码仓库、可以进行一些项目的协作、可以定时备份代码,Gitlab的功能确实是很多,但是很多其实可能我们并不需要;另外一个选择是Gogs,这是一个国人开发的开源项目,用Go语言写的,运行要求低,甚至可以在树莓派上稳定运行(划重点),当然我的需求它完全可以满足,那么最后就决定使用Gogs啦。
当然是打算下学期将Gogs搭在树莓派上的,但一开始当然先得尝试一下,于是我就先在CentOS虚拟机上搭了一下,尝试了一下效果,走了一遍搭建流程,也算是给开学的搭建练练手。整体的过程还是比较简单的。
整体的过程还是比较简单的,可以分成个部分:Linux网络的配置、MySQL的安装与配置、Nginx的安装与配置、Gogs包的获取、进行配置、Linux最后的一些设置。
Linux网络的配置
这一步主要就是固定IP地址,不要每次开机都自动分配地址了,具体操作也很简单,进入/etc/sysconfig/network-scripts,编辑ifcfg-ens33(当然首先要做好备份),首先将BOOTPROTO改为"static",然后添加三行
IPADDR=192.168.1.30
GATEWAY=192.168.1.1
DNS1=192.168.1.1
当然这个这些设置因人而异,分别是IP地址(随意设置只要在当前网段)、网关(去找一下)、最后的DNS1与网关相同即可。
MySQL的安装与配置
Gogs的数据是存放在数据库中的,而且它支持许多种数据库,但是我还是选用了使用最广泛的MySQL。
首先安装MySQL,CentOS下安装还比较麻烦,我查到的资料是安装以下的三个包
#yum install mysql
#yum install mysql-server
#yum install mysql-devel
但是第二个mysql-server确实安装不成功的,又查了一下,解决方法如下
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
这里是从MySQL的官网下载了mysql-server的安装包然后将它添加到了源中,然后进行安装。
安装完成后首先重启MySQL服务
# service mysqld restart
然后以root登录并且设置密码
[gyy@localhost ~]# mysql -u root
mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)
mysql>
这样就完成了安装,接下来进行配置,在数据库中增加Gogs用户和一个Gogs数据库。并将数据库gogs 的所有权限都赋予该用户。
$ mysql -u root -p
mysql> # (输入密码)
mysql> create user 'gogs'@'localhost' identified by '密码';
mysql> grant all privileges on gogs.* to 'gogs'@'localhost';
mysql> flush privileges;
mysql> exit;
Nginx的安装与配置
CentOS7上Nginx也是无法直接yum包安装的,还是得采用上面的方法
[root@localhost ~]$ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@localhost ~]$ yum install -y nginx
然后启动Nginx
[root@localhost ~]$systemctl start nginx.service
这时在浏览器上输入LInux的IP地址就可以看到如下的画面
这样就安装成功了,接下来配置Nginx反向代理
修改Nginx的配置文件:/etc/nginx/nginx.conf ,在文件最后添加如下的内容
server {
server_name 域名或IP;
listen 80; #或者443,如果你使用 HTTPS 的话
# ssl on; 是否启用加密连接
# 如果你使用HTTPS,还需要填写ssl_certificate和ssl_certificate_key
location / { #如果你希望通过子路径访问,此处修改为子路径,注意以/开头和结束
proxy_pass http://127.0.0.1:3000/;
}
}
这样就配置完毕了
Gogs包的获取
首先新建一个用户git
[root@localhost ~]# useradd git
接下来去Gogs的官网(地址点我)下载你需要的安装包,我下载了这个
然后将包发送到Linux,然后解打包
[gyy@localhost ~]$ tar -zxv -f gogs_0.11.79_linux_amd64.tar.gz
建议将包解打包到git的家目录中,然后建立数据库,Gogs目录中的scripts/mysql.sql是数据库初始化文件,执行以下代码初始化数据库
mysql -u root -p < scripts/mysql.sql
./gogs web
进行配置
这个其实没啥说的,按着它提示的填就行了,中文页面,填起来也很简单,而且以后也是可以修改的,配置文件位于custom/conf/app.ini ,以后可以进行修改,官方的配置文档(地址点我)
Linux最后的一些设置
至此我们只是可以运行gogs,如果我们通过终端连接过去启动,退出终端之后服务也会关掉。这个时候我们需要把gogs加入到系统服务之中去。在scripts文件夹下面有关于多个系统的服务脚本。其中init、systemd和windows目录分别是linux、windows下服务脚本。这里我们以Centos为例,进入到init下面看到有centos的脚本
复制scrpits/init/centos/gogs到/etc/init.d/目录下面
sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
在/etc/init.d目录下面为脚本赋予可执行权限
sudo chmod +x gogs
配置Gogs开机自启动
sudo chkconfig --add gogs
这样所有的配置就完成了
总结
最后的效果
这只是简单了搭建了Gogs,以后我会在树莓派上进行搭建并且进行一些很有用的配置和安全设置,应该开学完成后会再写博客记录。