在Linux系统中将Redmine和SVN整合入Nginx的方法

Redmine:是一个基于web的项目管理软件,用Ruby开发的。是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和DotProject的功能大致相当外,还有不少自己独特的功能,例如提供wiki、新闻台、时间跟踪、feed聚合、导出pdf等等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN、CVS、TD等等。配置功能强大而且方便,自定义属性和更新通知也很实用。下面我们来部署redmine+svn项目管理系统(需要严格的按照官方的安装文档安装对应的ruby包)

环境:centos-5.5 redmine-1.2.0 subversion-1.6.17

一、下载所需要软件包

  wget ftp://ftp.ruby-lang.org//pub/ruby/1.8/ruby-1.8.7.tar.gz
  wget http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz
  wget http://rubyforge.org/frs/download.php/74944/redmine-1.2.0.tar.gz
  wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
  wget http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz

二、先配置LNMP环境

参考:CentOS 5.5下安装mysql5.1.57+php5.2.17(FastCGI)+nginx1.0.1高性能Web服务器

三、redmine安装(对各软件包版本要求非常严格,必须对应相应版本,否则会出现不可预知的错误)

1、ruby安装:

  tar zxvf ruby-1.8.7.tar.gz
  cd ruby-1.8.7
  ./configure --prefix=/usr/local/ruby
  make && make install
  cd ..

修改~/.bash_profile,将ruby目录加入root环境变量
    或者

echo "export PATH=$PATH:/usr/local/ruby/bin/" >> /etc/profile

2、rubygems 安装

安装rubygems ,注意一定要是1.7.0以下的版本,不然无法正常启动使用redmine。我就是因为看了一个他人写得中文文档,安装了1.7.0版本,所以redmine一直无法正常工作,为此走了一大圈弯路。最后在官方文档上才找到问题所在。下面是官网上的一些对版本要求的描述。
 

代码如下:

