Gitlab7.14 中文版安装教程

Gitlab7.14 中文版安装教程

    • 本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com
    • 转发本文请备注原文链接,本文内容整理日期:2024-01-28
    • csdn 博客名称:五维空间-影子,欢迎关注

1 简要说明

  • 说明

    • 为何写本文
    1、本人所在公司目前在用的gilab版本为7.14.3,鉴于版本比较老打算迁移到新版。
    2、旧版乃前人所部署,部署方式也比较传统:通过手动一步步搭环境和组件,还是比较繁琐
    3、本人一般用docker方式部署gitlab,借此机会通过手动方式实现下gilab部署也是有必要的
    
    • gitlab简介
    1、Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目
    2、与Github类似的功能,能够浏览源代码,管理缺陷和注释,
    3、可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库
    
    • 本次部署gitlab所用到的环境和依赖版本说明
    # 以下依赖版本可根据需求选择,可以使用较新版本代替
    
    * 系统版本:Centos 7
    * gitlab:7-14中文版|英文版
    * ruby:2.2.0
    * mysql:5.7
    * nginx:1.8.0 
    * git: 2.8.2
    * redis:yum 版本
    

特别说明:由于旧版距今很多年,重新部署还是有很多坑。也许你按照文档走还会碰到新的问题,希望能克服!

2 前期部署

2.1 基本配置

  • 操作如下

    • 关闭防火墙相关
    # 永久
    sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g'  /etc/sysconfig/selinux
    # 临时
    setenforce 0
    
    systemctl stop firewalld
    systemctl disable firewalld
    
    • 安装epel
      # 方式一
      yum -y install epel* 
      
      # 方式二(推荐)
      wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      rpm -ivh epel-release-latest-7.noarch.rpm
      
    # 导入key
      rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
    
    • 安装puias
    #  puias 是基于RH的一个扩展distribution和mirror,目前它由普林斯顿高能所维护。
    
    # /etc/yum.repos.d/puias-computational.repo
    [PUIAS_computational]
    name=PUIAS computational Base $releasever - $basearch
    mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist
    #baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias
    
    # 导入key,下面二选一
    rpm --import http://puias.princeton.edu/data/puias/7/x86_64/os/RPM-GPG-KEY-puias
    # rpm --import http://springdale.math.ias.edu/data/puias/7/x86_64/os/RPM-GPG-KEY-puias
    
    • 重新建立缓存
    # 建立缓存
    yum clean all && yum makecache
    
    • 创建git用户
    # 请确保用户家目录有足够磁盘空间,因为后续仓库默认的数据都在其家目录下。也可修改到其他目录
    # 默认/home/git,如需指定家目录使用 -d 参数
    useradd git
    # 设置密码  fZ2ICa7w
    passwd git
    # 配置sudo权限
    echo "git ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
    
    echo "export git_SSL_NO_VERIFY=1" >> /home/git/.bash_profile
    source /home/git/.bash_profile
    
    # 不添加变量的话使用https链接会报如下错误,不过本文没有使用https
    fatal: unable to access 'https://github.com/gitlabhq/grit.git/': Peer certificate cannot be authenticated with known CA certificates
    

2.2 安装Development Tools

  • 操作如下

    • 不要 用yum安装ruby、git、nginx 和 mysql,redis可以使用yum安装
    yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis wget crontabs logwatch logrotate perl-Time-HiRes gettext gettext-devel openssl-devel zlib-devel gcc gcc-c++ make autoconf tk-devel python-pip patch pcre-devel curl curl-devel sudo yum-plugin-fastestmirror cmake perl-CPAN nodejs automake libxml* libmcrypt* libtool-ltdl-devel* yum-utils
    
    • 卸载已经安装的包
    yum -y remove ruby git nginx mysql mysql-server
    
    • 安装Development Tools开发组包
    yum -y groupinstall 'Development Tools'
    

2.3 配置时间同步

  • 操作如下

    • 更新localtime文件
    rm -f /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    • 安装
    # yum 方式
    yum -y install ntp
    # 同步时间
    ntpdate pool.ntp.org
    
    # 配置定时任务同步时间,也可以通过 crontba -e 设置
    echo '*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1' >> /var/spool/cron/root
    
    # 查看
    $ crontab -l
    */20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
    

