记录下redmine部署过程

1.       安装mysql (这里使用mariadb,centos7自带)

yum groupinstall mariadb

2.       ruby编译安装

wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz tar xzfruby-2.3.1.tar.gzcdruby-2.3.1./configure--prefix=/usr/local/rubymake && make install

cat >> vim /etc/pofile << EOF  #配置环境变量export/usr/local/ruby/bin:$PATHEOF ruby -vruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

 3.     安装gem

yum install -y rubygems

gem是一种文件组织的包,一般的ruby的很多插件都有由这种各种的包提供。

官方的ruby网站被某组织墙掉了,可以使用国内的ruby镜像

 

使用方法(参照官网):

 

请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。

 

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/gem sources -lhttps://gems.ruby-china.org  #更换源,确保只有 gems.ruby-china.org  gem update --system    # 这里请×××一下gem -v2.6.3 cd ruby-2.3.1/gem install rails  # 这里在在 ruby-2.3.1/ 源码的目录里执行

 如果在其它目录执行会有如下报错:

 

 你可以用Bundler的

bundle config mirror.https://rubygems.org https://gems.ruby-china.org

4.       下载redmine3.3.0

wget http://www.redmine.org/releases/redmine-3.3.0.tar.gztar xzfredmine-3.3.0.tar.gzmv redmine-3.3.0/web/redmine

 

5.       创建redmine数据库

mysql -uroot -p mysql>create database redmine; mysql>grant all on redmine.* to redmine@'localhost' identified by '123456';

 

配置redminedatabase.yml

cd /web/redmine/configcpdatabase.yml.example database.yml

 

vimdatabase.yml   //修改对应数据库连接信息production:  adapter: mysql2  database: redmine  host: localhost  username: redmine  password: "123456"  encoding: utf8

 6.       在线安装redmine依赖的所有ruby

cd/web/redminegeminstall bundler    //注意是在网站根目录下执行

 [如果出现下面报错]

Successfully installed bundler-1.3.5

1 gem installed

Installing ri documentation for bundler-1.3.5...

