• 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

    From http://www.cnblogs.com/caosiyang/
  • 相关阅读:
    margin和pading的百分比值
    Vue中的computed和watch
    JS的自身属性和继承属性
    JS对象的可枚举属性和不可枚举属性
    Dart语言学习
    Practice_Test
    Lesson2 basic python_20200920
    Python 基础语法L1
    小男孩和狗的故事
    智者的故事
  • 原文地址:https://www.cnblogs.com/caosiyang/p/3017636.html
Copyright © 2020-2023  润新知