2.4 安装git

  • 操作如下

    • 下载安装包
    # 不检查证书下载
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.2.tar.gz --no-check-certificate
    
    # 编译安装
    tar zxvf git-2.8.2.tar.gz && cd git-2.8.2
    ./configure --prefix=/usr/local/git
    make && make install
    
    # 确认git版本,如有其他旧版本是还没卸载干净
    $ git --version
    git version 1.8.3.1
    $ yum -y remove git
    
    # 全局环境变量
    echo 'export PATH="/usr/local/git/bin:$PATH"' >> /etc/profile
    # 刷新
    source /etc/profile
    
    # 验证
    git --version
    

2.5 安装nginx

  • 操作如下

    • 下载源码包并安装
    # 下载
    wget http://nginx.org/download/nginx-1.8.0.tar.gz
    
    # 解压
    tar -zxvf nginx-1.8.0.tar.gz && cd nginx-1.8.0
    
    # 编译安装
    ./configure --prefix=/usr/local/nginx --user=hukanfa --group=hukanfa --with-http_ssl_module --with-http_stub_status_module --with-pcre
    
    make && make install
    

3 安装redis

  • 操作如下

    • 前面已经使用yum安装过了,下面主要是配置
    • 使用socket方式连接redis(>= redis 2.4.0)
    # 备份之前配置,修改端口号,添加socket配置,添加socket权限,启动服务
    cp -ar /etc/redis.conf /etc/redis.conf.bak
    
    # 修改以下redis配置 /etc/redis.conf
    bind 0.0.0.0
    port 6379
    unixsocket /var/run/redis/redis.sock
    unixsocketperm 0775
    
    # 启动服务
    systemctl start redis
    systemctl status redis
    
    # 配置开机自启
    systemctl enable redis
    # chkconfig redis on
    
    • 将git用户添加到redis组
    $ gpasswd -a git redis
    Adding user git to group redis
    $ id git
    uid=1001(git) gid=1001(git) groups=1001(git),993(redis)
    

4 安装mysql

4.1 下载安装包

  • 操作如下

    • 添加mysql用户
    groupadd mysql
    useradd  -g mysql -s /sbin/nologin mysql
    
    • 获取安装包
    # 官网源码包下载地址,选择对应版本下载即可。下载跳转页面选择左下角不登陆下载,见图
    https://dev.mysql.com/downloads/mysql/
    # 具体下载链接(下载带boots的,后续mysql版本都需要boots)
    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.44.tar.gz
    # 百度网盘下载链接
    https://pan.baidu.com/s/1wrlTyaigxvTKTNf6H8F4KQ?pwd=fniy 
    

在这里插入图片描述
在这里插入图片描述

4.2 编译安装

  • 操作如下

    • 准备所需的文件路径
    # 安装目录及pid文件所在目录\数据目录、日志目录
    mkdir -p /usr/local/mysql57/{data,logs}
    # socket 文件路径
    /tmp
    
    • 安装msyql-boost
    # 解压
    tar -zxvf mysql-boost-5.7.44.tar.gz
    # 进入到解压目录下
    cd mysql-5.7.44
    
    • 编译安装
    # 注意 -DWITH_BOOST=boost 只是相对于cmake执行的当前路径,若是其他路径请写全路径
    # 预编译
    cmake . \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 \
    -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST=boost \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DMYSQL_TCP_PORT=3306 \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_READLINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci
    
    # 正式编译(这个过程需要等待十几分钟),安装过程无异常退出则成功(~ ~)
    make && make install
    
    • 安装成功后,路径下会有以下目录
    $ pwd
    /usr/local/mysql57
    $ ls
    bin  data  docs  include  lib  LICENSE  logs  man  mysql-test  README  README-test  share  support-files
    

