@huynh
2016-06-15T16:39:35.000000Z
字数 3010
阅读 3668
Linux
gitlab
github
一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并
github可以使用git安装自己的服务器,但是没有提供web界面进行操作
gitlab
GitLab 包括git仓库管理,代码审查,问题跟踪,Wiki等 更多功能. GitLab搭配GitLab CI,能更简单的实现持续集成和自动部署,可完美运行在你自己的基础服务器,社区版本完全免费。
搭建好的gitlab提供了web界面,可以进行各种操作
使用rpm方式安装,数据库默认采用PostgreSQL,服务器默认采用Nginx
安装之前的准备
sudo yum install curl openssh-server postfix cronie 用来在指定时间或周期性的执行一个指定命令。系统很多默认需要周期性执行的任务都是通过crond实现的。
sudo service postfix start 邮件服务器
sudo chkconfig postfix on 邮件
sudo lokkit -s http -s ssh 修改防火墙 。避免用户通过ssh方式和http来访问
获取安装包进行安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash (配置yum源)
sudo yum install gitlab-ce
配置访问地址
打开/etc/gitlab/gitlab.rb,将external_url = 'http://git.example.com'修改为自己的IP地址:http://xxx.xx.xxx.xx,,然后执行下面的命令,对GitLab进行编译
配置文件
/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
/opt/gitlab/embedded/service/gitlab-shell/config.yml
安装好后初始化和启动(重启命令)
sudo gitlab-ctl reconfigure
访问主页
localhost:80
Username: root
Password: 5iveL!fe
以上安装好后,会修改/etc/sysconfig/iptables防火墙文件,并且会安装数据库,修改yum配置文件等,所以需要重新设定以上内容
在浏览器中访问GitLab出现502错误
原因:内存不足
解决办法:检查系统的虚拟内存是否随机启动了,如果系统无虚拟内存,则增加虚拟内存,再重新启动系统
- free -m 查看内存状态
- df -B M(或df -m) 查看各分区当前使用情况
- dd if=/dev/zero of=/swapadd bs=1024 count=524288 在根目录新建一个名为swapadd,大小为512M的虚拟内存文件
- mkdir /mnt/swap
mv swapadd /mnt/swap
移动该文件到空间较大的其他分区:- mkswap /mnt/swap/swapadd
reboot
启用虚拟内存并重启系统
80端口冲突
原因:Nginx默认使用了80端口
解决办法:为了使Nginx与Apache能够共存,并且为了简化GitLab的URL地址,Nginx端口保持不变,修改Apache的端口为4040。这样就可以直接用使用ip访问Gitlab。而禅道则可以使用4040端口进行访问,像这样:xxx.xx.xxx.xx:4040/zentao。具体修改的地方在/etc/httpd/conf/httpd.conf这个文件中,找到Listen 80这一句并将之注释掉,在底下添加一句Listen 4040,保存后执行service httpd restart重启apache服务即可。
8080端口冲突
原因:由于unicorn默认使用的是8080端口。
解决办法:打开/etc/gitlab/gitlab.rb,打开# unicorn['port'] = 8080的注释,将8080修改为9090,保存后运行sudo gitlab-ctl reconfigure即可。
GitLab头像无法正常显示
原因:gravatar被墙
解决办法:
编辑 /etc/gitlab/gitlab.rb 将
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
修改为
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
然后在命令行执行:
sudo gitlab-ctl reconfigure
sudo gitlab-rake cache:clear RAILS_ENV=production
- 配置文件
gitlab安装好后默认安装了nginx,配置文件在
/var/opt/gitlab/nginx/conf/gitlab-http.conf
中,可以看到端口80设置 ,这个文件是被nginx.conf文件所include的,决定了gitlab对外提供服务的端口号。- 查看进程
ps aux |grep nginx
gitlab默认使用pistfix邮件服务,只要开启服务即可,无需配置
service postfix restart
echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com
tail /var/log/maillog
1.启动Postfix服务
启动Postfix服务的命令为:
/etc/init.d/postfix start
2.停止Postfix服务
停止Postfix服务的命令为:
/etc/init.d/postfix stop
3.重新启动Postfix服务
重新启动Postfix服务的命令为:
/etc/init.d/postfix restart
4.重新载入Postfix主配置文件
重新载入Postfix主配置文件的命令为:
/etc/init.d/postfix reload