安装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. 通过settings.db自定义Android系统默认设置

    Android的系统设置数据存放在/data/data/com.android.providers.settings/databases/settings.db 中 数据库结构如下: 数据库中的默认数 ...

  2. Android 实现图片画画板

    本文主要讲述了Android 实现图片画画板 设计项目布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk ...

  3. 4、界面前端设计师要阅读的书籍 - IT软件人员书籍系列文章

    前端工程师原来的职位是美工,原来只负责项目的一些简单网页制作,因为项目的需要,升级为前端工程师,这就涉及到JS等代码的编写了.前端工程师这个职位在目前来说算是新兴职位,在未来的几年里也是挺吃香的一个职 ...

  4. 【译】Java中的枚举

    前言 译文链接:http://www.programcreek.com/2014/01/java-enum-examples/ Java中的枚举跟其它普通类很像,在其内部包含了一堆预先定义好的对象集合 ...

  5. 判断字符串的首字母 ---------startsWith

    列: {                                            xtype : 'gridcolumn',                                ...

  6. 常用的主机监控Shell脚本

    最近时不时有朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能 ...

  7. Maven 打包涉及证书文件问题

    当使用maven-assembly-plugin或者maven-shade-plugin打包时,如果涉及到证书文件,一定设置过滤,否则证书文件会被做修改.报异常: java.io.IOExceptio ...

  8. 烂泥:puppet3.7安装与配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 有关服务器的自动化管理,这方面以前没有接触过.打算这段时间把这块知识给补上. 现在服务器自动化管理软件,使用最多也最火的就是puppet了. 那么我们今 ...

  9. Ubuntu Kylin15下PHP环境的搭建(LAMP)

    Ubuntu下的PHP开发环境架设   今天重新装了ubuntu那么就吧过程记录下. 打开终端,也就是命令提示符. 我们先来最小化组建安装,按照自己的需求一步一步装其他扩展.命令提示符输入如下命令: ...

  10. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...