4.3 调整配置

  • 操作如下

    • 目录授权
    # 更改安装目录所属为mysql用户
    chown -R mysql:mysql /usr/local/mysql57
    
    • 编辑主配置文件my.cnf
    # 备份原配置
    cp -ar /etc/my.cnf  /etc/my.cnf.bak
    # 清空配置文件
    > /etc/my.cnf
    # vim /etc/my.cnf
    [client]
    port = 3306
    socket = /tmp/mysql.sock
    default-character-set = utf8mb4
     
    [mysqld]
    port = 3306
    user = mysql
    pid-file = /usr/local/mysql57/mysql.pid
    socket = /tmp/mysql.sock
    basedir = /usr/local/mysql57
    datadir = /usr/local/mysql57/data
     
    log_error = /usr/local/mysql57/logs/error.log
    slow_query_log_file = /usr/local/mysql57/logs/slow.log
    
    [mysqldump]
    quick
    max_allowed_packet = 16M
     
    [myisamchk]
    key_buffer_size         = 256M
    sort_buffer_size        = 8M
    read_buffer             = 4M
    write_buffer            = 4M
    
    • 初始化
    # cd /usr/local/mysql57
    ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data
    # 执行完成后data目录下会生产初始数据
    
    • 配置环境变量
    # 全局环境变量
    echo 'export PATH="/usr/local/mysql57/bin:$PATH"' >> /etc/profile
    # 刷新
    source /etc/profile
    
  • 初始化特别说明

    • –initialize:会生成一个随机密码(~/.mysql_secret)
    • --initialize-insecure:不会生成密码,后续再另行设定

4.4 启动项设置

  • 操作如下

    • 使用 systemctl 管理
    # vim /usr/lib/systemd/system/mysql.service
    [Unit]
    Description=The Mysql Process Manager
    After=syslog.target network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    PIDFile=/usr/local/mysql57/mysql.pid
    ExecStart=/usr/local/mysql57/support-files/mysql.server start
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=false
     
    [Install]
    WantedBy=multi-user.target
    
    • 启动服务
    # 重载配置
    systemctl daemon-reload
    # 启动服务
    systemctl start mysql
    # 查看状态
    [root@hukanfa support-files]# systemctl status mysql
    ● mysql.service - The Mysql Process Manager
       Loaded: loaded (/usr/lib/systemd/system/mysql.service; disabled; vendor preset: disabled)
       Active: active (running)
    # 开机自启动
    systemctl enable mysql
    
    • 创建数据库及gitlab用户
    # 登录数据库,无密码。后续可自行设置
    mysql -u root
    # 创建数据库
    CREATE DATABASE IF NOT EXISTS gitlabhq_production;
    # 创建用户
    GRANT ALL PRIVILEGES ON gitlabhq_production.* TO 'git'@'%' IDENTIFIED BY 'cX4ncpjZMU';
    # 刷新权限
    FLUSH PRIVILEGES;
    
    • 测试连接
    # 输入密码后登录
    mysql -ugit -p
    # 查看库
    mysql> show databases;
    +---------------------+
    | Database            |
    +---------------------+
    | information_schema  |
    | gitlabhq_production |
    +---------------------+
    2 rows in set (0.00 sec)
    

5 安装gitlab

:此篇开始,一般使用git用户环境操作

5.1 安装ruby

  • 操作如下

    • 下载ruby源码包
    # 查看ruby版本
    https://www.ruby-lang.org/zh_cn/downloads/releases/
    
    # 下载
    wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz
    
    
    • 编译安装ruby
    # 解压
    tar -zxvf tar -zxvf ruby-2.2.0.tar.gz
    
    # 编译安装
    cd ruby-2.2.0
    ./configure --prefix=/usr/local/ruby --disable-install-rdoc
    make clean && make && make install
    
    # 全局环境变量
    echo 'export PATH="/usr/local/ruby/bin:$PATH"' >> /etc/profile
    # 刷新
    source /etc/profile
    
    # 验证
    gem --version
    ####
    2.4.5
    ruby --version
    ####
    ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
      
    chown -R git:git /usr/local/ruby
    

5.2 安装bundler

  • 操作如下

    • 添加国内源
    # gem source --remove|-r --add|-a
    # 删除默认源 # 新增国内源
    gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
    # gem source -a http://mirrors.aliyun.com/rubygems/
    # 更新缓存
    gem sources -u
    # 查看在用的源
    gem sources -l
    
    • 安装bundler
    # ruby2.5.0 版本只支持 bundler2.0.0以下版本,之下最新版本为:1.17.3
    gem install bundler -v 1.17.3
    # 安装完成后,bundle/bundler命令默认在ruby安装目录bin下,如/usr/local/ruby/bin/
    
    # bundler版本查看链接
    https://github.com/rubygems/bundler/tags
    
    • 如果遇到 SSL 证书问题,请修改 ~/.gemrc 文件,增加 ssl_verify_mode: 0 配置,以便于 RubyGems 可以忽略 SSL 证书错误。
    # vim  ~/.gemrc
    

