CentOS 7 安装 Gitlab

CentOS 7 安装 Gitlab

安装基本系统与依赖包

安装 Gitlab 依赖的工具

 

yum -y update
yum -y groupinstall 'Development Tools'
yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-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 git redis ruby sudo wget crontabs logwatch logrotate perl-Time-HiRes

安装 Redis

访问 http://www.redis.io/download,下载 Redis 源代码。

 

wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
make

若在编译过程中出错,则可以执行下面的命令:

 

sudo make test

安装:

 

sudo make install
sudo ./utils/install_server.sh

配置

创建 /etc/init.d/redis 并使用下面的代码作为启动脚本。

添加如下内容:

 

###########################
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/redis/6379.conf"case"$1"in
    start)
        if [ -f$PIDFILE ]
        thenecho"$PIDFILE exists, process is already running or crashed"elseecho"Starting Redis server..."$EXEC$CONFfiif [ "$?"="0" ]
        thenecho"Redis is running..."fi
        ;;
    stop)
        if [ ! -f$PIDFILE ]
        thenecho"$PIDFILE does not exist, process is not running"else
                PID=$(cat $PIDFILE)
                echo"Stopping ..."$REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               doecho"Waiting for Redis to shutdown ..."
                    sleep 1doneecho"Redis stopped"fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo"Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2exit1esac##############################

保存后,添加可执行权限:

 

sudo chmod +x /etc/init.d/redis

确保 redis 能随系统启动:

 

vi /etc/rc.d/rc.local

在文件末尾添加下面这行:

 

service redis start

然后使用上面同样的命令启动 redis 服务:

 

service redis start

安装邮件服务器

 

yum -y install postfix 

安装Git

先删除系统中原有的老版本 git:

 

yum -y remove git
yum install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel

从官方网站下载源代码进行:

 

curl --progress https://www.kernel.org/pub/software/scm/git/git-2.4.0.tar.gz | tar xz
cd git-2.4.0/
./configure
make
make prefix=/usr/local install

然后使用下面这个命令检测安装是否有效:

 

which git

安装 ruby

如果 ruby 的版本低于 2.0 的话,则需要重新安装 ruby。

 

cd ~
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz | tar xz
cd ruby-2.2.2
./configure --disable-install-rdoc
make
make prefix=/usr/local install

为 Gitlab 添加系统用户

 

adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git

为了包含/usr/local/bin到git用户的$PATH,一个方法是编辑超级用户文件。以管理员身份运行:

 

visudo

然后搜索:

 

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

将其改成:

 

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

安装数据库

MySQL 已经不再包含在 CentOS 7 的源中,而改用了 MariaDB,先搜索 MariaDB 现有的包:

 

rpm -qa | grep mariadb

然后全部删除:

 

rpm -e --nodeps mariadb-*

然后创建 /etc/yum.repos.d/MariaDB.repo:

 

vi /etc/yum.repos.d/MariaDB.repo

将以下内容添加至该文件中:

 

# MariaDB 10.0 CentOS repository list - created 2015-05-04 19:16 UTC# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

然后运行下面命令安装 MariaDB 10.0:

 

sudo yum install MariaDB-server MariaDB-client 

然后启动 MariaDB 服务:

 

service mysql start

接着运行 mysql_secure_installation:

 

mysql_secure_installation

登录 MariaDB 并创建相应的数据库用户与数据库:

 

mysql -uroot -p
CREATEUSER'git'@'localhost'IDENTIFIEDBY'$password';SET storage_engine=INNODB;CREATEDATABASEIFNOTEXISTS`gitlabhq_production`DEFAULTCHARACTERSET`utf8`COLLATE`utf8_unicode_ci`;GRANTSELECT, LOCKTABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTERON`gitlabhq_production`.* TO'git'@'localhost';
\q

尝试使用新用户连接数据库:

 

sudo -u git -H mysql -u git -p -D gitlabhq_production
\q

安装 Gitlab

克隆源

 

sudo -u -git cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-10-stable gitlab

配置

 

cd /home/git/gitlab

# Copy the example GitLab config
# 复制GitLab的示例配置文件
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

