Gitorious安装与配置
大家都知道Github,但知道Gitorious相對要少,Gitorious同樣是一個基于Git的項目托管平臺,功能上和Github基本一致,地址是http://www.gitorious.org。
它使用Ruby on Rails開發,而且是開源的,適合在團隊內部搭建項目托管平臺。
Gitorious安裝與配置相對繁瑣,會碰到各種問題,折騰了一段時間,深有體會,
所以整理了安裝配置步驟和常見問題,一來是做個總結,好記性不如爛筆頭,二來是希望給同樣處于困惑中的朋友帶來些許幫助。
下面以Redhat為例,進行說明,我也嘗試過Ubuntu下的配置,基本上差不多。
提前展示一下我的目錄結構,便于后續說明。
/home/git
? ? ? ? ? ?| -- .ssh
? ? ? ? ? ?\ -- gitorious
? ? ? ? ? ? ? ? ? ? ?| -- data
? ? ? ? ? ? ? ? ? ? ?| ? ? ? ?| -- repositories
? ? ? ? ? ? ? ? ? ? ?| ? ? ? ?| -- tarballs
? ? ? ? ? ? ? ? ? ? ?| ? ? ? ?\ -- tarballs-work
? ? ? ? ? ? ? ? ? ? ?\ -- source
注:以上均是目錄。
安裝必要的package,yum -y install git httpd httpd-devel mod_xsendfile mysql mysql-devel mysql-server memcached sphinx ImageMagick aspell apg expect
建立一個新的系統用戶"git",/home/git下手動創建.ssh和gitorious及其子目錄如上圖所示。
在.ssh下新建文件authorized_keys和sshd_config,文件訪問權限設置是600。
編輯sshd_config,echo "AllowGroups git" > sshd_config,目的是讓其他主機可以通過git系統賬戶ssh到本機。
安裝Ruby和RubyGems,需要注意的是RubyGems版本是1.4.2,命令是gem install update -v 1.4.2 && update_rubygems
安裝bundler和passenger,后面會用到,gem install --no-ri --no-rdoc bundler passenger
passenger包安裝完成后,根據你的web服務器生成對應的模塊,比如apache,執行命令passenger-install-apache2-module
使用git檢出Gitorious項目至/home/gitorious/source目錄下,git clone??git://gitorious.org/gitorious/mainline.git /home/gitorious/source
在source/tmp目錄下建立pids目錄,后面會用到;source/script/gitirious拷貝至/usr/local/bin
在source目錄下執行bundle install,根據Gemfile安裝此Rails項目所需的package。
*******重要,執行命令:chown -R git:git /home/git,將git目錄(包括子目錄及文件)的所有者移交給git系統賬戶
?apache配置,修改配置文件/etc/httpd/conf/httpd.conf,附加下列幾行,相關路徑根據你的系統環境修改即可。
########## gitorious server config ##########
LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.19
PassengerRuby /usr/bin/ruby
XSendFile on
XSendFilePath /home/git/gitorious/data/tarballs
Listen 8000
<VirtualHost *:8000>
? ? ServerName your.host.domain
? ? DocumentRoot /home/git/gitorious/source/public
? ? <Directory /home/git/gitorious/source/public>
? ? ? ? # This relaxes Apache security settings.
? ? ? ? AllowOverride all
? ? ? ? # MultiViews must be turned off.
? ? ? ? Options -MultiViews
? ? </Directory>
</VirtualHost>
在source/config目錄下,利用模板配置文件創建3個配置文件 broker.yml ?database.yml ?gitorious.yml
broker.yml不需要編輯,database.yml注意數據庫的類型、用戶名、密碼,
gitorious.yml需要配置gitorious_host、gitorious_client_port、repository_base_path、repository_base_path、archive_work_dir、
use_ssl: false、is_gitorious_dot_org: false
執行apg -m 64命令,使用其中任意一行,替換cookie_secret: ssssht中的ssssht
創建數據庫和數據表,
理論上在source目錄下執行bundle exec rake db:create RAILS_ENV=production命令能夠創建數據庫,但是我沒有成功,所以手動建庫gitorious_production
然后創建表,執行命令bundle exec rake db:setup RAILS_ENV=production
?
修改source/doc/templates/centos目錄下服務腳本 git-daemon git-poller stomp
需要注意配置正確上述腳本的變量?RUBY_HOME、GITORIOUS_HOME、GEMS_HOME?
將上述腳本拷貝至/etc/init.d/目錄下
啟動服務
service stomp start
service git-daemon start
service git-poller start
service memcached start
service mysqld start
service httpd start
?
?
可能遇到的問題:
1. 使用瀏覽器訪問Gitorious服務報#13權限錯誤
確保/home/git目錄有可執行權限,因為要執行Ruby腳本
2. login失敗
提供gitorious服務的主機名只有IP,沒有域名,在配置中使用的主機名均是IP,導致client訪問時無法創建session cookie,
需要修改源碼,config/initializers/session_store.rb
注釋掉此行 :domain => domain,?
3. 利用ssh協議git clone失敗
確保 /home/git/.ssh目錄下的文件的訪問權限是600
?
?
?
?
轉載于:https://www.cnblogs.com/caosiyang/archive/2013/04/13/3017636.html
總結
以上是生活随笔為你收集整理的Gitorious安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Objective-C 文件夹操作
- 下一篇: [置顶] Android数