:sources:

  • https://gems.ruby-china.com
    :ssl_verify_mode: 0

    
    

5.3 安装gitlab-shell

  • 操作如下

    • 切换到git用户
    su - git
    # 配置gem安装忽略证书认证
    vim  ~/.gemrc
    ---
    :backtrace: false
    :bulk_threshold: 1000
    :sources:
    - https://gems.ruby-china.com/
    :ssl_verify_mode: 0
    :update_sources: true
    :verbose: true
    
    • 下载仓库代码
    git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v2.7.2
    cd gitlab-shell/
    cp config.yml.example config.yml
    vi config.yml
    
    • 修改配置
    # 配置自己的gitlab域名和端口,没有就用默认
    gitlab_url: "http://localhost:8080"
    # 下面修改的内容为git指定家目录后的操作,如果是默认的/home/git则不需要修改,后面不再提示
    ##################################
    repos_path: "/home/git/repositories"
    auth_file: "/home/git/.ssh/authorized_keys"
    ##################################
    
    • 配置gitlab-shell使用reidis-socket
    redis:
    bin: /usr/bin/redis-cli
    # host: 127.0.0.1
    # port: 6379
    # pass: redispass # Allows you to specify the password for Redis
    database: 0
    socket: /var/run/redis/redis.sock
    namespace: resque:gitlab
    
    • 安装
    ./bin/install
    
    # cd ~
    

5.4 拉取代码

  • 操作如下

    • 方式一
    # 从官网下载,英文版本。低版本gitlab估计是不能选择语言,最新版本是可以在设置界面选择语言
    git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-14-stable gitlab
    
    • 方式二
    # 中文版 7.14
    git clone https://gitee.com/hukanfa/gitlab.git -b 7-14-zh gitlab
    

5.5 修改主配置

  • 操作如下

    • 复制配置文件
    # 切换到git用户,进入到gitlab根目录
    cp config/gitlab.yml.example config/gitlab.yml
    
    • 修改gitlab.yml配置文件,默认用了/home/git路径的基本不用改
    vim config/gitlab.yml
    ################
    :%s/home/data/g
    ################
    ## gitLab settings
    gitlab:
    ## 设置域名或用默认
    host: localhost 
    port: 8080
    https: false
    # 如果准备使用smtp方式发送邮件,这里可以修改为发送邮件的账号,如果使用系统sendmail就不用修改
    email_from: noreply@cass.com
    email_display_name: GitLab
    email_reply_to: noreply@cass.com
    # 允许使用用户名或邮箱账号登录
    allow_username_or_email_login: true
    # 根据需要设定
    path: /home/git/gitlab-satellites/
    
    gitlab_shell:
      path: /home/git/gitlab-shell/
    
    # REPOS_PATH MUST NOT BE A SYMLINK!!!
    repos_path: /home/git/repositories/
    hooks_path: /home/git/gitlab-shell/hooks/
    ##################################
    # ssh端口,根据实际修改
    ssh_port: 22
    # 下面是编译安装git后的路径,默认文件最大大小和超时时间
    git:
      bin_path: /usr/local/bin/git
      max_size: 524288000 # 5.megabytes
      timeout: 300
    
    • 修改unicorn.rb,默认**/home/git**目录的不用改
    cp config/unicorn.rb.example config/unicorn.rb
    vim config/unicorn.rb
    ###################################
    working_directory "/home/git/gitlab" # available in 0.94.0+
    listen "/home/git/gitlab/tmp/sockets/gitlab.socket", :backlog => 64
    pid "/home/git/gitlab/tmp/pids/unicorn.pid"
    stderr_path "/home/git/gitlab/log/unicorn.stderr.log"
    stdout_path "/home/git/gitlab/log/unicorn.stdout.log"
    
    # 默认8080端口,如果被占用自修改
    listen "127.0.0.1:8080", :tcp_nopush => true
    timeout 300
    
    • 创建目录
    mkdir /home/git/gitlab-satellites
    
    • 关于rack_attack.rb
    # rack-attack 可以根据ip、域名等设置黑名单、设置访问频率。请按需配置,这里暂不配置
    cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
    # 关于这块使用附上参考博文: https://blog.csdn.net/qq_41037744/article/details/134519179
    

