YiluPHP
这家伙很懒,什么都没有留下...

经验 centos7已有nginx安装gitlab,并修改默认nginx

浏览数 190933 最后修改时间
参考了网上多遍资料,踩了不少坑,终于搞定了,我先安装了nginx和PHP,然后再安装gitlab,最后关闭gitlab默认的nginx,使用我安装的nginx,这样以后我就可以在这台机器上部署更多自己的系统。

一, 服务器快速搭建gitlab方法

可以参考gitlab社区的教程
centos7安装gitlab:https://www.gitlab.com.cn/installation/#centos-7
centos6安装gitlab:https://www.gitlab.com.cn/installation/#centos-6

我是按照官网来操作的,再按以下方法设置邮件服务和测试邮件服务。

mkdir /software
cd /software
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://改为你的访问域名" yum install -y gitlab-ee

安装成功后会显示 Complete!
如果你的域名和IP还没有绑定,则需要绑定一下
这时打开 http://改为你的访问域名,即可跳转到重设密码页面。
gitlab重设页面

gitlab重设页面

 

进行邮箱配置。相对来说,smtp比较方便,这里以QQ企业邮箱为例,配置流程。
  • cd /root
  • vi /etc/gitlab/gitlab.rb 进行修改
  • 删除以下配置文件前面的#,并且进行配置。
  • gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "您的邮箱"
    gitlab_rails['smtp_password'] = "您的密码"
    gitlab_rails['smtp_domain'] = "qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = "您的邮箱"

  • gitlab-ctl reconfigure 加载配置
  • gitlab-ctl restart 重启gitlab服务
  • gitlab-rails console 进入gitlab控制台
  • Notify.test_email('你想给谁发的邮箱地址','邮箱主题','邮箱正文').deliver_now
发送邮件测试
gitlab发送测试文件

gitlab发送测试文件[退出用exit命令]

邮箱配置完毕后,重新输入密码即可进入gitlab


———————-万恶的分割线,下面我们需要修改其他配置,以便可以和lnmp共存———–

踩了无数坑后,终于搞好了lnmp和gitlab的共存。

  • lnmp首先新建一个vhost
  • cd /usr/local/tengine-2.2.1/conf/
  • 我用的是tengine,如果你的是纯nginx,那就
  • cd /usr/local/nginx/conf/
  • mkdir vhosts.d
  • vim vhosts.d/example.com.conf
  • 我使用默认的端口号80,配置文件如下:
  • upstream gitlab-workhorse {
            server unix:/var/opt/gitlab/gitlab-workhorse/socket;
    }
    ## Normal HTTP host
    server {
            listen 80; ##端口
            server_name 你的域名;
            server_tokens off; ## 不显示nginx版本号
            root /opt/gitlab/embedded/service/gitlab-rails/public;
            access_log /logs/gitlab_access.log; #这里我修改成根目录的logs路径,这个是我自己创建的
            error_log /logs/gitlab_error.log; #这里我修改成根目录的logs路径,这个是我自己创建的
    
            location / {
                    client_max_body_size 0;
                    gzip off;
    
                    ## Some requests take more than 30 seconds.
                    proxy_read_timeout 300;
                    proxy_connect_timeout 300;
                    proxy_redirect off;
    
                    proxy_http_version 1.1;
    
                    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_pass http://gitlab-workhorse;
            }
    }

  • 修改:/etc/gitlab/gitlab.rb

nginx['enable'] = false

重启gitlab,启动nginx后就可以正常访问了

gitlab-ctl reconfigure

gitlab-ctl restart

service nginx start

我的nginx使用的是root用户运行的,如果你使用的是其它用户,可能会存在无法访问gitlab和sock的问题,可以在nginx的配置文件中修改运行的用户

vim /usr/local/tengine-2.2.1/conf/nginx.conf

修改为

user root;

重启nginx即可


禁止 Gitlab 开机自启动:
systemctl disable gitlab-runsvdir.service

启用 Gitlab 开机自启动:
systemctl enable gitlab-runsvdir.service


==================以下是我参考的一些网上的资料,有很多可学习的地方=====================

centos7已有nginx安装gitlab版本管理器10.1.2
http://www.80000s.com/archives/556

CentOS7安装GitLab、汉化及使用
https://www.linuxidc.com/Linux/2017-11/148223.htm

CentOS服务器上搭建Gitlab安装步骤、中文汉化详细步骤、日常管理以及异常故障排查
http://www.21yunwei.com/archives/4351

CentOS 7 安装 GitLab CE 社区版并修改默认 Nginx
https://laravel-china.org/topics/2829/centos-7-install-gitlab-ce-community-edition-and-modify-the-default-nginx

gitlab之:502解决
http://www.nideyuan.com/?p=319

我所遇到的GitLab 502问题的解决
https://blog.csdn.net/rodjohnsondoctor/article/details/45605469

gitlab源码安装问题汇总
http://www.bubuko.com/infodetail-1671560.html

部署 部署 GitLab 到最后配置 nginx 碰到权限问题
https://ruby-china.org/topics/5113

测试邮件服务时报错:send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
https://blog.csdn.net/csdnones/article/details/50717934


==============我摘抄一点过来,免得这些帖子删除后就再也找不到了============

  • 修改:/etc/gitlab/gitlab.rb

    A、web_server['external_users'] = ['www','git','gitlab-www']
    B、nginx['enable'] = false
    C、external_url 'http://你的域名:8000'
  • 修改:/opt/gitlab/embedded/conf/nginx.conf 端口改成8000
  • 修改:/var/opt/gitlab/nginx/conf/gitlab-http.conf 端口改成8000

因为还没有实际应用,不知道是否还有其他坑,只是可以打开gitlab后台。还未建立仓库和提交操作。

从gitlab自身带的nginx配置来看,感觉上应该比lnmp的配置要多不少,比如cache之类的。。个人建议使用gitlab自身的nginx配置。


GitLab的命令

语法:

gitlab-ctl command (subcommand)

Service Management Commands

start

启动所有服务

stop

关闭所有服务

restart

重启所有服务

status

查看所有服务状态

tail

查看日志信息

service-list

列举所有启动服务

graceful-kill

平稳停止一个服务

例子:

 #启动所有服务
[root@gitlab ~]# gitlab-ctl start

#启动单独一个服务
[root@gitlab ~]# gitlab-ctl start nginx

#查看日志,查看所有日志
[root@gitlab ~]# gitlab-ctl tail

#查看具体一个日志,类似tail -f
[root@gitlab ~]# gitlab-ctl tail nginx

General Commands

help

帮助

reconfigure

修改配置文件之后,需要重新加载下

show-config

查看所有服务配置文件信息

uninstall

卸载这个软件

cleanse

删除gitlab数据,重新白手起家

例子:

 #显示所有服务配置文件
[root@gitlab ~]#gitlab-ctl show-config

#卸载gitlab
[root@gitlab ~]#gitlab-ctl uninstall

日志位置:/var/log/gitlab 可以进去查看访问日志以及报错日志等,供访问查看以及异常排查。
gitlab-ctl tail #查看所有日志
gitlab-ctl tail nginx/gitlab_access.log #查看nginx访问日志


我来说说