Ruby 1.9 is not supported yet. You have to use Ruby 1.8.x as stated above.
RubyGems 1.3.7 or higher is required with following limitations :
Rails 2.3.5 will fail with RubyGems 1.5.0 or later, stick to previous versions of RubyGems !
Rails 2.3.11 will fail with RubyGems 1.7.0 or later, stick to previous versions of RubyGems !
Rake 0.8.7 is required (rake 0.9.x is not supported by Rails yet)
Rack 1.1.x is required, 1.1.0 has a bug with quotes (#8416). Database migration would fail with other version.
Mongrel 1.1.5 needs a patch attached to #7688 to work fine with Rails 2.3.11. In case of upgrade, another issue may appear for some time after migration (#7857).
I18n 0.4.2 is required for Redmine >= 1.0.5

  tar zxvf rubygems-1.6.2.tgz
  cd rubygems-1.6.2
  ruby setup.rb
  cd ..

3、安装rails rack i18n mysql passenger

  gem install rails -v=2.3.11
  gem install rack -v=1.1.1
  gem install i18n -v=0.4.2
  gem install mysql --no-rdoc --no-ri -- --with-mysql-dir=/data/soft/mysql  #我的mysql是编译安装在/data/soft/mysql目录下的
  gem install passenger
  gem install mongrel mongrel_cluster

四、安装配置redmine

1、解压redmine

  tar zxvf redmine-1.2.0.tar.gz
  mv redmine-1.2.0 /data/www/redmine
  chown -R www. /data/www/redmine

2、建立数据库

  /data/soft/mysql/bin/mysql -uroot -p
  mysql> createdatabase redmine characterset utf8;
  mysql> grantallon redmine.* to 'redmine'@'localhost' identified by 'redmine';
  mysql> flush privileges;

3、修改redmine mysql数据库配置.

  cd /data/www/redmine/config
  cp database.yml.example database.yml
  vi database.yml
  production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

注意:冒号后面有一空格。。。

4、创建运行数据库:

生成会话存储密钥:

  cd /data/www/redmine
  rake generate_session_store

然后开始创建数据库表结构,在redmine的根目录下运行:

  RAILS_ENV=production rake db:migrate

读取默认配置数据,当遇到选择语言(Select language)时,选择zh:

  RAILS_ENV=production rake redmine:load_default_data

5、配置mongrel_cluster

  cd /data/www/redmine
  mongrel_rails cluster::configure -e production -p 8000 -a 127.0.0.1 -N 3

6、启用mongrel_cluster

  cd /data/www/redmine
  mongrel_rails cluster::start

启动如果出错如下:

代码如下:

starting port 8000
    !!! Path to pid file not valid: tmp/pids/mongrel.8000.pid
    mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.
    starting port 8001
    !!! Path to pid file not valid: tmp/pids/mongrel.8001.pid
    mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.
    starting port 8002
    !!! Path to pid file not valid: tmp/pids/mongrel.8002.pid
    mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.

创建/data/www/redmine/tmp/pids目录即可

  mkdir -p /data/www/redmine/tmp/pids

启动成功如下:

  [root@CentOS5 redmine]# mongrel_rails cluster::start
  starting port 8000
  starting port 8001
  starting port 8002

7、配置nginx

代码如下:

vi /data/soft/nginx/conf/nginx.conf
    upstream mongrel
    {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
    }
    server
    {
    listen 80;
    server_name 192.168.8.32;
    root   /data/www/redmine;
    index   index.html index.htm;
    location /
    {
    proxy_pass http://mongrel;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

五: 访问redmine测试:

http://192.168.8.32

直接用ruby内置webrick也可启动redmine

  /usr/local/ruby/bin/ruby /data/www/redmine/script/server webrick -e production &

启动成功如下:

  [root@CentOS5 redmine]# /usr/local/ruby/bin/ruby /data/www/redmine/script/server webrick -e production &
  [1] 3526
  [root@CentOS5 redmine]# => Booting WEBrick
  => Rails 2.3.11 application starting on http://0.0.0.0:3000
  => Call with -d to detach
  => Ctrl-C to shutdown server
  [2011-06-2409:30:47] INFO WEBrick 1.3.1
  [2011-06-2409:30:47] INFO ruby 1.8.7 (2008-05-31) [i686-linux]
  [2011-06-2409:30:47] INFO WEBrick::HTTPServer#start: pid=3526 port=3000

访问redmine测试: http://192.168.8.32:3000

六、配置SVN服务器
七、在redmine中配置svn
进入Redmine目录下Config,有文件“configuration.yml.example”,复制该文件重命名“configuration.yml”,修改其中的SVN配置

代码如下:

scm_subversion_command: svn

注意:这里需要在环境变量PATH中添加svn所在的目录
再重启服务器,配置SCM
新建项目test,配置版本库 SCM-->选择Subversion
URL-->填写svn://192.168.8.32/test(根据自己svn配置自行修改)
登录名-->test(根据自己svn配置自行修改)
密码-->test(根据自己svn配置自行修改)
保存即可

(0)

相关推荐

  • 删除SVN三种方法delSvn(windows+linux)

    一.在linux下 删除这些目录是很简单的,命令如下 find . -type d -name ".svn"|xargs rm -rf 或者 find . -type d -iname ".svn" -exec rm -rf {} \; 二.在windows下用以下法子: 1.在项目平级的目录,执行dos命令: xcopy project_dir project_dir_1 /s /i 2.或者在项目根目录执行以下dos命令 for /r . %%a in (.)

  • 详解Linux上svn命令行批量操作

    详解Linux上svn命令行批量操作 虽然说git很好,大多数时候我也是使用git,但是有时候因为一些原因,不得不使用svn,而在linux上使用svn是没有像windows上的tortoisesvn的软件的(网上有说有类似的,但是折腾了很久仍然没有成功),所以直接来命令行吧. 我们直接安装svn就好,然后文件修改之后使用命令 svn status 查看文件的跟踪信息,这里会使用一些代号,对应的大概是 " " 无修改 "A" 新增 "C" 冲突

  • Linux下SVN服务器自动更新文件到Web目录的方法

    说明: 服务器操作系统:CentOS 服务器IP:192.168.21.134 SVN安装路径:/usr/local/svn SVN项目路径:/home/svn SVN登录账号:osyunwei SVN登录密码:123456 Web站点根目录:/home/web 实现目的: 当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录 具体操作: 一.使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录 cd /home/svn/h

  • Linux svn的搭建与使用(图文详解)

    Linunx svn的搭建与使用........纯手打的..具体入下: 一.安装前的准备 1.1 配置yum 库 1)加载光盘 2)进入/etc/yum.repo.d目录 3)复制"rhel-debuginfo.repo"为"my.repo" 4)修改my.repo文件 5)修改红框标注部分 修改完毕保存退出:wq 1.2 安装telnet 远程连接工具 1)用yum命令安装远程工具. 2)安装成功. 3)用vi命令编辑位于/etc/xinetd.d下的telnet

  • Linux下源码编译安装配置SVN服务器的步骤分享

    说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

  • linux(centos)下SVN服务器如何搭建

    虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn的使用方法,如下图. 3.创建svn版本库目录 复制代码 代码如下: mkdir -

  • linux下安装配置svn独立服务器的步骤分享

    file:/// 直接版本库访问(本地磁盘). http:// 通过配置Subversion的Apache服务器的WebDAV协议. https:// 与http://相似,但是包括SSL加密. svn:// 通过svnserve服务自定义的协议. svn+ssh:// 与svn://相似,但通过SSH封装 svn存储版本数据也有2种方式:BDB和FSFS.因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点.1. svn服务器安装操作系统: Redhat Linux A

  • 在Linux系统中将Redmine和SVN整合入Nginx的方法

    Redmine:是一个基于web的项目管理软件,用Ruby开发的.是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和DotProject的功能大致相当外,还有不少自己独特的功能,例如提供wiki.新闻台.时间跟踪.feed聚合.导出pdf等等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN.CVS.TD等等.配置功能强大而且方便,自定义属性和更新通知也很实用.下面我们来部署redmine+svn项目管理

  • linux系统中修改tomcat默认输入日志路径的方法

    1.修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,先进行备份. 对本地的catalina.sh进行修改,这里是以将日志目录修改为/data/logs为例,即将$CATALINA_BASE/logs/catalina.out改为CATALINA_OUT=/data/logs. 2.修改logging.properties 进入tomcat安装目录/conf/,找到logging.properties,先进行备份. 对本地的logging.properti

  • 查看远程 Linux 系统中某个端口是否开启的三种方法

    这是一个很重要的话题,不仅对 Linux 管理员而言,对于我们大家而言也非常有帮助.我的意思是说对于工作在 IT 基础设施行业的用户来说,了解这个话题也是非常有用的.他们需要在执行下一步操作前,检查 Linux 服务器上某个端口是否开启. 假如这个端口没有被开启,则他们会直接找 Linux 管理员去开启它.如果这个端口已经开启了,则我们需要和应用团队来商量下一步要做的事. 在本篇文章中,我们将向你展示如何检查某个端口是否开启的 3 种方法. 这个目标可以使用下面的 Linux 命令来达成: nc

  • jmeter在linux系统下运行及本地内存调优的方法详解

    1.在linux系统下安装跨系统传输文件工具 root用户下 根目录输入 yum -y install lrzsz 2.把apache-jmeter-4.0zip包 用rz命令上传到linux系统的根目录下 解压 3.配置jmeter环境变量 vim /etc/profile 添加 export PATH=/apache-jmeter-4.0/bin/:$PATH 注意路径 4.使用 rz命令上传jdk1.8 linux 64位版本 解压到 usr/local 目录下 下载jdk安装包 下载地址

  • linux系统虚拟主机开启支持Swoole Loader扩展的方法

    特别说明:只是安装支持Swoole扩展,主机并没有安装服务端.目前支持版本php5.4-php7.2. 1.登陆主机控制面板,找到[远程文件下载]这个功能. 2.远程下载文件填写http://download.myhostadmin.net/vps/SwooleLoader_linux.zip 下载保存的路径填写/others/ 或者从我们下载 3.点击控制面板[php版本],选择php5.3或以上版本,示例选择的是php5.5版本(注意:php5.2版本不能编辑php.ini,所以要选择以上版

  • MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?,类似MySQL在ps命令下隐藏密码. 假设我这里系统里两个用户,一个是root ,一个是dabu .测试系统为centos 6.5在按照下面的步骤做: [root@dabu.info ~]#su dabu #切换到dabu这个账号 [dabu@dabu.info ~]$cd ~ #切换到dabu的h

  • 在Linux系统下上传项目到码云的方法

    在码云上新建项目test1 输入以下命令,得到公匙 将公匙复制,粘贴到 在linux系统下移动到要提交的文件目录下. 输入命令:git clone git@gitee.com:wangdeai/test1.git git clone + ssh链接 ssh链接获取方式如下: 将要上传的文件复制到项目下: cp -r fresh test1/ 进入test1目录,查看状态: git status 接下来要建立跟踪 git add fresh/ 查看状态: git status 写日志:(给文件做修

  • Linux系统中创建SSH服务器别名的两种方法

    前言 如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间.你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名.主机名.SSH 端口号和 IP 地址等.此外,它避免了在 SSH 到 Linux 服务器时重复输入相同的用户名.主机名.IP 地址.端口号. 在 Linux 中创建 SSH 别名 在我知道这个技巧之前,我通常使用以下任意一种方式通过 SSH 连接到远程系统. 使用 IP 地址: $ ssh 192.168.225.22 或使用

  • VMware中安装Linux系统(Redhat8)及虚拟机的网络配置方法

    1.安装vmware 1.1下载VMware workstations: 选择15.x版本,下载地址可在百度搜索,或者直接在软件管家下载即可 1.2安装vmware 跟着安装向导走即可,只需在安装过程中输入注册许可证密钥 任意输入以下密钥,可完成注册: CZ7WU-2MF01-488FZ-L6Z5T-PYAU4 CY1TH-0XZ5M-M85NY-MNXGG-ZZHU8 ZZ3EK-62W1P-H803P-4WN7T-Q7HT2 CY75U-ATW0P-H8EYZ-WDZE9-N68D6 GY7

  • linux系统下用.sh文件执行python命令的方法

    目录 标准版 进阶版 1 for循环 2 嵌套for循环 3 定义变量名 4 写if函数 总结 标准版 假设,在终端要执行的命令是: python main.py 首先在执行目录下创建test.sh(文件名自定义)文件 并在test.sh文件中写入: python main.py 保存. ======================== 经实践 下面这一步可省 ================================= 在终端执行: chmod a+x test.sh 以上命令使test

随机推荐