Ubuntu 14.04 GitLab 安装

本贴最后更新于 2589 天前,其中的信息可能已经水流花落

首先,妈的鸡,搞了大半天才搞完

步骤总结:

  1. 安装 postfix

  2. 配置 postfix

关于 postfix 的坑

  1. 安装 gitlab

  2. 配置 gitlab

关于 gitlab 的坑

安装 postfix

  1. 安装其实很简单:

apt-get install postfix

但是需要在这个之前先对自己的域名进行解析,我用的是阿里云,解析直接放图:

准备工作做好了,就到了蛋疼的配置了

配置 postfix

  1. postfix 的配置

/etc/postfix/main.cf //配置文件地址


myhostname = mail.yourSite.cn

mydomain = yourSite.cn

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = $mydomain

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

relayhost =

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

inet_protocols = all

//涉及到的字段,改为上述的样子

  1. 重启

service postfix restart

关于 postfix 的坑

坑的总结:

  • 在安装的时候没有注意,就按照网上的教程一路默认安装,导致找不到配置文件,也就是在 /etc/postfix 中没有 main.cf 文件

解决方法:


先卸载了这个玩意

apt-get purge postfix

再次安装

apt-get install postfix

安装的时候切记,选择internet site,并填写你的上面解析的mail.domain.com域名

  • 在安装的时候选择的 Local only 的结果:就是只能收件不能发件

现象


postfix 输出日志:

/var/log/mail.log

postfix 默认邮件存储文件夹:

/var/mail/root

输出日志显示

status=bounced

安装 gitlab

  1. 建议找一个比较稳定的网络环境下载本地再上传服务器

  2. 安装:dpkg -i gitlab-ce_7.10.5~omnibus-1_amd64.deb

  3. 前提是安转了 postfix 并配置好了,这样在安装的时候会自动构建依赖,不然,你就算 Gitlab 安装好了,你还是注册不了用户

配置 gitlab

  1. 配置 1:gitlab.rb

位置:/etc/gitlab/gitlab.rb


external_url 'http://ip:8090'

//将这一行改为自己的地址,端口分配一个没有被占用的

  1. 配置 2:unicorn.rb

位置:/var/opt/gitlab/gitlab-rails/etc/unicorn.rb


listen "127.0.0.1:8099", :tcp_nopush => true

//将这一行改为自己的地址,端口分配一个没有被占用的,不要与上面的重复

  1. 重启服务

gitlab-ctl reconfigure

关于 gitlab 的坑

  1. 已经配置了访问地址端口为 8090,8080 端口还一直被占用,kill 也没有用

找到占用 8080 端口的服务为 config.rf,找到 pid

ps pid 找到服务创建文件,发现是/var/opt/gitlab/gitlab-rails/etc/unicorn.rb

找到原因:没有修改这个配置文件

  1. Gitlab 在辛辛苦苦配置后成功跑起来,但时不时出现 500 界面

找到 log 文件 /var/log/gitlab/gitlab-rails/production.log

发现是内存问题 :Error (Cannot allocate memory)

发现是应为没有 Swap 分区导致

创建 Swap 分区


1、进入一个目录:cd /var/

2、获取256M的文件块:dd if=/dev/zero of=swapfile bs=1024 count=262144

如果需要添加2G的SWAP分区,则获取2G的文件块: dd if=/dev/zero of=swapfile bs=1024 count=2097152

3、创建swap文件:/sbin/mkswap swapfile

4、激活swap文件:/sbin/swapon swapfile

5、查看一下swap是否正确:/sbin/swapon -s

6、加到fstab文件中让系统引导时自动启动:vi /etc/fstab

在末尾增加以下内容:/var/swapfile swap swap defaults 0 0

也可以执行如下命令,感觉这样更方便 :echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab

顺便附上DD命令的参数介绍:

dd命令

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

语法:dd [选项]

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

注意:阿里云默认在启动项里关闭了SWAP分区,在/etc/rc.d/rc.local文件里有一行 swapoff -a ,表示禁用swap。把这行删掉就好了。

  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...