加入 Gogs 教程
This commit is contained in:
294
Gogs.CentOS.md
Normal file
294
Gogs.CentOS.md
Normal file
@ -0,0 +1,294 @@
|
||||
# CentOS 从源代码安装 Gogs
|
||||
|
||||
*以下所有命令,含 # 标识的为 root 用户下执行,含 $ 标识的为 git 用户下执行。可以搭配 `sudo su - git` 和 `exit` 在两者之间切换*
|
||||
|
||||
## 安装或更新 Git
|
||||
|
||||
先删除系统中原有的老版本 git:
|
||||
|
||||
# yum -y remove git
|
||||
# yum install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel
|
||||
|
||||
从官方网站下载源代码进行:
|
||||
|
||||
# yum -y groupinstall 'Development Tools'
|
||||
# cd ~
|
||||
# curl --progress https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz | tar xz
|
||||
# cd git-2.7.3/
|
||||
# ./configure
|
||||
# make
|
||||
# make prefix=/usr/local install
|
||||
|
||||
然后使用下面这个命令检测安装是否有效:
|
||||
|
||||
# which git
|
||||
|
||||
## 为 Gogs 添加系统用户
|
||||
|
||||
# adduser --system --shell /bin/bash --comment 'Gogs' --create-home --home-dir /home/git/ git
|
||||
|
||||
## 安装 Go 语言
|
||||
|
||||
如果您的系统已经安装要求版本的 Go 语言,可以跳过此小节。
|
||||
|
||||
### 下载
|
||||
|
||||
前往 [go lang 官网](https://golang.org/dl/ "https://golang.org/dl/") 选择合适的版本,安装 Go 语言到 /home/git/local/go 目录
|
||||
|
||||
# sudo su - git
|
||||
$ cd ~
|
||||
$ mkdir local
|
||||
$ wget https://storage.googleapis.com/golang/go1.6.linux-386.tar.gz
|
||||
$ tar -C /home/git/local -xzf go1.6.linux-386.tar.gz
|
||||
|
||||
### 设置环境
|
||||
|
||||
请设置和您系统环境对应的路径
|
||||
|
||||
# sudo su - git
|
||||
$ cd ~
|
||||
$ echo 'export GOROOT=/home/git/local/go' >> /home/git/.bashrc
|
||||
$ echo 'export GOPATH=/home/git/go' >> /home/git/.bashrc
|
||||
$ echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /home/git/.bashrc
|
||||
$ source /home/git/.bashrc
|
||||
|
||||
## 安装 Gogs
|
||||
|
||||
### 下载并安装依赖
|
||||
|
||||
$ go get -u github.com/gogits/gogs
|
||||
|
||||
|
||||
### 构建主程序
|
||||
|
||||
$ cd $GOPATH/src/github.com/gogits/gogs
|
||||
$ go build
|
||||
$ cd $GOPATH/src/github.com/gogits/gogs/scripts
|
||||
$ sh build.sh
|
||||
|
||||
### 放置程序文件
|
||||
|
||||
$ cd ~
|
||||
$ mkdir gogs
|
||||
$ mkdir gogs/log
|
||||
$ mv $GOPATH/src/github.com/gogits/gogs/scripts/output/* ~/gogs/
|
||||
|
||||
### 测试
|
||||
|
||||
$ cd gogs
|
||||
$ ./gogs web
|
||||
|
||||
如果您没有发现任何错误信息,则可以使用 Ctrl-C 来终止运行。
|
||||
|
||||
### 初始化脚本
|
||||
|
||||
# cp /home/git/go/src/github.com/gogits/gogs/scripts/init/centos/gogs /etc/init.d/gogs
|
||||
|
||||
赋予启动权限,启动服务
|
||||
|
||||
# chmod +x /etc/init.d/gogs
|
||||
# service gogs start
|
||||
|
||||
### 设置gogs开机启动
|
||||
|
||||
# chkconfig gogs on
|
||||
|
||||
## 安装配置 Apache
|
||||
|
||||
这里介绍使用 apache 作为网页服务器,Nginx 请参考官方或其他文档
|
||||
|
||||
### 安装
|
||||
|
||||
如有没有安装Apache。
|
||||
|
||||
# yum install httpd
|
||||
|
||||
注意查看安装的 apache 版本。
|
||||
|
||||
# vim /etc/httpd/conf/httpd.conf
|
||||
|
||||
在文件末尾添加下面这行:
|
||||
|
||||
Include /etc/httpd/conf/vhosts/*.conf
|
||||
|
||||
然后建立文件夹
|
||||
|
||||
# mkdir /etc/httpd/conf/vhosts
|
||||
|
||||
这样所有的站点都可以在 vhosts 目录下配置了。
|
||||
|
||||
### 配置
|
||||
|
||||
这里以上一节的配置环境为例。
|
||||
|
||||
将下面的 YOUR_SERVER_FQDN 替换成你的IP或域名
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin admin@admin.com
|
||||
ServerAlias YOUR_SERVER_FQDN
|
||||
ProxyPreserveHost On
|
||||
ProxyRequests Off
|
||||
<Proxy *>
|
||||
AddDefaultCharset off
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Proxy>
|
||||
ProxyPass / http://127.0.0.1:3000/
|
||||
ProxyPassReverse / http://127.0.0.1:3000/
|
||||
ErrorLog logs/git.jebbs.co_error.log
|
||||
CustomLog logs/YOUR_SERVER_FQDN_access.log combined env=!dontlog
|
||||
CustomLog logs/YOUR_SERVER_FQDN.log combined
|
||||
</VirtualHost>
|
||||
|
||||
新建一个服务器配置,将上述内容输入
|
||||
|
||||
# vim /etc/httpd/conf/vhosts/gogs.conf
|
||||
|
||||
启动 apache
|
||||
|
||||
# service httpd start
|
||||
|
||||
测试是否能正常访问
|
||||
|
||||
http://you.do.main
|
||||
|
||||
设置 apache 随系统启动
|
||||
|
||||
# chkconfig httpd on
|
||||
|
||||
此时应该可以看到初始化的页面,但如果要配合MySQL使用,还需要进行下面的操作。
|
||||
|
||||
## 安装 mysql 数据库
|
||||
|
||||
### CentOS 6 安装数据库
|
||||
|
||||
gogs 要求 mysql 5.5 以上版本(utf8mb4支持),但 CentOS/Red Hat (RHEL) 官方自带的 mysql 版本为 5.1。
|
||||
|
||||
首先安装软件源,查看系统架构
|
||||
|
||||
$ exit
|
||||
# getconf LONG_BIT
|
||||
|
||||
根据系统架构选择合适的 epel 源:
|
||||
|
||||
64位
|
||||
|
||||
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
|
||||
|
||||
32位
|
||||
|
||||
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
|
||||
|
||||
导入 key:
|
||||
|
||||
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
|
||||
|
||||
添加 remi 源
|
||||
|
||||
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
|
||||
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
|
||||
|
||||
安装、启动、添加自启动
|
||||
|
||||
# yum --enablerepo=remi update
|
||||
# yum --enablerepo=remi list mysql mysql-server
|
||||
# yum --enablerepo=remi install mysql mysql-server
|
||||
# service mysqld start
|
||||
# chkconfig mysqld on
|
||||
|
||||
### CentOS 7 安装数据库
|
||||
|
||||
MySQL 已经不再包含在 CentOS 7 的源中,而改用了 MariaDB,先搜索 MariaDB 现有的包:
|
||||
|
||||
# rpm -qa | grep mariadb
|
||||
|
||||
然后全部删除:
|
||||
|
||||
# rpm -e --nodeps mariadb-*
|
||||
|
||||
然后创建 /etc/yum.repos.d/MariaDB.repo:
|
||||
|
||||
# vim /etc/yum.repos.d/MariaDB.repo
|
||||
|
||||
将以下内容添加至该文件中:
|
||||
|
||||
# MariaDB 10.0 CentOS repository list - created 2015-05-04 19:16 UTC
|
||||
# http://mariadb.org/mariadb/repositories/
|
||||
[mariadb]
|
||||
name = MariaDB
|
||||
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
|
||||
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
|
||||
gpgcheck=1
|
||||
|
||||
然后运行下面命令安装 MariaDB 10.0:
|
||||
|
||||
# yum install MariaDB-server MariaDB-client
|
||||
|
||||
然后启动 MariaDB 服务:
|
||||
|
||||
# service mysql start
|
||||
# chkconfig mysql on
|
||||
|
||||
## 配置数据库
|
||||
|
||||
运行 mysql_secure_installation:
|
||||
|
||||
# mysql_secure_installation
|
||||
|
||||
登录到 mysql
|
||||
|
||||
# mysql -uroot -p
|
||||
|
||||
### 创建 git 数据库用户
|
||||
|
||||
注意修改这里的密码(123),后续配置时需要提供这里设置的密码。
|
||||
|
||||
> CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';
|
||||
> use mysql;
|
||||
> UPDATE user SET password=PASSWORD("123") WHERE user='git';
|
||||
> FLUSH PRIVILEGES;
|
||||
|
||||
### 创建数据库
|
||||
|
||||
> SET storage_engine=INNODB;
|
||||
> DROP DATABASE IF EXISTS gogs;
|
||||
> CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
|
||||
### 赋予权限
|
||||
|
||||
> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gogs`.* TO 'git'@'localhost';
|
||||
> \q
|
||||
|
||||
尝试使用新用户连接数据库:
|
||||
|
||||
$ mysql -u git -p -D gogs
|
||||
> \q
|
||||
|
||||
# 升级 Gogs
|
||||
|
||||
## 保存旧的配置文件
|
||||
|
||||
$ cd ~
|
||||
$ cp -a gogs/custom ./
|
||||
|
||||
## 更新源码以及依赖
|
||||
|
||||
$ cd ~
|
||||
$ go get -u github.com/gogits/gogs
|
||||
|
||||
## 移除旧的二进制
|
||||
|
||||
$ rm gogs
|
||||
|
||||
## 或将旧的二进制进行备份
|
||||
|
||||
$ mv gogs gogs.$(date +%Y-%m-%d).old
|
||||
|
||||
## 重新构建 Gogs
|
||||
|
||||
重复教程中的构建与放置动作
|
||||
|
||||
## 放回设置文件
|
||||
|
||||
$ cd ~
|
||||
$ mv -a custom gogs/
|
||||
@ -1,9 +1,15 @@
|
||||
# 安装 Gogs
|
||||
|
||||
[在 CentOS 上从源码安装 Gogs](./Gogs.CentOS.md "./Gogs.CentOS.md")
|
||||
|
||||
Gogs 是一套比 Gitlab 占用内存少得多的系统,尤其适用小内存的VPS。与 512M 内存勉强可以运行的 Gitlab 7 相比,Gogs 仅占用几十兆内存,且运行速度快很多。此外 Gogs 的安装也更加简单。
|
||||
|
||||
# 安装 Gitlab
|
||||
|
||||
[在 CentOS 上安装 Gitlab 7](./Gitlab7.CentOS.md "./Gitlab7.CentOS.md")
|
||||
|
||||
[在 CentOS 上安装 Gitlab 8](./Gitlab8.CentOS.md "./Gitlab8.CentOS.md")
|
||||
|
||||
# 为什么还要安装 Gitlab 7
|
||||
## 为什么还要安装 Gitlab 7
|
||||
|
||||
Gitlab 7 版本内存占用低,实测 GitLab 7.14.3 + GitLab Shell 2.6.11 可以运行在 512M 内存 + 64M SWAP 的主机上。
|
||||
|
||||
Reference in New Issue
Block a user