安装Ruby 到 /opt/ruby-2.0.0

tar -zxvf ruby-2.0.-p481.tar.gz
cd ruby-2.0.-p481
./configure --prefix=/opt/ruby-2.0.
sudo make
sudo make install
whereis ruby
/opt/ruby-2.0./bin/ruby -version
cd /usr/local/bin/
sudo ln -s /opt/ruby-2.0./bin/ruby ruby
sudo ln -s /opt/ruby-2.0./bin/gem gem

注意: (Centos6.5)需要预先安装

sudo yum install openssl-devel
sudo yum install mysql-devel
sudo yum install zlib-devel

在后面的步骤中出现对应的无法找到xxx时, 到ruby-2.0.0-pxxx/ext/ 的对应的扩展目录下

sudo ruby extconf.rb
sudo make
sudo make install

安装RubyGems

tar -zxvf rubygems-2.3..tgz
sudo ruby setup.rb

准备MySQL数据库

sudo mysql -u root -p

安装Redmine

unzip redmine-2.5..zip
cd redmine-2.5.
cd /var/www/
sudo mv ~/backup/redmine-2.5. ./redmine
cd redmine/config
cp database.yml.example database.yml
vi database.yml 修改数据库连接参数

用gem 安装依赖插件

cd backup/
sudo gem install --http-proxy http://127.0.0.1:3128 bundler
vi /var/www/redmine/Gemfile 查看, 不改动
到redmine根目录下
/opt/ruby-2.0./bin/bundle install --without development test rmagick
这一步如果网络不好, 要很长时间
然后是初始化数据库, 依次执行
RAILS_ENV=production /opt/ruby-2.0./bin/bundle exec /opt/ruby-2.0./bin/rake generate_secret_token
RAILS_ENV=production /opt/ruby-2.0./bin/bundle exec /opt/ruby-2.0./bin/rake db:migrate
RAILS_ENV=production /opt/ruby-2.0./bin/bundle exec /opt/ruby-2.0./bin/rake redmine:load_default_data
启动服务, 可以在最后加上 -d 参数后台运行
ruby script/rails server webrick -e production
ruby script/rails server webrick -e production -d

如果访问很慢, 可以做以下修改, 打开 /opt/ruby-2.0.0/lib/ruby/2.0.0/webrick/config.rb

找到
General = {
:ServerName => Utils::getservername,
:BindAddress => nil, # "0.0.0.0" or "::" or nil
:Port => nil, # users MUST specify this!!
:MaxClients => , # maximum number of the concurrent connections
:ServerType => nil, # default: WEBrick::SimpleServer
:Logger => nil, # default: WEBrick::Log.new
:ServerSoftware => "WEBrick/#{WEBrick::VERSION} " +
"(Ruby/#{RUBY_VERSION}/#{RUBY_RELEASE_DATE})",
:TempDir => ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp',
:DoNotListen => false,
:StartCallback => nil,
:StopCallback => nil,
:AcceptCallback => nil,
:DoNotReverseLookup => true,
:ShutdownSocketWithoutClose => false,
}

把 "DoNotReverseLookup" 的值从 nil 改为 true.

使用httpd 反向代理访问

sudo vi /etc/httpd/conf.d/redmine.conf

NameVirtualHost *:
<virtualhost *:="">
DocumentRoot "/var/www/redmine/public"
ServerName www.dummy.com
ErrorLog logs/www.dummy.com-error_log
CustomLog logs/www.dummy.com-access_log common ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/ </virtualhost> <virtualhost *:="">
DocumentRoot "/var/www/html"
ServerName 192.168.10.106
</virtualhost>

第一个VirtualHost用于将www.dummy.com的访问跳转到3000端口

第二个VirtualHost用于保留原来的document root (否则全都到第一个VirtualHost去了)

错误解决

如果httpd 的 error_log里出现这种错误的: [Sun Jun 22 02:53:09 2014] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:3000 (localhost) failed 需要打开selinux对httpd访问本机端口的限制:

setsebool httpd_can_network_connect=

如果需要永久生效, 加上 -P 参数

setsebool -P httpd_can_network_connect 

如果启动httpd时出现这样错误, 而目录又确实存在的: Starting httpd: Warning: DocumentRoot [/var/www/redmine/public] does not exist 需要用ls -Z 检查一下这个路径上每个目录, 属性是否正确, 否则就依次用这个命令重设属性:

sudo /sbin/restorecon redmine/
sudo /sbin/restorecon public/


添加到开机自启动

首先添加用户redmine (或者用别的用户也可以)

sudo useradd redmine
sudo passwd redmine

将redmine整个目录的owner改为redmine

sudo chown -R redmine:redmine /var/www/redmine

然后在/etc/init.d下创建启动脚本 redmine:

