在AMH面板中添加gogs的GIT服务端

 jvxiang   2017-02-06 11:10   622 人阅读  0 条评论

综述

  1. 手里有个小VPS,打算装个面板再开个小博之类的。同时手里有些代码打算自己控制一下,准备搭个在线版本控制器。
  2. 面板选了AHM 4.2,免费版的,LNMP。GIT服务端开始想用gitlab,但是占用太大,跑不起来,于是放弃了。改用gogs,go语言写的,可用性不错,主要是主程序只有18M,运行方便。
  3. gogs推荐使用mysql作为数据库,同时NGINX可以反代gogs的地址,安装面板时可以同时安装nginx与mysql。
  4. 我的VPS装了contos6 x86,故整个演示以contos为标准,其他linux发行版略有不同。

过程

  1. 安装AMH 4.2:
    1) 使用 root 账号登录 Linux 服务器。2) 执行 amh 安装脚本。
    wget http://amh.sh/file/AMH/4.2/amh.sh && chmod 775 amh.sh && ./amh.sh 2>&1 | tee amh.log

    3) 根据提示输入选择1~3选项。1为安装amh,2为卸载amh,3为退出不做操作。

    输入1回车,接着输入MySQL与AMH密码即进入安装流程,安装过程大约需10至20分钟(以服务器性能为准),最后如看到安装成功提示,说明系统已安装完成。

    成功安装后有必要请删除日志文件:amh.log,如安装失败需协助安装请把错误日志反馈我们。

    访问http://ip:8888 即可进入AMH web端管理,默认账号为admin。

  2. 安装git:
    contos使用yum install git
    ubuntu使用apt-get install git
    安装git。
  3. 创建git用户:
    1)gogs建议使用git用户作为运行gogs的主用户,所以我们要首先创建git用户。
    adduser git
    passwd git
    #会提示输入两次密码,密码不回显,如果密码过于简单会提示,但是可以强制跳过,只需要重复密码即可。
    

    2)由于新用户没有sudo权限,所以我们赋予新用户sudo权限。
    #新用户没有sudo权限,下面加入sudo权限
    chmod -v u+w /etc/sudoers
    vim /etc/sudoers

    编辑sudoers文件,找到
    ## Allow root to run any commands anywher
    root ALL=(ALL) ALL
    行,在root行后按o键插入一行
    git ALL=(ALL) ALL ,然后按esc键输入:wq保存内容。
    最后去除sudoers的写权限并切换到git用户下。
    chmod -v u-w /etc/sudoers
    su - git
  4. 二进制安装gogs:
    1)到https://gogs.io/docs/installation/install_from_binary.html下载最新的gogs二进制包,当前版本为v0.9.128 @ 2017-01-31,我们将gogs直接放在home目录下。
    wget https://dl.gogs.io/gogs_v0.9.128_linux_386.tar.gz
    tar -zxvf gogs_v0.9.128_linux_386.tar.gz
    cd gogs
  5. 配置gogs:
    1)配置数据库
    (1)执行数据库SQL语句:
    Gogs目录下的scripts/mysql.sql为使用MySQL数据库时需要执行的SQL命令,执行mysql -u root -p < scripts/mysql.sql(需要输入数据库密码)初始化数据库。
    (2)创建数据库gogs用户:创建gogs用户并赋予其gogs数据库的全部权限

    $ mysql -u root -p
    > # (输入密码)
    > create user 'gogs'@'localhost' identified by '密码';
    > grant all privileges on gogs.* to 'gogs'@'localhost';
    > flush privileges;
    > exit;

    2)运行Gogs服务
    进入gogs的数据目录,只需要执行./gogs web命令即可启动gogs服务,出现一下信息即启动服务成功。

    $ ./gogs web
    2016/12/11 16:50:42 [T] Custom path: /gogs/custom
    2016/12/11 16:50:42 [T] Log path:/gogs/log
    2016/12/11 16:50:42 [I] Heier Git Server 0.9.97.0901
    2016/12/11 16:50:42 [I] Log Mode: File(Info)
    2016/12/11 16:50:42 [I] Cache Service Enabled
    2016/12/11 16:50:42 [I] Session Service Enabled
    2016/12/11 16:50:42 [I] Mail Service Enabled
    2016/12/11 16:50:42 [I] Notify Mail Service Enabled
    2016/12/11 16:50:42 [I] Git Version: 2.11.0.22.g8d7a455
    2016/12/11 16:50:42 [I] SQLite3 Supported
    2016/12/11 16:50:42 [T] Doing: CheckRepoStats
    2016/12/11 16:50:42 [I] Run Mode: Production
    2016/12/11 16:50:42 [I] Listen: http://127.0.0.1:3000

    使用浏览器访问http://服务器ip:3000即可打开Gogs的安装页面

    3)安装配置请参照官网。
    4)配置linux服务:

    scripts/文件夹下有关于多个系统的服务脚本:

    $ ls
    autoboot.sh  build_freebsd.sh  build_linux64.sh  build.sh  init  launchd  mysql.sql  README  supervisor  systemd  windows

    其中init,systemd以及windows目录分别为linux、Windows下服务脚本。
    在此仅以CentOS为例:

    1. 复制scripts/init/centos/gogs/etc/init.d/目录下:
      sudo cp scripts/init/centos/gogs /etc/init.d/
    2. 切换到/etc/init.d/目录为脚本赋予可执行权限
      sudo chmod +x gogs
    3. 更改gogs脚本内关于GOGS_HOME目录位置的设置(这儿使用vim编辑)
      GOGS_HOME=/home/git/gogs/gogs
    4. 使用服务管理命令管理服务
      sudo service gogs start/stop/restart/status
    5. 配置Gogs开机自启动
      sudo chkconfig --add gogs
  6. 添加nginx反代以及与AMH集成:
    cd /usr/local/nginx/conf/vhost
    vim git.conf

    输入以下内容:
    server
    {
            listen       80;
            server_name  xxx; # 作为gogs服务的域名,注意该域名不要再在AMH中配置,会冲突
            location / { 
                proxy_pass http://127.0.0.1:3000/;
            }
    }

    重启nginx服务,在AMH面板点击重载或使用命令amh nginx restart
本文地址:https://www.jvxiang.com/在amh面板中添加gogs的git服务端.html
版权声明:本文为原创文章,版权归 jvxiang 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情