[原创]CentOS 6.5搭建Redmine

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [原创]CentOS 6.5搭建Redmine

这几天在公司把Redmine搭建好了。由于Redmine是基于Ruby开发的,所以要在CentOS搭建Ruby On Rails的开发环境,总之一切都还好,对于之前有过搭建PHP开发环境的经验,搭建起Redmine还是容易的,只是需要费点时间解决搭建过程遇到的问题而已。

系统:CentOS 6.5

所需软件:redmine

 

下面的教程是在一个全新得系统上安装redmine程序

首先,我们需要安装以下的依赖关系

1
[root@ihuilian ~]#yum -y install zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA

 

然后,安装数据库的相关软件

1
[root@ihuilian ~]#yum install -y mysql mysql-server

 

启动数据库,并设为开机自动启动

1
2
[root@ihuilian ~]# chkconfig mysqld on
[root@ihuilian ~]# service mysqld start

 

设置MySQL数据库的相关选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[root@ihuilian ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
 ... skipping.
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

 

禁用selinux

1
[root@ihuilian ~]# setenforce 0

 

开放iptables相关的端口,redmine默认启动端口为3000

1
2
[root@ihuilian ~]# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT
[root@ihuilian ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

 

安装PHP和PHP相关插件

1
[root@ihuilian ~]# yum -y install php php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-soap

 

下面,进入正题,安装我们的ruby了,首先,要安装一个rvm的命令行工具,它提供一个便捷的多版本切换和管理

rvm安装

1
[root@ihuilian ~]# \curl -L https://get.rvm.io | bash

 

将rvm的命令加入到系统的环境变量中去

1
[root@ihuilian ~]# source /etc/profile.d/rvm.sh

 

安装rubygems

1
[root@ihuilian ~]# yum install -y rubygems

 

移除ruby的官方源,使用淘宝的rubygems源

1
2
3
4
5
[root@ihuilian ~]# gem sources -a https://ruby.taobao.org/
[root@ihuilian ~]# gem sources --remove http://rubygems.org/
[root@ihuilian ~]# gem sources -l    #查看rubygems的源
*** CURRENT SOURCES *** 
https://ruby.taobao.org/

 

查看ruby的版本,然后,使用rvm安装ruby

1
2
[root@ihuilian ~]# rvm list known
[root@ihuilian ~]# rvm install 1.9.3

 

查看安装后的ruby的版本

1
2
[root@ihuilian ~]# ruby -v 
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

 

为redmine程序,创建一个新的数据库

1
2
3
4
5
6
7
[root@ihuilian ~]# mysql -uroot -hlocalhost -phuilian123
mysql> create database redmine_db character set utf8;
Query OK, 1 row affected (0.23 sec)

mysql> create user 'redmine_admin'@'localhost' identified by 'redmine_pass';

mysql> grant all privileges on redmine_db.* to "redmine_admin"@"localhost";
Query OK, 0 rows affected (0.14 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

接下来就是重点了,下载,并且安装redmine程序

1
2
3
[root@ihuilian ~]# mkdir /redmine 
[root@ihuilian ~]# cd /redmine/ 
[root@ihuilian redmine]# wget http://www.redmine.org/releases/redmine-2.5.0.tar.gz

解压缩

1
[root@ihuilian redmine]# tar zxf redmine-2.5.0.tar.gz

 

在redmine的程序中,配置数据库相关的信息

1
2
3
4
5
6
7
8
9
10
11
[root@ihuilian redmine]# ln -sv redmine-2.5.0 redmine
[root@ihuilian redmine]# cd redmine/config
[root@ihuilian config]# cp database.yml.example database.yml
修改如下
production:
  adapter: mysql2
  database: redmine_db
  host: 192.168.74.128
  username: redmine_admin
  password: "redmine_pass"
  encoding: utf8

 

安装rails相关库的支持

1
[root@ihuilian redmine]# gem install bundler

 

此时,要修改redmine文件夹中的文件Gemfile

1
2
3
4
5
[root@ihuilian redmine]# vim Gemfile
source 'https://ruby.taobao.org/'    #将源指向到淘宝的源
[root@ihuilian redmine]# bundle install
//如果不修改Gemfile文件,执行是不能成功的

 

生成一个session文件,在迁移中,这是很重要的一项,要指定原来的值

1
[root@ihuilian redmine]# rake generate_secret_token

 

为redmine应用创建数据库(确认这步执行成功了),在迁移过程中,此步骤是不需要执行的

1
2
[root@ihuilian redmine]#  RAILS_ENV=production rake db:migrate
[root@ihuilian redmine]#  RAILS_ENV=production rake redmine:load_default_data

 

创建一个文件夹,作为redmine的存放目录

1
2
3
4
5
[root@ihuilian ~]# mkdir  /redmine/files 
[root@ihuilian ~]# cd /redmine/redmine-2.5.0/config
[root@ihuilian config]# cp configuration.yml.example configuration.yml 
[root@ihuilian config]# vim configuration.yml
 attachments_storage_path: /redmine/files    #指定文件路径

 

此时就可以启动redmine程序了

1
2
3
[root@ihuilian redmine]# pwd 
/redmine
[root@ihuilian redmine]# ruby redmine/script/rails server webrick -e production

 

通过浏览器访问3000的端口

wKioL1SuJMOwR8AlAAEVTDEYbBc581.jpg到此,redmine程序的搭建就完成了

 

下面,提供redmine的一个监控脚本,如果redmine进程down了,通过任务计划的检查,将其重启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
#this script in order to check the redmine , if it down ,make it start
#date : 2015/1/6
#notice : any questions send mail to shangchunhui@ihuilian.com
 
#rvm environment
source /etc/profile.d/rvm.sh
 
#change to redmine's directoy
RedmineDir=/redmine
cd $RedmineDir
mkdir logs
 
#this redmine is listen on 3001
ListenPort=3001
ReturnCode=`ss -tlnp | grep "\<$ListenPort\>" &> /dev/null echo $?`
if [ $ReturnCode -eq 0 ];then
    echo -e "\e[32mtime: `date +%F-%T`\e[m" >> logs/access.log
    echo -e "\e[35mredmine is running.\e[m" >> logs/access.log
else
    nohup ruby redmine/script/rails server webrick -e production -p 3001 &
    echo -e "\e[32mtime: `date +%F-%T`\e[m">> logs/error.log
    echo -e "\e[31mredmine is down to running.\e[m" >> logs/error.log
fi
 
#now check the log file size,delete the file which is larger then 100MB
cd ${RemineDir}logs
for file in access.log error.log
do
    Size=`ls -l $file awk -F" " '{print $5}'`
    if (( $Size >= 102400 ));then
        > $file
    fi
done

将上面的脚本写到任务计划中去

1
2
[root@ihuilian ~]# crontab -l
*/10 * * * * /bin/bash /redmine/redmine.sh &> /dev/null

再者,如何把Redmine在Apache中运行起来,需要按照如下方法:

安装Apache:

yum install httpd -y

设置防火墙,把apache默认80端口以及443端口打开

/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

安装Redmine的apache的支持:

gem install passenger
passenger-install-apache2-module

命令执行完后按照提示进行配置http:

vim /etc/httpd/conf.d/passenger.conf #一切根据上个命令提示进行配置,每个电脑可能情况不一样
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.5/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.5
PassengerDefaultRuby /usr/local/rvm/gems/ruby-1.9.3-p551/wrappers/ruby
</IfModule>

vim /etc/http/conf.d/redmine.conf
<VirtualHost *:80>
ServerName 192.168.1.118
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /redmine/redmine-2.5.0/public
ErrorLog logs/redmine_error_log
<Directory /redmine/redmine-2.5.0/public>
# Options Indexes ExecCGI FollowSymLinksOrder allow,deny
# Allow from all
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
# Require all granted
</Directory>
</VirtualHost>

上述配置文件配置的是Redmine的安装路径之类的,根据情况自己配置

修改fastcgi

cd /data/redmine-2.6.3/public
mkdir plugin_assets
cp dispatch.fcgi.example dispatch.fcgi
cp htaccess.fcgi.example .htaccess

安装mod_fcgi

rpm --import https://Fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install mod_fcgid

启动Redmine

cd /data/redmine-2
chown -R apache:apache redmine-2.6.3
chmod -R 755 redmine-2.6.3
service httpd restart

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [原创]CentOS 6.5搭建Redmine

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: