GitLab的兩種安裝方法:java
編譯安裝linux
優勢:可定製性強。數據庫既能夠選擇MySQL,也能夠選擇PostgreSQL;服務器既能夠選擇Apache,也能夠選擇Nginx。git
缺點:國外的源不穩定,被牆時,依賴軟件包難如下載。配置流程繁瑣、複雜,容易出現各類各樣的問題。依賴關係多,不容易管理,卸載GitLab相對麻煩。數據庫
經過rpm包安裝apache
優勢:安裝過程簡單,安裝速度快。採用rpm包安裝方式,安裝的軟件包便於管理。centos
缺點:數據庫默認採用PostgreSQL,服務器默認採用Nginx,不容易定製。瀏覽器
因爲公司只配備了一臺阿里雲服務器,而且沒有分配任何的域名。該服務器上須要運行版本控制軟件、bug管理軟件、知識庫等多套程序,只能採用ip的方式訪問。原先採用GitLab+Apache+MySQL編譯安裝的方式,而且將GitLab配置爲可經過xxx.xx.xxx.xx/gitlab
的形式訪問,因爲bug管理軟件(禪道)也運行於Apache之上,兩套軟件之間彼此有互斥的影響,找不到解決方法。同時,GitLab的註冊須要郵箱驗證,因爲網上提供的配置方法都是基於域名的,在阿里雲上屢次進行配置都沒法正常使用。服務器
所以,只能放棄編譯安裝的方式,而採起rpm包的方式從新進行安裝。dom
在linux終端下,使用cat /etc/issue
命令查詢當前系統的發行版本,查詢到阿里雲所安裝的linux版本爲CentOS release 6.6 (Final)。ssh
進入gitlab官方網站,選擇對應的操做系統——CentOS 6 (and RedHat/Oracle/Scientific Linux 6),按照官方的提示進行安裝:
安裝配置必要的依賴
在Centos 6 和 7 中,如下的命令將會打開HTTP和SSH在系統防火牆中的可訪問權限。
sudo yum install openssh-server sudo yum install postfix sudo yum install cronie sudo service postfix start sudo chkconfig postfix on sudo lokkit -s http -s ssh
下載Omnibus package包並安裝
curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm sudo rpm -i gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm
Note:因爲amazonaws的服務器被牆,下載這個包時可能須要×××下載。
配置並啓動GitLab
打開`/etc/gitlab/gitlab.rb`,將`external_url = 'http://git.example.com'`修改成本身的IP地址:`http://xxx.xx.xxx.xx`,,而後執行下面的命令,對GitLab進行編譯。
sudo gitlab-ctl reconfigure
登陸GitLab
Username: root Password: 5iveL!fe
GitLab中使用postfix
進行郵件發送。所以,能夠卸載系統中自帶的sendmail
。
使用yum list installed
查看系統中是否存在sendmail
,若存在,則使用yum remove sendmail
指令進行卸載。
測試系統是否能夠正常發送郵件。
echo "Test mail from postfix" | mail -s "Test Postfix" xxx@xxx.com
注:上面的xxx@xxx.com爲你但願收到郵件的郵箱地址。
當郵箱收到系統發送來的郵件時,將系統的地址複製下來,如:root@iZ23syflhhzZ.localdomain
,打開/etc/gitlab/gitlab.rb
,將
# gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
修改成
gitlab_rails['gitlab_email_from'] = 'root@iZ23syflhhzZ.localdomain'
保存後,執行sudo gitlab-ctl reconfigure
從新編譯GitLab。若是郵箱的過濾功能較強,請添加系統的發件地址到郵箱的白名單中,防止郵件被過濾。
Note:系統中郵件發送的日誌可經過`tail /var/log/maillog`命令進行查看。
在瀏覽器中訪問GitLab出現502
錯誤
緣由:內存不足。
解決辦法:檢查系統的虛擬內存是否隨機啓動了,若是系統無虛擬內存,則增長虛擬內存,再從新啓動系統。
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服務便可。
#Listen 80 Listen 4040
8080
端口衝突
緣由:因爲unicorn默認使用的是8080
端口。
解決辦法:打開/etc/gitlab/gitlab.rb
,打開# unicorn['port'] = 8080
的註釋,將8080
修改成9090
,保存後運行sudo gitlab-ctl reconfigure
便可。
STMP設置
配置無效,暫時不知道緣由。
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