在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一直无法正常工作,为此走了一大圈弯路。最后在官方文档上才找到问题所在。下面是官网上的一些对版本要求的描述。
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
启动如果出错如下:
!!! 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
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配置
注意:这里需要在环境变量PATH中添加svn所在的目录
再重启服务器,配置SCM
新建项目test,配置版本库 SCM-->选择Subversion
URL-->填写svn://192.168.8.32/test(根据自己svn配置自行修改)
登录名-->test(根据自己svn配置自行修改)
密码-->test(根据自己svn配置自行修改)
保存即可
相关文章
详解nginx同一端口监听多个域名和同时监听http与https
这篇文章主要介绍了详解nginx同一端口监听多个域名和同时监听http与https的相关资料,需要的朋友可以参考下...2017-07-06- 这篇文章主要介绍了Nginx根据不同浏览器语言配置页面跳转的方法,包括一个简体繁体的基本判断方法及实际根据中英文跳转的例子,需要的朋友可以参考下...2016-05-22
- 周一今天给大家分享shell脚本多实例部署nginx的详细教程,文章通过实例代码脚本给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-10-26
- 这篇文章主要介绍了Nginx中配置过滤爬虫的User-Agent的简单方法,文中罗列了一些常用搜索引擎的爬虫名称以免造成不必要的过滤,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了Nginx访问日志及错误日志参数说明,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-14
- 这篇文章主要介绍了nginx配置引发的403问题解决办法的相关资料,需要的朋友可以参考下...2017-07-06
- 这篇文章主要介绍了使用nginx方式实现http转换为https的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-06
Nginx反向代理proxy_cache_path directive is not allowed错误解决方法
这篇文章主要介绍了Nginx反向代理proxy_cache_path directive is not allowed错误解决方法,需要的朋友可以参考下...2016-01-27nginx+apache+mysql+php+memcached+squid搭建集群web环境
当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试。...2016-01-27- Nginx日志主要分为两种:访问日志和错误日志。访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义。下面这篇文章主要给大家介绍了Nginx自定义访问日志的配置方式,需要的朋友可以参考学习,下面来一起看看吧。...2017-07-06
- 这篇文章主要介绍了nginx使用IPV6的相关配置项介绍,首先查看编译参数是否编译了IPV6模块,然后介绍了监听IPV6的配置语法,需要的朋友可以参考下...2016-01-27
解决使用了nginx获取IP地址都是127.0.0.1 的问题
这篇文章主要介绍了解决使用了nginx获取IP地址都是127.0.0.1 的问题,获取i工具的完整代码文中给大家提到,具体实例代码跟随小编一起看看吧...2021-09-18- 本篇文章主要介绍了nginx修改上传文件大小限制的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。 ...2017-01-22
- 这篇文章主要介绍了Debian7编译安装nginx简明教程,本文直接给出操作命令和步骤,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了隐藏Nginx或Apache以及PHP的版本号的方法,主要用来防止针对性的漏洞攻击,需要的朋友可以参考下...2016-01-05
- 这篇文章主要介绍了Nginx DNS resolver配置实例,本文讲解在proxy_pass 和 upstream server 通信的时候需要手动指定 resolver,本文就给出了配置实例,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了关于Nginx中if语句的判断条件与多条件判断的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-07-06
详解Nginx服务器中配置Sysguard模块预防高负载的方案
这篇文章主要介绍了详解Nginx服务器中配置Sysguard模块预防高负载的方案,该模块由阿里巴巴的团队开发,能够设置负载阀值,比较强大,需要的朋友可以参考下...2016-02-02- 本篇文章主要介绍了nginx实现ssl反向代理实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-01-22