ERROR:  While executing gem ...(NoMethodError)

    undefined method `map' forGem::Specification:Class

可以通过下面的方法解决

gemupdate --system

 

 bundle install --without development test  这句需要查下,和以下命令对比有何区别? 亲测以下语句如果缺少依赖包请照提示安装依赖包, 最终是可以执行成功的)

bundleinstall --without development test rmagick   #完成redmine依赖包的安装

(这里安装过程可能比较慢).........

 

bundler是用来管理ruby的包依赖的工具

Rails生成cookies秘钥 (直接执行以下命令)

rake generate_secret_token    #等同 bundle exec rakegenerate_secret_token

 

创建数据库结构(直接执行以下命令)

RAILS_ENV=productionrake db:migrate

生成缺省数据

RAILS_ENV=productionREDMINE_LANG=zh rake redmine:load_default_data

 

[如果出现报错无法读取/tmp/mysql.sock 

可通过软链接解决 ln -s /usr/local/mysql/mysql.sock/tmp/mysql.sock (不过这种方法不是很好,每次重启过linux系统后就没有了还需要重新设置)

建议直接修改数据库配置文件 vim /web/redmine/config/database.yml

encoding:utf8下面添加一行

socket: /var/run/mysqld/mysqld.sock]

 

 

调整文件系统权限(这里配置为与nginx)

chown -R nginx:nginx /data/wwwroot/redmine

 

mkdir -ptmp tmp/pdf public/plugin_assets   #redmine目录默认存在了的,若不存在则创建该路径, tmp/pdf(用于生成 PDF 文件);public/plugin_assets (plugins资源)

 

7.       测试  with Redmine 3.x: Test the installation by running WEBrick web server

bundleexec rails server webrick -e production   #这是不使用nginx转发时直接运行,会监听3000端口

 

8.     安装passenger

gem install passenger    #如需指定安装版本 gem install passenger -v 5.1.5

 

9.       安装nginx (依赖包 yum install pcre-devel openssl-devel)

 

方法1 使用passenger自带的一个命令自动安装nginx

passenger-install-nginx-module  //按照提示一步一步的操作,这个命令会自己下载最新版的nginx和编译passengermodule.

 

一路回车,出现让我们选择安装方式。这里1是自动编译安装,我们选择1,回车,然后输入安装位置/usr/local/nginx

回车,其会自动进行configure --> make --> make install 完成

 

方法2)也可以手动编译安装,configure参数如下(redmine 版本 3.3.3,重新编译一样可以用这个参数)

./configure --prefix=/usr/local/nginx --user=nginx--group=nginx --with-http_ssl_module --with-http_gzip_static_module \--with-http_stub_status_module --with-pcre  \--add-module=/usr/local/ruby/lib/ruby/gems/2.3.0/gems/passenger-5.1.5/src/nginx_module

 

如果是redmine 版本 2.x 老版的编译参数如下:

./configure --prefix=/usr/local/nginx --user=www --group=www--with-http_stub_status_module \--with-http_spdy_module --with-http_ssl_module --with-ipv6--with-http_gzip_static_module \--with-http_flv_module --with-ld-opt=-ljemalloc \--add-module=/usr/local/ruby/lib/ruby/gems/2.1.0/gems/passenger-4.0.57/ext/nginx

注:  如果nginx在服务器原本就已经安装好,则可参照nginx重新编译添加模块的方法操作

 

 

10.       配置RedmineNginx上运行

结束webrick服务

cd /web/redmine/public/cpdispatch.fcgi.example dispatch.fcgicphtaccess.fcgi.example .htaccess.fcgi

 

配置Nginx

vi/usr/local/nginx/conf/nginx.conf    #在http {}直接添加passenger_root/usr/local/ruby/lib/ruby/gems/2.3.0/gems/passenger-5.1.5;passenger_ruby /usr/local/ruby/bin/ruby;

 

添加虚拟主机(/usr/local/nginx/conf/nginx.conf)如下:

server {  server_name localhost;  listen 80;  index index.html;

 

location/ {            root   /web/redmine/public;            passenger_enabled on;            index  index.html index.htm index.php;        }            }

 

启动nginx

/usr/local/nginx/sbin/nginx

 

 

11.     页面访问正常,部署完毕

默认登陆用户: admin   密码: admin

 

 

 

出现的部分报错:

1nginx编译, make的时候出现如下报错: 原因不明

 

 

最后从其它机器把已make编译成功的带有Passenger参数的 nginx文件复制到/usr/local/nginx/sbin/目录,启动测试正常

 

 

2 bundleinstall --without development test rmagick  (或gem installrmagick 也一样报如下错)

报错

 

然后查看相关日志文件 gem_make.out 

可以看到错误提示 Can't installRMagick 2.16.0. You must have ImageMagick 6.4.9 or later

 

解决:

要安装rmagick 需要先安装ImageMagick

 

yum install ImageMagick-devel

 

参考<>

 

3)redmine编辑保存慢的问题

新建问题或更新问题时非常慢,网上搜索了一下,发现有人提到是因为在新建问题和更新问题时会发送邮件,而且是同步操作的,就是说需要等到邮件发送成功后才会返回。这样一说还真是恍然大悟,于是找到了解决的方案,将发送邮件的方式改为异步操作:

1. 进入redmine目录下的config目录;(或者直接不配置smtp

2. 编辑configuration.yml;

3. 找到 delivery_method: :smtp,将smtp改为:async_smtp,保存退出;(async前面有:   否则会出现500错误)

4. 重启nginx服务;

完成以上步骤后,重新打开redmine,新建问题和编辑问题提交后唰唰的就出来了

default:   email_delivery:        delivery_method: :async_smtp        smtp_settings:          enable_starttls_auto: false          address: smtp.mxhichina.com          port: 25          domain: mxhichina.com          authentication: :login          user_name: redmine@ruigaokeji.cn          password: xxxxx

 

附:

其它参考 <>

redmine官方安装文档