1 關于gitlab7
無論如何gitlab是個好東西,但是極難安裝和配置。bitnami(https://bitnami.com/)的一鍵安裝包雖然可以解決大問題,但是仍有很多人無法配置gitlab+nginx和email發送等等問題。今天特意完整地再梳理一次。對各位讀者的問題不再逐一解答。
首先,bitmami的一些版本有問題,無法成功在rhel6.4上成功安裝。因此,我找到了一個較新的可以使用的版本7.8.1(響應式頁面):
ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run
(我的ftp不會一直提供,請想要的盡快下載)
那么,最后安裝好的效果就是(點擊可訪問,第一次訪問可能會比較慢,要求較新版本的Firefox或Chrome,IE未測試):
http://pepstack.com/gitlab
2 需求描述
好了,先把需求陳述一下,如果讀者的需求與我不同,我無能為力。假設我有一臺web主機(我這里是pepstack.com),我在主機后面創建虛擬機(vm-gitlab),在vm-gitlab上安裝gitlab7,然后通過配置web主機上的ngnix,可以通過下面的url訪問到我的gitlab:
http://pepstack.com/gitlab
創建虛擬機vm-gitlab的過程不細說了,如果你使用實體機也是一樣的。vm-gitlab安裝的是rhel6.4版本。確保在vm內部可以訪問外部主機和internet(如ping www.baidu.com)。
3 安裝gitlab
ssh 到vm-gitlab:
# ssh root@vm-gitlab
下載一鍵式安裝包:
# wget ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run
安裝:
# chmod a+x bitnami-gitlab-7.8.1-0-linux-x64-installer.run
# ./bitnami-gitlab-7.8.1-0-linux-x64-installer.run
安裝過程中會提示:
----------------------------------------------------------------------------Welcome to the Bitnami Gitlab Stack Setup Wizard.
----------------------------------------------------------------------------Select the components you want to install; clear the components you do not wantto install. Click Next when you are ready to continue.
GitLab : Y (Cannot be edited)
GitLab CI [Y/n] :Y
Is the selection above correct? [Y/n]: Y
----------------------------------------------------------------------------Installation folder
Please, choose a folder to install Bitnami Gitlab Stack
Select a folder [/opt/gitlab-7.8.1-0]:
----------------------------------------------------------------------------Create Admin account
Bitnami Gitlab Stack admin user creation
Email Address [[email protected]]: [email protected]
Login [user]: master (此處是你登錄gitlab用的用戶名)
PassWord : (輸入你登錄gitlab時要用的密碼)Please confirm your password : (輸入你登錄gitlab時要用的密碼)----------------------------------------------------------------------------Hostname that will be used to create internal URLs. If this value is incorrect,you may be unable to access your Gitlab installation from other computers. It isadvisable to use a Domain instead of an ip address for compatibility withdifferent browsers.
Domain [127.0.0.1]:
Do you want to configure mail support? [y/N]: Y
----------------------------------------------------------------------------Configure SMTP Settings
This is required so your application can send notifications via email.
Default email PRovider:
[1] Gmail[2] CustomPlease choose an option [1] : 2
----------------------------------------------------------------------------Configure SMTP Settings
This data is stored in the application configuration files and may be visible toothers. For this reason, it is recommended that you do not use your personalaccount credentials.
Username []: [email protected]
Password : (輸入你的QQ密碼)Re-enter : (輸入你的QQ密碼)SMTP Host []: smtp.qq.com
SMTP Port []: 25
Secure connection
[1] None[2] SSL[3] TLSPlease choose an option [3] :
----------------------------------------------------------------------------Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.
Do you want to continue? [Y/n]: Y
----------------------------------------------------------------------------Please wait while Setup installs Bitnami Gitlab Stack on your computer.
Installing 0% ______________ 50% ______________ 100% #########################################
----------------------------------------------------------------------------Setup has finished installing Bitnami Gitlab Stack on your computer.
Info: To access the Bitnami Gitlab Stack, go tohttp://127.0.0.1:80 from your browser.Press [Enter] to continue:
4 配置gitlab配置尤其要小心。下面幾個配置文件要用到:
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/environments/production.rb/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/gitlab.yml/opt/gitlab-7.8.1-0/apps/gitlab/conf/httpd-app.conf/opt/gitlab-7.8.1-0/apps/gitlab/gitlab-shell/config.yml
下面逐一說明:
4.1 production.rb
...... # config.action_mailer.delivery_method = :sendmail # Defaults to: # # config.action_mailer.sendmail_settings = { # # location: '/usr/sbin/sendmail', # # arguments: '-i -t' # # } config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.qq.com", :port => "25", :domain => "qq.com", :authentication => :plain, :user_name => "[email protected]", :password => "********", :enable_starttls_auto => true }
config.eager_load = true config.assets.js_compressor = :uglifier
config.allow_concurrency = false......
4.2 smtp_settings.rb# cp smtp_settings.rb.sample smtp_settings.rb
# To enable smtp email delivery for your GitLab instance do the following:# 1. Rename smtp_settings.rb.sample to smtp_settings.rb# 2. Edit settings inside this file# 3. Restart GitLab instance#if Rails.env.production? Gitlab::Application.config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = { address: "smtp.qq.com", port: 25, user_name: "[email protected]", password: "********", domain: "qq.com", authentication: :login, enable_starttls_auto: true, openssl_verify_mode: 'none' }end
4.3 gitlab.yml
# # # # # # # # # # # # # # # # # ## GitLab application config file ## # # # # # # # # # # # # # # # # ### How to use:# 1. Copy file as gitlab.yml# 2. Update gitlab -> host with your fully qualified domain name# 3. Update gitlab -> email_from# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git# 5. Review this configuration file for other settings you may want to adjust
production: &base # # 1. GitLab app settings # ==========================
## GitLab settings gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: pepstack.com port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one # (you'd obviously need to replace ssh.host_example.com with your own host). # Otherwise, ssh host will be set to the `host:` value above # ssh_host: ssh.host_example.com
# WARNING: See config/application.rb under "Relative url support" for the list of # other files that need to be changed for relative url support relative_url_root: /gitlab
# Uncomment and customize if you can't use the default user to run GitLab (default: 'git') # user: git
## Date & Time settings # Uncomment and customize if you want to change the default time zone of GitLab application. # To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production` # time_zone: 'UTC'
## Email settings # Uncomment and set to false if you need to disable email sending from GitLab (default: true) # email_enabled: true # Email address used in the "From" field in mails sent by GitLab email_from: [email protected] support_email: [email protected]
# Email server smtp settings are in config/initializers/smtp_settings.rb.sample
# default_can_create_group: false # default: true # username_changing_enabled: false # default: true - User can change her username/namespace ## Default theme ## BASIC = 1 ## MARS = 2 ## MODERN = 3 ## GRAY = 4 ## COLOR = 5 # default_theme: 2 # default: 2......
上面文件改動之處在于:
host: pepstack.comrelative_url_root: /gitlabemail_from: [email protected]_email: [email protected]
下面的配置是因為要把gitlab置于nginx后面使用:
4.4 httpd-app.conf
<Directory "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/public"> Options -MultiViews AllowOverride All <IfVersion < 2.3 > Order allow,deny Allow from all </IfVersion> <IfVersion >= 2.3> Require all granted </IfVersion>
SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"
PassengerEnabled on PassengerAppRoot "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/" <IfModule pagespeed_module> ModPagespeedDisallow "*" </IfModule> PassengerUser git PassengerGroup git SetEnv MAGIC "/opt/gitlab-7.8.1-0/ruby/lib/ruby/gems/2.0.0/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/src/file-5.08/magic/magic.mgc" SetEnv PATH "/opt/gitlab-7.8.1-0/python/bin:${PATH}"
</Directory>PassengerPreStart http://127.0.0.1:80/gitlab
不同之處在于:
SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"PassengerPreStart http://127.0.0.1:80/gitlab
4.5 config.yml
...gitlab_url: http://pepstack.com:80/gitlab/...
這樣我們訪問gitlab就是按照下面的地址:
http://pepstack.com/gitlab/
5 主機nginx配置
上面的配置都是在vm-gitlab上進行的,注意打開80:http端口。下面要給主機nginx增加配置,配置文件:
/etc/nginx/conf.d/redmine.conf
內容如下(我同時還提供了redmine服務):
# 指向內網redmine的web服務(192.168.122.21:80)#upstream redmine { server 192.168.122.21:80;}
upstream gitlab { server 192.168.122.20:80;}
server { server_name pepstack.com;
# /var/log/nginx 本地目錄必須存在 access_log /var/log/nginx/redmine_access.log; error_log /var/log/nginx/redmine_error.log;
location /redmine { try_files $uri @red; # @red 名字是任意的 }
location /gitlab { try_files $uri @git; }
location @red { proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off;
proxy_pass http://redmine; # 指向 upstream redmine }
location @git { proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off;
proxy_pass http://gitlab; # 指向 upstream gitlab }}
即注釋掉:include /etc/nginx/sites-enabled/*;
6 啟動服務
大功告成,在主機啟動nginx:
$ sudo nginx -s reload
在vm-gitlab啟動gitlab:
# cd /opt/gitlab-7.8.1-0/
# ./ctlscript.sh restart
CentOS源碼安裝GitLab漢化版 http://www.linuxidc.com/Linux/2015-10/124648.htm
在 Ubuntu 12.04 上安裝 GitLab http://www.linuxidc.com/Linux/2012-12/75249.htm
GitLab 5.3 升級注意事項 http://www.linuxidc.com/Linux/2013-06/86473.htm
在 CentOS 上部署 GitLab (自托管的Git項目倉庫) http://www.linuxidc.com/Linux/2013-06/85754.htm
在RHEL6/CentOS6/ScientificLinux6上安裝GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm
CentOS 6.5安裝GitLab教程及相關問題解決 http://www.linuxidc.com/Linux/2014-05/101526.htm
GitLab 的詳細介紹:請點這里GitLab 的下載地址:請點這里
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2015-11/124919.htm
新聞熱點
疑難解答