# Make sure to change"localhost"to the fully-qualified domain name of your host serving GitLab where necessary # 确保修改“localhost”为你的GitLab主机的FQDN # # If you want touse https make sure that you set`https`to`true`. See #using-https forall necessary details. # 如果你想要使用https确保你设置了`https`为`true`。具体必要的细节参见#using-https # # If you installed Git from source, change the git bin_path to /usr/local/bin/git # 如果你从源代码安装了Git,修改git的bin_path为/usr/local/bin/git sudo -u git -H editor config/gitlab.yml # Make sure GitLab can writeto the log/ and tmp/ directories # 确保GitLab可以写入log/和temp/目录 chown -R git {log,tmp} chmod -R u+rwX {log,tmp} # Create directory for satellites # 为卫星(?)创建目录 sudo -u git -H mkdir /home/git/gitlab-satellites chmod u+rwx,g+rx,o-rwx /home/git/gitlab-satellites # Make sure GitLab can writeto the tmp/pids/ and tmp/sockets/ directories # 确保GitLab可以写入tmp/pids/和temp/sockets/目录 chmod -R u+rwX tmp/{pids,sockets} # Make sure GitLab can writeto the public/uploads/ directory # 确保GitLab可以写入public/uploads/目录 chmod -R u+rwX public/uploads # Copy the example Unicorn config # 复制Unicorn的示例配置文件 sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb # Enable cluster modeif you expect to have a high load instance # Ex. change amount of workers to3for2GB RAM server # 启用集群模式如果你期望拥有一个高负载实例 # 附:修改worker的数量到3用于2GB内存的服务器 sudo -u git -H editor config/unicorn.rb # Copy the example Rack attack config # 复制Rack attack的示例配置文件 sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb # Configure Git global settings for git user, useful when editing via web # Edit user.email according to what issetin config/gitlab.yml # 为git用户配置Git全局设定,当通过web修改时有用 # 修改user.email根据config/gitlab.yml中的设定 sudo -u git -H git config --global user.name "GitLab" sudo -u git -H git config --global user.email "gitlab@localhost" sudo -u git -H git config --global core.autocrlf input

数据库配置

 

# MySQL only:
# 仅限MySQL:
sudo -u git cp config/database.yml.mysql config/database.yml

# MySQL and remote PostgreSQL only:
# Update username/passwordin config/database.yml. # You only need to adapt the production settings (first part). # If you followed the database guide then please doas follows: # Change'secure password'with the value you have given to $password # You can keep the double quotes around the password # 仅限MySQL和远程PostgreSQL: # 在config/database.yml中更新用户名/密码; # 你只需要适配生产设定(第一部分); # 如果你跟从数据库向导,请按以下操作: # 修改'secure password'使用你刚才设定的$password; # 你可以保留密码两端的双引号。 sudo -u git -H editor config/database.yml # PostgreSQL and MySQL: # Make config/database.yml readable to git only # PostgreSQL和MySQL: # 设置config/database.yml仅对git可读。 sudo -u git -H chmod o-rwx config/database.yml 

安装 Gems

 

cd /home/git/gitlab

# For users from China mainland only# 仅限中国大陆用户
nano /home/git/gitlab/Gemfile
source"http://ruby.taobao.org" // 原始 source"https://rubygems.org/"# For MySQL (note, the option says "without ... postgres")
sudo -u git -H bundle install --deployment --without development test postgres aws

Install GitLab shell

安装GitLab Shell

GitLab Shell是一个专门为GitLab开发的SSH访问和源管理软件。

 

# Go to the Gitlab installation folder:# 转到GitLab安装目录:cd /home/git/gitlab

# For users from China mainland only# 仅限中国大陆用户
nano /home/git/gitlab/Gemfile
source"http://ruby.taobao.org" // 原始 source"https://rubygems.org/"# Run the installation task for gitlab-shell (replace `REDIS_URL` if needed):# 运行gitlab-shell的安装任务(替换`REDIS_URL`如果有需要的话):
sudo -u git -H bundle exec rake gitlab:shell:install[v1.9.6] REDIS_URL=redis://localhost:6379 RAILS_ENV=production

# By default, the gitlab-shell config is generated from your main gitlab config.# 默认的,gitlab-shell的配置文件是由你的gitlab主配置文件生成的。## Note: When using GitLab with HTTPS please change the following:# - Provide paths to the certificates under `ca_file` and `ca_path options.# - The `gitlab_url` option must point to the https endpoint of GitLab.# - In case you are using self signed certificate set `self_signed_cert` to `true`.# See #using-https for all necessary details.# 提示:当通过HTTPS使用GitLab时,请做出如下更改:# - 提供证书的路径在`ca_file`和`ca_path`选项;# - `gitlab_url`选项必须指向GitLab的https端点;# - 如果你使用自签名的证书,设置`self-signed_cert`为`true`。# 所有必需的具体细节参见#using-https## You can review (and modify) it as follows:# 你可以检查(并修改该)通过以下方法:
sudo -u git -H editor /home/git/gitlab-shell/config.yml

# Ensure the correct SELinux contexts are set# Read http://wiki.centos.org/HowTos/Network/SecuringSSH# 确保正确的SELinux上下文被设置# 阅读http://wiki.centos.org/HowTos/Network/SecuringSSH
restorecon -Rv /home/git/.ssh

初始化数据库和激活高级功能

 

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
# Type 'yes' to create the databasetables. # When done you see 'Administrator account created:'

提示:你可以设置管理员密码通过在环境变量GITLAB_ROOT_PASSWORD中提供,例如:

 

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=newpassword

安装初始化脚本

下载初始化脚本(将放在/etc/init.d/gitlab):

 

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
chmod +x /etc/init.d/gitlab
chkconfig --add gitlab

设置GitLab开机启动:

 

chkconfig gitlab on

设置日志翻转

 

cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

检查应用状态

 

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

编译静态文件

 

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

启动实例

/etc/init.d/gitlab start

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/203813.html<

赞 (0)
管理的头像管理
上一篇2025-04-06 20:59
下一篇 2025-04-06 21:01

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注