加入 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