5.6 修改数据库配置

  • 操作如下

    • 修改连接redis配置
    cp config/resque.yml.example config/resque.yml
    # 修改配置
    vim config/resque.yml
    ###################################
    development: redis://localhost:6379
    test: redis://localhost:6379
    production: unix:/var/run/redis/redis.sock
    
    • 修改连接数据mysql库配置
    cp config/database.yml.mysql config/database.yml
    vim config/database.yml
    ############################
    production:
      adapter: mysql2
      encoding: utf8mb4
      collation: utf8mb4_general_ci
      reconnect: false
      database: gitlabhq_production
      pool: 10
      username: root  # 这里之前用git用户,但发现有下面报错提示,懒得排查直接换成root,之前没设置过密码
      #password: "cX4ncpjZMUv"
      #host: localhost
      # socket: /tmp/mysql.sock
      
    # 用git用户报错
    Access denied for user 'git'@'localhost' (using password: YES)Please provide the root password for your mysql installation
    

5.7 安装gems

  • 操作如下

    • 安装
    cd ~/gitlab
    sudo gem install charlock_holmes --version '0.6.9'
    #####
    Fetching: charlock_holmes-0.6.9.gem (100%)
    ...
    Installing ri documentation for charlock_holmes-0.6.9
    Done installing documentation for charlock_holmes after 6 seconds
    1 gem installed
    
    • 修改源为国内
    # 1
    vim Gemfile
    source "https://rubygems.org" 改为
    source "https://gems.ruby-china.com"
    # source "http://mirrors.aliyun.com/rubygems"
    # 2
    vim Gemfile.lock
    source "https://gems.ruby-china.com"
    
    • 修改文件
    # 【1】第一波更改
    ### vim Gemfile.lock  行首添加
    GIT
      remote: https://gitee.com/hukanfa/gemnasium-gitlab-service
      revision: 4f2f3cb0003c8f5938286cb7161ff93d2804f934
      specs:
        gemnasium-gitlab-service (0.2.6)
          rugged (~> 0.21)
    # 删掉
    260     gemnasium-gitlab-service (0.2.6)
    261       rugged (~> 0.21)
    # 改为感叹号
    789   gemnasium-gitlab-service!
    
    ### vim Gemfile
    # 增加
    gem "gemnasium-gitlab-service", git: "https://gitee.com/hukanfa/gemnasium-gitlab-service"
    # 删掉
    157 gem "gemnasium-gitlab-service", "~> 0.2"
    
    # 两个文件修改mysql2的版本为 0.3.21
    # 之后遇到一些依赖报错直接在上面两个文件直接删掉就行,版本过于老旧一些依赖在源中已经找不到了或者新版不支持了
    
    • 执行安装
    # 有些版本低的依赖可打开源站所属对应依赖有哪些版本,重新指定版本
    bundle install --deployment --without development test postgres puma aws wiki
    gem install rdoc-data; rdoc-data --install
    

5.8 数据初始化及配置检查

  • 操作如下

    • 初始化数据库
    # bundle exec rake gitlab:setup RAILS_ENV=production --verbose
    ...
    Do you want to continue (yes/no)? yes
    #最后初始化成功后会获得账号和密码
    == Seed from /home/git/gitlab/db/fixtures/production/001_admin.rb
    
    Administrator account created:
    
    login.........root
    password......5iveL!fe
    
  