#!/bin/sh
#
# Startup script for redmine
#
# chkconfig:
# description: redmine project manager
# processname: redmine
# pidfile: /var/run/redmine.pid # Source function library.
. /etc/rc.d/init.d/functions program="redmine"
port=""
server="webrick" #webrick|thin
other_opts="-d" program_home="/var/www/${program}/"
[ -d ${program_home} ] || exit
PIDFILE="/var/run/${program}.pid"
LOCKFILE="/var/lock/subsys/${program}" # See how we were called.
case "$1" in
start)
echo -n "Starting ${program} ..."
#### Commands to start the process running
# -d: detach
# -e: environment
# -p: port
/bin/su - redmine -c "/usr/local/bin/ruby ${program_home}script/rails server ${server} -e production -p ${port} ${other_opts}"
sleep
echo `pgrep -f "ruby script/rails server ${server} -e production -p ${port} ${other_opts}"` > ${PIDFILE}
touch ${LOCKFILE}
echo
;;
stop)
echo -n "Shutting down ${program} ..."
killproc ${program}
echo
rm -f ${LOCKFILE}
rm -f ${PIDFILE}
;;
status)
status ${program}
;;
restart)
$ stop
$ start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit
esac
exit $?

将redmine添加到自启动

sudo /sbin/chkconfig --add redmine
看看是否添加成功
sudo /sbin/chkconfig --list

Centos5.8 安装 Redmine的更多相关文章

  1. CentOS5.4安装redmine详细步骤

    >>>>概述<<<< 这里不解释什么是redmine及用来做什么,如果不知道用来做什么,估计也不会把它安装到CentOS5.4上.哈哈…… 以下为详细的 ...

  2. CentOS安装redmine 2后的简单配置

    CentOS5.4安装redmine详细步骤 http://blog.csdn.net/leekwen/article/details/8516832 <<<<输出日志的配置& ...

  3. [Redmine] Centos5上安装Redmine3.0+nginx+thin部署

    项目管理的需要所以安装Redmine,其实wiki放在上面也不错的. 首先是安装,ruby应用第一次装,把坑记住. nginx, mysql是已经安装好的,只需要配置, 结合nginx的部署方式很多, ...

  4. centos-5.5安装vmvare tools

    centos-5.5安装vmvare tools 虚拟机管理,安装tools 找到VMwareTools压缩包 解压到Desktop,桌面 终端进入桌面 执行程序# ./vmware-install. ...

  5. CentOS 6.6 安装redmine

    Redmine是一个开源的.基于Web的项目管理和缺陷跟踪工具.它用日历和甘特图辅助项目及进度可视化显示.同时它又支持多项目管理.Redmine是一个自由开放源码软件解决方案,它提供集成的项目管理功能 ...

  6. BitNami一键安装Redmine(转)

    1. 简介 对于一个新手,如果严格按照官方文档来安装redmine,我想会“疯”掉的.有没有一种简便的方法.有滴,那就是BitNami. BitNami提供redmine的一键安装程序,简单.易用.方 ...

  7. CentOS下安装Redmine 2.5.2

    Redmine是用Ruby开发的基于web的项目管理软件,所以先要下载安装Ruby,再下载对 Ruby组件进行打包的 Ruby 打包系统RubyGems. 第一步:下载必要的软件 1.依赖包安装 # ...

  8. Linux上安装Redmine

    安装基本的软件环境 # yum install zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr- ...

  9. BitNami一键安装Redmine

    1. 简单介绍 对于一个新手,假设严格依照官方文档来安装redmine,我想会"疯"掉的.有没有一种简便的方法.有滴,那就是BitNami. BitNami提供redmine的一键 ...

随机推荐

  1. Android Activity生命周期详讲

    管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...

  2. c中的指针

    一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int  n)函数 ...

  3. 【Android】魅族Flyme OS 3摄像头无法预览的问题

    错误代码: 12-12 14:28:34.692: E/AndroidRuntime(1524): java.lang.RuntimeException: startPreview failed 12 ...

  4. 多线程(pthread、NSThread、GCD)

    pthread C语言编写 跨平台可移植 线程生命周期需要我们来管理 使用困难 NSThread 面向对象的 可直接操作线程对象 线程生命周期需要我们来管理 使用简单 资源互斥(@synchroniz ...

  5. 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】

    楼主2007年从一家天津的三流大学毕业.毕业前报了一个职位培训,毕业后可以推荐工作.因为推荐的公司都是北京的,所以就来北京了. 找了一个月工作,没有找到要我的,就在出租屋里宅了起来,打着考研的旗号,又 ...

  6. CMMI4级实践中的5个经典问题及解答

    这五个问题相当经典而且比较深,需要做过CMMI4.5级的朋友才能看懂这些问题.这5个问题是一位正在实践CMMI4级的朋友提出来的,而解答则是我的个人见解. 五个疑问是:   A.流程,子流程部分不明白 ...

  7. sql server 索引分析相关sql

    select object_id('dbo.FT_CFP_TRADE_SUBACCOUNT') select * from sys.partitions where [object_id]=14672 ...

  8. sql server 2005导出数据到oracle

    一. 在sql server下处理需要导出的数据库 1. 执行以下sql,查出所有'float'类型的字段名,手动将float类型改为decimal(18,4). select 表名=d.name,字 ...

  9. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  10. 从本地向 Github 上传项目步骤攻略(快速上手版)

    最近想把之前自己做的一些好玩的项目共享到Github,网上找了一圈上传教程,都感觉写的太深奥.复杂,云里雾里,特把自己的方法纪录如下: PS:这种方式一般适用于:开始做项目时,没有直接在github上 ...