美文网首页
在CentOS上使用 Gogs 2018最新版 搭建自己的 Gi

在CentOS上使用 Gogs 2018最新版 搭建自己的 Gi

作者: misswuyang | 来源:发表于2018-01-30 13:25 被阅读422次

    安装步骤

    • 1.新建用户
    • 2.下载源码进行编译Compiler/下载预编译二进制文件
    • 3.安装/以及安装遇到问题
    • 4.调整配置
    • 5.配置nginx反向代理
    • 6.添加服务Services及开机启动

    新建用户

    在Gogs目录的scripts目录中找到对应你所用发行版Distribution的版本,文件名为gogs。
    执行

    $ sudo adduser git   #建立git用户
    $ su git             #以git用户登录
    $ mkdir ~/.ssh       #建立.ssh目录
    $ chmod 700 ~/.ssh   #这个权限很重要,防止 ssh方式 clone 出现问题
    $ chmod 600 ~/.ssh/authorize_keys   #载‘管理 SSH 密钥’里添加后在运行下,防止 ssh方式 clone出现问题
    

    下载并解压缩

    为了节省时间,我选择的是编译好的二进制文件,需要从源码编译的话,请参考一般语言项目的编译。
    这里寻找适用于你系统的二进制包

    下载后解压到你喜欢的地方,强烈推荐/home/git/gogs/。目录结构如下:

    $ ls ~/gogs
    gogs     log     README.md     scripts
    data    LICENSE  public  README_ZH.md  templates
    

    安装

    首先建立数据库。Gogs目录的scripts/mysql.sql文件是数据库初始化文件。
    执行mysql -u root -p < scripts/mysql.sql(需要输入密码)即可初始化数据库。

    然后登录MySQL创建一个新用户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;
    

    执行./gogs web运行Gogs,然后访问http://服务器IP:3000/ 安装,按照页面提示填写信息。

    安装遇到问题

    错误描述:Error 1071: Specified key was too long; max key length is 1000 bytes
    可能原因:这是由于数据库引擎为 MyISAM 导致的。
    解决方案:在使用 config/mysql.sql 创建完数据库后,进入数据库然后执行:

    use gogs;
    set global storage_engine=INNODB;
    #这个是官方的设置,好像没起到作用,可以通过下面方法:自己测试过
    vim /etc/my.cnf (mysql version:5.5.59)
    innodb_file_format=Barracuda
    innodb_large_prefix=1
    innodb_file_per_table=1
    (mysql version>5.6)
    innodb_file_format=Barracuda
    innodb_large_prefix=ON
    innodb_file_per_table=ON
    #设置后最好在看下是否生效:
    SHOW VARIABLES LIKE '%innodb_file%';
    SHOW VARIABLES LIKE '%innodb_large_prefix%';
    

    错误描述:Error 1709: Index column size too large. The maximum column size is 767 bytes.

    SHOW TABLE STATUS;
    ALTER TABLE _tablename_ ROW_FORMAT=DYNAMIC;
    ALTER TABLE user ROW_FORMAT=DYNAMIC;
    ALTER TABLE access_token ROW_FORMAT=DYNAMIC;
    ....
    多次点击安装按钮,将所有的table设置成DYNAMIC
    

    调整配置

    配置文件位于Gogs目录的custom/conf/app.ini,为INI格式的文本文件,关键配置如下。
    详细的配置解释和默认值请参考配置文件手册

    • RUN_USER默认为git,指定Gogs以哪个用户运行
    • ROOT 所有仓库的存储根路径
    • PROTOCOL用nginx反代的话使用http
    • DOMAIN域名,会影响SSH clone地址
    • ROOT_URL完整的根路径,会影响页面上链接指向,以及HTTP(s) clone的地址
    • HTTP_ADDR监听地址,使用nginx建议127.0.0.1,否则localhost或0.0.0.0也可以
    • HTTP_PORT监听端口,默认3000
    • INSTALL_LOCK锁定安装页面
    • Mailer相关的选项
      注意邮箱stmp地址要加端口号

    配置nginx反向代理

    修改nginx的配置文件,添加如下内容:

    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/;
        }
    }
    

    执行sudo service nginx reload重新载入nginx配置

    添加服务及开机启动

    在Gogs目录的/home/git/gogs/scripts/init/centos目录中找到对应你所用Distribution的版本,文件名为gogs
    执行

    $ sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
    $ sudo chmod +x /etc/init.d/gogs
    

    以后就可以使用sudo service gogs {start|stop|status|restart}来对Gogs服务进行管理。

    但是我们还需要为Gogs添加开机启动,执行:

    $ sudo chkonfig gogs on
    

    即可添加开机启动,取消自启可以执行sudo chkonfig gogs off

    相关文章

      网友评论

          本文标题:在CentOS上使用 Gogs 2018最新版 搭建自己的 Gi

          本文链接:https://www.haomeiwen.com/subject/tpijnxtx.html