首页 > 编程知识 正文

已安装字体无法使用,gitlab安装使用教程

时间:2023-05-05 12:20:31 阅读:239230 作者:4662

Gitlab 安装,使用已安装Nginx

本来以为安装会很顺利,网上相关文档的也很多,但是很多问题很难找到答案,还是记录一下。第一次安装建议在新服务器上安装,以免对其他服务器影响。当然如果使用docker镜像安装,会比较好。一般也不会有什么问题。

1.安装gitlab

这里系统是 CentOS 7 ,官方参考安装介绍路径 https://about.gitlab.com/installation/#centos-7

简单几步即可完成。

打开http和ssh入口

sudo yum install -y curl policycoreutils-python openssh-serversudo systemctl enable sshdsudo systemctl start sshdsudo firewall-cmd --permanent --add-service=httpsudo systemctl reload firewalld

安装postfix 邮件服务支持

sudo yum install postfixsudo systemctl enable postfixsudo systemctl start postfix

下载 gitlab并安装

# 下载仓库镜像安装脚本curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash# 安装gitlab 下面地址换成自己github地址sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

根据实际情况修改配置文件,然后启动服务。

参考官方的配置介绍:https://docs.gitlab.com/omnibus/README.html#configuring

一般来说主要是修改 external_url 以及邮件相关。

注意:配置 external_url 时, 如果服务器不能访问80端口记得后面跟上自己的端口

邮件配置如腾讯企业邮箱参考:

# vi /etc/gitlab/gitlab.rbgitlab_rails['gitlab_email_from'] = "service@example.com"gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.exmail.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "service@example.com"gitlab_rails['smtp_password'] = "you-password"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = true

注意这里腾讯企业邮端口,官网上配的587是不行的。必须465

修改后,使你的配置生效

gitlab-ctl reconfiguregitlab-ctl restart

启动服务后注意开放防火墙端口(访问端口和邮件端口),如果是云服务器还要修改安全访问策略

这时候就可以根据自己的路径进行访问了。

2.使用自己的Nginx

官网参考文档: https://docs.gitlab.com/omnibus/settings/nginx.html#using-an-existing-passenger-nginx-installation

修改配置文件,禁用内嵌 nginxunicorn

external_url 'http://git.example.com'nginx['enable'] = falseunicorn['enable'] = falsegitlab_rails['internal_api_url'] = 'http://git.example.com'web_server['external_users'] = ['nginx']

安装nginx并增加gitlab的配置文件

/etc/nginx/conf.d/ 目录下创建gitlab的nginx配置文件,并导入官网给的配置内容(https://docs.gitlab.com/omnibus/settings/nginx.html#vhost-server-block)

然后把nginx监听的端口和域名改成自己的。

这时候启动nginx会出错,因为缺少passenger ,所以remove nginx。

安装 passenger + Nginx

从给的配置文件看就知道需要这东西,它就是ruby运行的web容器。

官网安装引导路径:https://www.phusionpassenger.com/library/install/nginx/install/oss/el7/

# install EPELsudo yum install -y epel-release yum-utilssudo yum-config-manager --enable epelsudo yum clean all && sudo yum update -y# repair potential system issuessudo yum install -y ntpsudo chkconfig ntpd onsudo ntpdate pool.ntp.orgsudo service ntpd start# install Passenger packagessudo yum install -y pygpgme curlsudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.reposudo yum install -y nginx passenger || sudo yum-config-manager --enable cr && sudo yum install -y nginx passenger

接下来修改 /etc/nginx/conf.d/passenger.conf

只需要配置 passenger_rootpassenger_ruby 的配置在gitlab推荐的配置已经有了(上面第2点)。

passenger_root 的配置必须有,不然直接报错403,我在这一步卡了很久。

通过 gitlab-ctl tail 命令查看gitlab 查看日志,发现错误大致如下:

...directory index of "/opt/gitlab/embedded/service/gitlab-rails/public/" is forbidden ...

使用 pas senger-config --root 命令会打印 locations.ini 的路径,贴上去即可。

配置好了之后就可以启动 nginx,gitlab-ctl 然后浏览自己的gitlab了。

3.设置开发环境查看运行日志

我在上一步启动后依然报错:

We're sorry, but something went wrong.

此时查看gitlab的日志,没有任务错误信息,然后发现是passenger容器报错,然后查看nginx的错误日志,发现以下错误:

...Cannot checkout session because a spawning error occurred....

看到这个错误依然不知所措,网上查也没什么结果,最后没办法根据错提示,连接到官网:

https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_app_env

按照这上面提到的,在nginx中把环境设置为开发环境,可以优雅打印详细错误日志。

nginx 的gitlab配置文件中加上

passenger_app_env development;

这样运行错误的时候页面会直接把错误信息详细打印出来。

此时我发现是因为启动时安装包 passenger-devel-5.2.2 安装失败,于是手动安装一下。

还有一个错误 gitlab could not find a javascript runtime 手动安装一下nodejs 即可。

yum install -y nodejs

然后运行出现最后的错误,找不到 development 环境的数据库,我把nginx上面环境配置去掉,服务器启动成功。

4.总结

装这样一个很多人都使用的gitlab服务都出现这么多问题,说到底就是像gitlab这样的项目,相关技术栈都是不熟悉的领域,比如passenger是第一次接触。如果是ruby开发者应该会很省事。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。