• Centos 7下Giteae二进制安装完整教程-适用于生成环境


    一: 安装最新版本的Git

    需要下载git的最新源码包,然后进行编译安装

    yum install gcc gcc-c++ openssl-devel zlib-devel
    cd /usr/local/src
    tar zxvf git-2.28.0.tar.gz
    cd git-2.28.0
    ./configure --prefix=/usr/local/git
    make && make install
    
    #为了解决环境变量的问题导致gitea无法启动,我们这里暴力解决
    ln -s /usr/local/git/bin/git /usr/bin/git
    ln -s /usr/local/git/bin/gitk /usr/bin/gitk
    ln -s /usr/local/git/bin/git-cvsserver /usr/bin/git-cvsserver
    ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
    ln -s /usr/local/git/bin/git-shell /usr/bin/git-shell
    ln -s /usr/local/git/bin/git-upload-archive /usr/bin/git-upload-archive
    ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

    二: 创建git账户

    这里我们可以参考官方文档,百度搜出来的帖子大多都有问题

    #https://docs.gitea.io/en-us/install-from-binary/
    #不要看中文的,很久都不更新了
    
    adduser 
       --system 
       --shell /bin/bash 
       --gecos 'Git Version Control' 
       --group 
       --disabled-password 
       --home /home/git 
       git

    三: 创建相关目录

    mkdir -p /usr/local/gitea/{custom,data,log}
    chown -R git:git /usr/local/gitea/

    四: 安装MySQL并创建数据库

    安装MySQL可参考本人博客的其他帖子,

    #官方文档 https://docs.gitea.io/en-us/database-prep/
    
    
    CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
    CREATE USER 'gitea'@'192.0.2.10' IDENTIFIED BY 'gitea';
    GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'192.0.2.10';
    FLUSH PRIVILEGES;

    进行验证

    mysql -u gitea -h 203.0.113.3 -p giteadb

    五:安装并生成配置文件

    这里我们可以切换到git用户,手动运行,然后执行安装

    USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/gitea /usr/local/gitea/gitea web --config /usr/local/gitea/custom/conf/app.ini

    这里会生成配置文件

    六:安装nginx进行反向代理

    yum install nginx

    主配置文件如下:

    # For more information on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    }

    gitea的配置文件如下:

    upstream gitea {
            server 127.0.0.1:3000;
    }
    
    server {
        listen 80;
        server_name gitea.example.com;
        client_max_body_size 100M;
        charset utf-8;
        proxy_redirect     off;
        proxy_set_header   Host             $host:$server_port;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
        proxy_ignore_client_abort on;
        proxy_read_timeout  180;
        proxy_buffering on;
        proxy_buffer_size 8k;
    
    
    
        location / {
           proxy_pass http://gitea;
           proxy_redirect     default;
           proxy_set_header   Host             $host:$server_port;
           proxy_set_header   X-Real-IP        $remote_addr;
           proxy_set_header X-Forwarded-Host $host:$server_port;
           proxy_set_header X-Forwarded-Server $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    添加nginx到开机启动项

    systemctl enable nginx && systemctl start nginx

    七:web界面访问安装

    此时打开 gitea.example.com 进行安装

    http://gitea.example.com/install 

    然后填写配置信息,

    这里注意的是我们的SSH端口选择的是2202,因为22端口被SSHD服务本身占用,配置数据库以及管理员账户即可点击下一步即可。

    如果想要重新安装,需要清除/usr/local/gitea下的所有数据

    八:定义开机启动脚本,这里我们可以将git用户的进程关掉,定义systemd开机启动

    脚本这里依然采用的是官方提供的

    [root@openldap gitea]# cat /usr/lib/systemd/system/gitea.service 
    [Unit]
    Description=Gitea (Git with a cup of tea)
    #After=syslog.target
    After=network.target
    
    [Service]
    RestartSec=2s
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/usr/local/gitea/
    ExecStart=/usr/local/gitea/gitea web --config /usr/local/gitea/custom/conf/app.ini
    Restart=always
    Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/gitea
    #CapabilityBoundingSet=CAP_NET_BIND_SERVICE
    #AmbientCapabilities=CAP_NET_BIND_SERVICE
    [Install]
    WantedBy=multi-user.target

    官方连接:https://github.com/go-gitea/gitea/blob/master/contrib/systemd/gitea.service

    然后使用该脚本进行启动,此时发现SSH协议依然无法使用。 这里我们需要修改配置文件

    在[server] 段中添加

    START_SSH_SERVER = true

    然后重启gitea服务即可

    systemctl enable gitea && systemctl start gitea
  • 相关阅读:
    CocoaPods 的简单快速安装方法
    macOS Catalina new Shell,解决 The default interactive shell is now zsh
    Mac入门--通过homebrew下载过慢问题
    Mac下安装Android Studio
    Mac更新catalina之后有道词典闪退的解决办法
    mac系统下安装Java开发环境(一)——JDK安装
    聊天案例
    ios中常用k线
    ubuntu连接蓝牙鼠标
    image_transport
  • 原文地址:https://www.cnblogs.com/skymyyang/p/13606587.html
Copyright © 2020-2023  润新知