- 检查gitLab及其环境的配置是否正确
  
  ```shell
  cd ~/gitlab
  bundle exec rake gitlab:env:info RAILS_ENV=production
  ##########
  [git@hukanfa gitlab]$ bundle exec rake gitlab:env:info RAILS_ENV=production
  
  System information
  System:
  Current User:	git
  Using RVM:	no
  Ruby Version:	2.2.0p0
  Gem Version:	2.4.5
  Bundler Version:1.17.3
  Rake Version:	10.4.2
  Sidekiq Version:3.3.0
  
  GitLab information
  Version:	7.14.3
  Revision:	12bbae4
  Directory:	/home/git/gitlab
  DB Adapter:	mysql2
  URL:		http://localhost:8080
  HTTP Clone URL:	http://localhost:8080/some-group/some-project.git
  SSH Clone URL:	git@localhost:some-group/some-project.git
  Using LDAP:	no
  Using Omniauth:	no
  
  GitLab Shell
  Version:	2.7.2
  Repositories:	/home/git/repositories/
  Hooks:		/home/git/gitlab-shell/hooks/
  Git:		/usr/bin/git
  
  #  bundle exec rake sidekiq:start RAILS_ENV=production
  # bundle exec rake gitlab:check RAILS_ENV=production
  
  # 这里都走一遍
  chmod -R ug+rwX,o-rwx /home/git/repositories/
  chmod -R ug-s /home/git/repositories/
  find /home/git/repositories/ -type d -print0 | sudo xargs -0 chmod g+s
  sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites

5.9 配置nginx

  • 操作如下

    • 创建启动脚本
    # root执行
    cp lib/support/init.d/gitlab /etc/init.d/gitlab
    cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
    cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
    chmod +x /etc/init.d/gitlab
    
    # 配置开机启动
    chkconfig --add gitlab
    chkconfig gitlab on
    
    ##### 下面这里如果安装目录不是/home/git/gitlab就需要改 ########
    # vim /etc/default/gitlab
    # app_root="/data/$app_user/gitlab"
    
    #无需下载
    ##sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn -P /etc/init.d/
    ##sudo mv /etc/init.d/gitlab-unicorn /etc/init.d/gitlab
    ##########################
    
  
  - 调整配置
  
  ```shell
  # 复制配置文件
  cd ~/gitlab
  sudo mkdir /usr/local/nginx/conf/conf.d/ -p
  sudo cp lib/support/nginx/gitlab /usr/local/nginx/conf/conf.d/
  cd /usr/local/nginx/conf/conf.d/
  sudo chown -R git:git .
  cp gitlab gitlab.conf
  vim /usr/local/nginx/conf/nginx.conf
  
  # 修改nginx主配置
  user  git;
  worker_processes  2;
  events {
   worker_connections  1024;
  }
  
  http {
   include mime.types;
   # 这句话加入
   include conf.d/*.conf;
  ......
  
  # gitlab虚拟主机的配置
  vim /usr/local/nginx/conf/conf.d/gitlab.conf
  server {
    listen 0.0.0.0:8080 default_server;
    #listen [::]:80 default_server;
    server_name gitlab.hkf56.com;
    # 修改日志路径
    access_log  /usr/local/nginx/logs/gitlab_access.log;
    error_log   /usr/local/nginx/logs/gitlab_error.log;

  location ~ ^/(assets)/ {
 root /home/git/gitlab/public;
   #gzip_static on;
   
    access_log  /var/log/nginx/gitlab_access.log;
    error_log   /var/log/nginx/gitlab_error.log;
  • 修改后得gitlab.conf内容如下

    upstream gitlab {
      server unix:/home/git/gitlab/tmp/sockets/gitlab.socket fail_timeout=0;
    }
    
    server {
      listen 80;
      server_name gitlab.hkf56.com;
      server_tokens off;
      root /home/git/gitlab/public;
      client_max_body_size 20m;
      access_log  logs/gitlab_access.log;
      error_log   logs/gitlab_error.log;
    
      location / {
        try_files $uri $uri/index.html $uri.html @gitlab;
      }
    
      location /uploads/ {
        proxy_read_timeout      300;
        proxy_connect_timeout   300;
        proxy_redirect          off;
    
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_set_header    X-Frame-Options     SAMEORIGIN;
    
        proxy_pass http://gitlab;
      }
    
      location @gitlab {
        proxy_read_timeout      300;
        proxy_connect_timeout   300;
        proxy_redirect          off;
    
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_set_header    X-Frame-Options     SAMEORIGIN;
    
        proxy_pass http://gitlab;
      }
    
      location ~ ^/(assets)/ {
        root /home/git/gitlab/public;
        #gzip_static on;
        expires max;
        add_header Cache-Control public;
      }
    
      error_page 502 /502.html;
    }
    
    • 拉取gitLab静态文件
    su - git && cd ~/gitlab
    bundle exec rake assets:precompile RAILS_ENV=production
    # redis的socket文件授权
    chmod 777 /var/run/redis/redis.sock
    # 启动gitlab服务
    sudo service gitlab restart
    #####
    ...
    The GitLab Unicorn web server with pid 49907 is running.
    The GitLab Sidekiq job dispatcher with pid 49938 is running.
    GitLab and all its components are up and running.
    # 查看端口
    netstat -antlp |grep 8080
    # 启动nginx
    sudo /usr/local/nginx/sbin/nginx
    

5.10 访问测试

  • 操作如下

    • 修改本地hosts文件增加解析如下
    # window 路径如下 C:\Windows\System32\drivers\etc\hosts
    192.168.26.8  gitlab.hkf56.com
    
    • 页面访问域名,输入下面账号密码
    # 初始管理员帐号密码为
    root  5iveL!fe
    

    在这里插入图片描述

    • 登入后重置密码
      在这里插入图片描述

    • 最终效果如下
      在这里插入图片描述

    • 恭喜你,已经完成了gitlab7.14.3版本部署。过程很多坑,但按照文档走一定顺利

5.11 修改邮件发送

:此部分内容作者本人并未测试过,有需要请自行完成配置并测试

  • 操作如下

    • 修改配置
    cd ~/gitlab/
    vim config/environments/production.rb
     config.action_mailer.delivery_method = :smtp
    
    cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb
    
    vim config/initializers/smtp_settings.rb
    if Rails.env.production?
    
    Gitlab::Application.config.action_mailer.delivery_method = :smtp
    
    ActionMailer::Base.smtp_settings = {
    address: "smtp.163.com",
    port: 25,
    user_name: "xxx@cass.com",
    password: "password",
    domain: "smtp.163.com",
    authentication: :plain,
    enable_starttls_auto: true,
    #openssl_verify_mode: 'peer' # See ActionMailer documentation for other possible options
    }
    end
    
    • 8.x版本的邮件配置和7.x有所不同
    cd ~/gitlab/
    vim config/environments/production.rb
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
    :address => "smtp.163.com",
    :port => "25",
    :domain => "smtp.163.com",
    :authentication => :plain,
    :user_name => "xxx@163.com",
    :password => "xxx",
    :enable_starttls_auto => true
    }
    
    • 配置好你的邮箱和密码
    # 编辑config/gitlab.yml 对应修改一下配置
    email_from: xxx@cass.com
    email_display_name: GitLab
    email_reply_to:xxx@cass.com
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355931.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

部署LNMP、Nginx+FastCGI、Nginx地址重写语法,地址重写应用案例

1 案例1:部署LNMP环境 1.1 问题 安装部署LNMP环境实现动态网站解析 静态网站 在不同环境下访问,网站内容不会变化 动态网站 在不同环境下访问,网站内容有可能发生变化 安装部署Nginx、MariaDB、PHP、PHP-FPM;启动Nginx、Mari…

STM32标准库——(6)TIM定时中断

1.TIM简介 TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时不仅具备基本的定时中断功能&#xff0…

LVGL部件

一.标签部件 1.如何创建标签部件以及设置文本 ![2024-01-28T09:54:08.png][3] void my_lvgl(void) {lv_obj_t *lablelv_label_create(lv_scr_act()); //创建一个标签lv_label_set_text(lable,"hello"); //普通更改文字lv_label_set_text_fmt(lab…

Zerosync:构建基于STARK的Bitcoin证明系统

1. 引言 前序博客: BitcoinSTARK: ZeroSync & Khepri Robin Linus、Tino Steffens、Lukas George 等人成立了一个名为 ZeroSync 协会(ZeroSync Association)的瑞士非营利组织,该组织将牵头开发比特币证明系统。ZeroSync 于…

shell

目录 一.运行方式 二.编程习惯 三.变量 3.1变量的命名 3.3普通变量(局部变量) 3.4特殊变量 3.5变量子串 3.6变量赋值 四.运算方式 4.1$(( )) 4.2let 4.3expr 4.4bc(小数运算) 4.5$[ ] 4.6awk 4.7总结运算方式 五.条件测试语句 5.1文件 5.2条件测试表达式…

js实现动漫拼图1.0版

文章目录 1 实现效果视频2 功能实现思路3代码实现 1 实现效果视频 拼图1.0 2 功能实现思路 布局忽略(小白学前端,不献丑了) 左侧拼图格 左侧4*4的拼图小格子 利用表格实现,规划好td的大小,给每个格子加上背景图片&…

计算方法实验2:利用二分法及不动点迭代求解非线性方程

一、问题描述 利用二分法及不动点迭代求解非线性方程。 二、实验目的 掌握二分法及不动点迭代的算法原理;能分析两种方法的收敛性;能熟练编写代码实现利用二分法及不动点迭代来求解非线性方程。 三、实验内容及要求 二分法 (1) 编写代码计算下列数字…

类和对象 第五部分第四小节:赋值运算符重载

C编译器至少给一个类添加4个函数 1.默认构造函数无参,函数体为空 2.默认析构函数无参,函数体为空 3.默认拷贝沟早函数,对属性进行值拷贝 4.赋值运算符“operator”,对属性进行值拷贝 如果类中有属性指向堆区,做赋值操作…

上推加载更多组件

本组件使用的是TaroReact 实现的 ,具体代码如下 一共分为tsx和less文件 //index.tsx /** RefreshLoading* description 上推加载更多组件* param loading boolean* param style* returns*/import { View } from "tarojs/components"; import React, { FC…

[ESP32 IDF] wifi 的应用

目录 背景知识 wifi的基本连接使用 WiFi篇—— WiFi两种模式文章中二、WiFi 的启动(STA 及 AP 模式) 输出现象 通过websocket控制LED 实践验证 实验现象 背景知识 WIFI是ESP32非常重要的一个功能,想要使用一下IDF的API实现将ESP32连…

深度学习核心技术与实践之深度学习研究篇

非书中全部内容,只是写了些自认为有收获的部分。 Batch Normalization 向前传播 (1)三个主要任务:计算出每批训练数据的统计量。 对数据进行标准化 对标…

vue 使用 v-viewer 用于图片浏览的Vue组件,支持旋转、缩放、翻转等操作,基于viewer.js。

作者连接 npm: npm install v-viewerlegacy viewerjs main.js 引入: // 引入Viewer插件 import VueViewer, { directive as viewerDirective } from v-viewer; // 引入Viewer插件的图片预览器的样式 import viewerjs/dist/viewer.css; // 使用Viewer图片…

最新Unity DOTS Instancing合批:如何针对单个渲染实体修改材质参数

最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大…

RabbitMQ“延时队列“

1.RabbitMQ"延时队列" 延迟队列存储的对象是对应的延迟消息,所谓“延迟消息”是指当消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费 注意RabbitMQ并没有延时队列慨念,…

vite+ts+vue3打包的过程和错误

文章目录 概要vite.config.ts配置tsconfig.json 的配置package.json 的配置路由配置打包打开打包后的文件小结 概要 完成vite的打包,和在本地打开页面 记录一下,vite打包过程中的问题!!! vite.config.ts配置 vite.config.ts配置打包的相关配置 import…

Linux实验记录:使用RAID(独立冗余磁盘阵列)

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 目录 前言: 备注: 部署磁盘阵…

菱形打印和十进制ip转二进制

1.菱形打印 用for循环 #!/bin/bashread -p "请输入菱形的大小&#xff1a;" num #打印向上的等腰三角形 for ((i1;i<num;i)) dofor ((jnum-1;j>i;j--))doecho -n " " #打印的是前面的空格donefor ((k1;k<2*i-1;k))doecho -n "*" #打印…

NPDP认证:产品经理的国际专业认证

你是否想证明自己在产品开发与管理方面的专业能力&#xff1f;NPDP认证正是你需要的&#xff01;&#x1f525; NPDP认证&#xff0c;即产品经理国际资格认证&#xff0c;由美国产品开发与管理协会&#xff08;PDMA&#xff09;所发起&#xff0c;是全球公认的新产品开发专业认…

【大厂AI课学习笔记】1.2 人工智能的应用(1)

目录 1.2 人工智能的应用 1.2.1 产业中人工智能的应用 金融 教育 医疗 交通 制造 ——智慧金融 智能风控 智能理赔 智能投研 &#xff08;声明&#xff1a;本学习笔记学习原始资料来自于腾讯&#xff0c;截图等资料&#xff0c;如有不合适摘录的&#xff0c;请与我联…

【Sql Server】新手一分钟看懂在已有表基础上增加字段和说明

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…