1. 程式人生 > >CentOS 7 搭建 gogs Git 伺服器

CentOS 7 搭建 gogs Git 伺服器

CentOS 7 搭建 gogs Git 伺服器

本地環境如下:

Linux 系統環境為:CentOS Linux release 7.4.1708 (Core)
MySQL 版本為: mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper
Git 版本為: git version 1.8.3.1
Gogs 當前最新版本為:0.11.86

所需軟體

安裝步驟

  1. 建立使用者名稱為 git 的賬戶,用於管理 git
sudo adduser git
  1. 切換到 git 使用者,並在其賬戶所在家目錄,下載 Gogs
// 切換到 git 使用者
su git  

// 切換到 git 使用者所在家目錄
cd ~  

// 下載 gogs 壓縮包
wget https://dl.gogs.io/0.11.86/gogs_0.11.86_linux_amd64.tar.gz

// 解壓縮 (解壓縮之後的資料夾名為 gogs )
tar -zxvf gogs_0.11.86_linux_amd64.tar.gz
  1. 執行 gogs 資料庫檔案
// 切換到 /home/git/gogs/scripts 目錄
cd /home/git/gogs/scripts

// 登入資料庫 (這裡採用 MySQL )
mysql -u root -p

// 執行 gogs 資料庫指令碼檔案 
source mysql.sql

// 測試(執行完了之後可以看到已經建立好了gogs資料庫)
show databases;
  1. 配置與執行

    • 開啟 gogs 檔案
    vim /home/git/gogs/scripts/init/centos/gogs   
    
    • 核對檔案資訊
     19 PATH=/sbin:/usr/sbin:/bin:/usr/bin  
     20 DESC="Gogs"  
     21 NAME=gogs  
     22 SERVICEVERBOSE=yes  
     23 PIDFILE=/var/run/$NAME.pid  
     24 SCRIPTNAME=/etc/init.d/$NAME  
     25 WORKINGDIR=/home/git/gogs      # 倉庫地址,可以自行修改
     26 DAEMON=$WORKINGDIR/$NAME  
     27 DAEMON_ARGS="web"  
     28 USER=git     # 如果執行 gogs 不是名為 git 的賬戶,則需要修改。 
    
     # 如是用 root 賬戶執行 gogs,則這裡修改成 root
    
    • 切換到 root 賬戶,然後複製到 /etc/init.d/ 目錄下
    // 切換到 root 賬戶
    su root
    
    // 將 gogs 檔案複製到 /etc/init.d 目錄下
    sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
    
    • 增加執行許可權
    sudo chmod +x /etc/init.d/gogs
    
    • 複製 service
    cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
    
    • 開啟 gogs 服務
    service gogs start
    
    • 執行 gogs web
    // 切換到 gogs 目錄
    cd /home/git/gogs
    
    // 執行 gogs web (如果此時 Ctrl + C 關閉掉命令,此時重新整理瀏覽器時,會無內容)
    // 執行命令後,看到有日誌輸出,則證明啟動成功!
    ./gogs web
    
    // 後臺執行 gogs
    ./gogs web >/dev/null 2>&1 &
    
    • 必須開啟 3000 埠 (我使用的是阿里雲的 ECS ,直接在阿里雲後臺新增 3000 的安全組規則即可)

    • 測試。( 瀏覽器訪問 http:// 遠端主機 IP 地址 :3000 )

  2. 配置反向代理

    • 在 nginx 配置資料夾中,新建 git.drling.xin.conf 檔案
    vim /etc/nginx/conf.d/git.drling.xin.conf
    
    • 填入以下內容
    server {
    
        listen 80;
        server_name git.drling.xin;
        location / {
                proxy_pass http://127.0.0.1:3000/;
        }
    
    }