(在搭建redmine前最好也阅读下redmine/doc下面的INSTALL文档)
一、安装ruby (这里采用的是源码包的安装)
1. 首先下载ruby-1.8.7-p330(据说此版本比较稳定)
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p370.tar.gz
2.解压源码包
#tar xzvf ruby-1.8.7.tar.gz (解压中)
3. 设置ruby安装路径
#cd ruby-1.8.7
#./configure --prefix=/usr/local/ruby (注意等号两边不能有空格)
#make && make install (编译和安装)
4.设置环境变量 (如果没有这一步ruby的命令将不被识别)
#vi /etc/profile
export PATH=/usr/local/ruby/bin:$PATH
#source /etc/profile (使环境变量立即生效)
5.检查是否安装成功
#ruby –v (检查是否安装成功,成功的话会提示版本号)
二、安装rubygems
1. 下载rubygems-1.3.5
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.5.tgz
2. 解压
#tar zxvf rubygems-1.3.5
3. 安装
#cd rubygems-1.3.5
#ruby setup.rb
4. 检查
#gem -v (查看版本)
三、安装rails
直接用gem在线安装
#gem install rails -v=2.3.5
四、安装i18n
#gem install i18n -v=0.4.2
五、安装mysql驱动
#gem install ruby-mysql
关于mysql的安装有常用的两种方法:
1. 用mysql源码包安装,比较复杂,我尝试过感觉比较容易出错。
2. 用apt-get 直接在线安装
在这里我用的是这种方法,感觉方便快捷,不易出错,下面是要进行的操作:
首先下载安装mysql
#apt-get install mysql-server
安装完成以后下面就是需要进行的mysql操作:
1. 进入mysql
#mysql –u root –p
输入password
2. 创建一个redmine的数据库
Create database redmine character set utf8;
3. 给redmine数据库创建一个用户并设置密码
create user ‘redmine’@’localhost’ identified by ‘123456’;
grant all privileges on redmine.* to ‘redmine’@’localhost’
4. 退出mysql
exit;
1. 下载redmine(这里使用的redmine1.1.0)
#wget http://files.rubyforge.vm.bytemark.co.uk/redmine/redmine-1.1.0.tar.gz
2. 解压redmine
#tar zxvf redmine-1.1.0.tar.gz
3. 将解压的redmine移到/usr/local/下
#mv redmine-1.1.0 /usr/local/redmine
4. 进入 redmine的config下
#cd /usr/local/redmine/config
#cp database.yml.example database.yml
5. 修改 database.yml里面production的配置
#vi database.yml
2 3 4 5 6 |
production: adapter: mysql database: redmine(这就是我们在mysql里面创建的redmine数据库) host: localhost username: redmine (这是我们为redmine数据库创建的用户) password: redmine(这是用户访问redmine数据库需要的密码) socket: /var/run/mysqld/mysqld.sock |
关于最后一个socket在原本的database里面是没有得,可是由于我们是自动安装的mysql,所以呢系统在自动安装mysql的时候将它的启动文件也就是mysqld.sock放在了/var/run/mysqld目录下。可是redmine访问数据库的时候默认的是通过/tmp目录下的mysql.sock连接数据库的,所以如果不添加这个socket的话,就会报错:说找不到/tmp/mysql.sock.
其实呢还有一种方法也可以解决这个问题而不需要添加这个socket,方法如下:
ln –s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
这是为mysqld 创建的一个软连接。不过这种方法不是很好,每次重启过linux系统后就没有了还需要重新设置。
6. 生成存储密钥(下面的操作都必须在 /usr/local/redmine下完成)
# rake generate_session_store 或者 rake config/initializers/session_store.rb
报错:
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/usr/local/redmine/Rakefile:8
(See full trace by running task with --trace)
是因为版本高了
先gem list 查看rake版本
gem uninstall -v=10.1.0 rake // 卸载
再安装
gem install -v=0.8.7 rake
再执行 rake generate_session_store 成功
7. 生成数据结构
# rake db:migrate RAILS_ENV=”production”
这一步比较关键,这里很容易出现各种问题,出现的问题将在后面统一总结
8. 加载默认配置
# rake redmine:load_default_data RAILS_ENV="production"
这里会要求选择默认语言,选中文zh:
Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en] zh
9. 启动WEB服务
# ruby script/server webrick -e production
或# ruby /usr/local/redmine/redmine-1.0/script/server webrick -e production
更换web服务器
redmine自带的webrick太慢,特别是局域网,据说是需要解析目标地址的主机名,直接给ip不用,硬要绕一圈。
使用网上推荐的 mongrel
# gem install mongrel
# ruby script/server mongrel -e production
到这里redmine服务就启动了,然后在自己的机器上就可以打开浏览器访问redmine主页了
如果想要做到redmine 开机自启动的话:可以这样:
Vi /etc/rc.local
#!bin/sh
Echo “start redmine”
/usr/local/ruby/bin/ruby /usr/local/redmine/script/server mongrel –e production –d
然后保存退出即可
Redmine 是搭建在内网的服务器上得,但是外网是无法访问内网服务器的,所以要想实现这个功能就必须将服务器的内网地址映射到路由器,也就是所谓的端口映射,又叫路由转发规则。下面是在思科RV042路由器配置端口映射的步骤:
操作步骤如下:
1. 打开浏览器输入http://172.30.100.1,进去路由器配置页(用户名:admin_cisco 密码:一样)
2.
3. 点击SETUP标签
4. 再点击forwarding进入路由转发规则配置主页
5. 点击 service management 设置自己的服务规则,由于redmine是运行中3000端口的,所以我们可以这样设置:看下图
6. 点击save setting 进行保存。
7.在service 的下拉列表里选择我们刚刚添加的规则redmine
7. 在ip address 里填入我们需要映射的地址,并且使能他,如下图
8,再点击add to list
8. 最后在页面的的右下角点击save setting 进行保存。一切OK!
1.将/usr/local/redmine/config/configuration.yml.example重命名为config/configuration.yml
2.修改configuration.yml文件,修改信息如下:
delivery_method: :smtp
smtp_settings:
address: localhost
port: 25
domain: ezltech.com
# authentication: :login
# user_name: [email protected]
# password: XXXXXX
注意用#注销掉的那三行信息,那是邮件服务器身份验证信息,但是如果你的用户已经使用了域验证,就不需要那三行信息。
3.保存退出之后,从新启动服务器。然后访问redmine,以管理员的身份登录系统,点击"管理"---->"配置"---->"邮件通知",然后点击右下角的"发送测试邮件",就可以测试你的邮件服务配置是否成功了
1. 如果在生成数据结构即#rake db:migrate RAILS_ENV=”production”这一步的时候没有加上后面的RAILS_ENV=”production”的话redmine在连接数据库的时候就会默认的去找database.yml下面的development的配置,而不是我们配置的production,所以即使我们配置了production也无法正常生成数据结构。
2. 报错:uninitialized constant ActiveSupport::Dependencies::Mutex
解决方法:rails和rubygems版本不匹配,rubygems降到1.3.5试试
3. 报错:A key is required to write a cookie containing the session data. Use config.action_controller.session = {:key=>"_myapp_session", :secret=> "some secret phrase" } in config/environment.rb
解决方法:rake config/initializers/session_store.rb
4. 报错: No such file or directory - /tmp/mysql.sock
解决方法: 这个我在前面的配置文档中已经提到过了
5. 报错:!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
解决办法: 需要安装mysql适配器。gem install mysql
6. Access denied for user 'mysql'@'localhost' (using password: NO)
这是由于我们在database.yml里面的配置与在mysql里面创建用户的用户名和密码不匹配造成的
7. 错误:rake/rdoctask isdeprecated use rdoc/task instead(in RDOC2.4.2+)
这是由于rake的版本太高需要下载低版本的rake,可以用gem uninstall rake –v=版本号
8. 在redmine正常启动了,但是浏览器还是访问不了redmine主页
这可能是因为虚拟机的ip地址和xp的ip地址不在一个网段,所以建议打开虚拟机的时候不要用路由模式而用网桥模式。
9. 如果在安装了ruby 和 gem以后,想通过gem 自带的命令去下载rails,如gem install rails –v=2.3.5,可是去发现gem install 命令无法识别,提示你NO such file to load :zlib,这时你需要apt-get 安装zlib1g-dev 然后到ruby的源代码目录下 敲ruby extconf.rb 然后再make && make install 即可。
10. 如果在运行rb:migrate 时出现no such file to load :openssl,这时你需要apt-get install libopenssl-ruby
apt-get install libglobus-openssl-dev
到ruby源代码目录的 ext/openssl目录中
#ruby extconf.rb
#make
#make install 理想情况这样是可行的,可是还可能遇到make 过不去,或者ruby extconf.rb 过不去,我是遇到过这种问题,折腾了半天也没解决,后来都重新装过系统。后来虽然我通过更换了ruby的版本才解决的问题,但是我对这个问题出现的原因不是很明白难道是因为ruby的版本不对???至今不明白!
Yp :
Apache 自启动redmine
/etc/apache2/conf.d 目录下,建立文件:
sudo vi redmine.conf
RailsEnv production
RailsBaseURI /redmine