Redmine 搭建 备份 和恢复

本文涉及的产品
RDS AI 助手,专业版
PolarClaw,2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:
redmine是一款开源的流程管理软件,它集流程管理,邮件提醒笨笨关与于一体.
安装环境CentOS 5
安装最新稳定版本Redmine:

1,  安装yaml

安装Ruby前需要安装Libymal,这个是我第一次安装完Ruby后,使用gem –v 查看版本后提示:
/home/webtronics/ruby/bin/gem -v
/home/webtronics/ruby/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
后面发现不安装这个包,也不会影响Ruby的使用。

下载:wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar xf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure ;make ;make install

2,  安装Ruby

安装Redmine2.0版本,支持1.9.3版本及其它版本,我下载1.9.3版本
版本要求:http://www.redmine.org/projects/redmine/wiki/RedmineInstall
下载:
wget --no-check-certificate  https://rubyforge.org/frs/download.php/76065/ruby-1.9.3-p194.tar.gz

安装:
tar xf ruby-1.9.3-p194.tar.gz
cd ruby-1.9.3-p194

./configure
make
make install

注1: 在这里是直接安装到了系统默认路径,这样安装,ruby会认到第一步中安装的yaml
如果安装ruby的时候自定义路径./configure –prefix=/usr/local/ruby, 使用rake gem 命令时,还是会提示第一步中的警告,但是不会影响正常使用。

注2:如果ruby安装到自定义路径,下面的ruby,rake,gem 命令都要加上Ruby安装的绝对路径,如/usr/local/ruby/bin/ruby /usr/local/ruby/bin/rake /usr/local/ruby/bin/gem


3,  安装Redmine

做完上面两步的准备就可以按照官网的提供的方法安装Redmine。在安装前,我在网上看了许多Redmine的安装教程,发现与官网提供的有些不一样,而且网上的教程都是老版本的安装方法,按照老版本的安装方法安装新版本有会问题。所以老老实实的根据官网的方法来做:http://www.redmine.org/projects/redmine/wiki/RedmineInstall

下载:wget http://rubyforge.org/frs/download.php/76134/redmine-2.0.0.tar.gz

解压:

Tar xf redmine-2.0.0.tar.gz
Cd redmine-2.0.0

注:可以将Redmine移到到你想要放置的目录。

接下来就是按照官网的方法来安装,有些小地方需要注意。

注: 以下操作都在Redmine目录进行

3.1安装Bundler

Gem install bundler         

注:如果Ruby安装是自定义路径,path/ruby/bin/gem install bundler

Redmine 1.4 版本后使用Bundler来管理gems  依赖关系,在Redmine的目录里有一个Gemfile 需要的依赖包写在里面。 安装时根据实际需要与情况更改安装包。

由于我使用的是Mysql数据库,需要将Gemfile中的配置关于PostgreSQL的安装包注释掉,如果系统没有安装PostgreSQL而不注释掉,安装时会提示错误。

编辑Gemfile文件,将如下内容注释掉,不安装postgreSQL的相关依赖包。

#platforms :mri, :mingw do
#  group :postgresql do
#    gem "pg", ">= 0.11.0"
#  end
#
#  group :sqlite do
#    gem "sqlite3"
#  end
#end


3.2开始安装gem 依赖包

bundle install --without development test rmagick

注:这一步会安装Mysql的Adapter, 如果Mysql的安装路径不是系统默认的,这一步安装时会提示安装错误,需要增加安装参数安装
单独安装 Mysql2的依赖包 :
gem install mysql2 -v '0.3.11' -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
然后再运行上面的命令

3.3创建数据库:

create database redmine character set utf8;
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'cardinfolink';


3.4准备工作Ruby gem依赖包及数据库都做好了,开始真正配置Redmine的安装:

配置Redmine数据连接
Copy config/database.yml.example config/database.yml

Vim config/database.yml
production:
  adapter: mysql2   //如果用的Ruby是1.9版本,一定要写mysql2
  database: redmine
  host: localhost
  username: redmine
  password: my_password


注:官方原文提示MySQL database using ruby1.9 (adapter must be set to mysql2)  请注意,我开始没注意,后面rake时,老是提示数据库adapter没有安装。

创建sessin存储脚本
rake generate_secret_token
会产生config/initializers/secret_token.rb

创建数据库结构:[root@redmine redmine-2.0.0]# RAILS_ENV=production rake db:migrate
rake aborted!
Please install the mysq2 adapter: `gem install activerecord-mysq2-adapter` (cannot load such file -- active_record/connection_adapters/mysq2_adapter)
解决办法:
gem uninstall mysql2
gem install mysql2 -v"0.3.11"


[root@redmine redmine-2.0.0]# RAILS_ENV=production rake db:migrate
rake aborted!
Please install the mysq2 adapter: `gem install activerecord-mysq2-adapter` (cannot load such file -- active_record/connection_adapters/mysq2_adapter)

此处吃了暗亏,请具体查看database.yml确认adapter为mysql2而不是mysl2

创建数据库结构:
RAILS_ENV=production rake db:migrate

插入默认的配置数据:
[root@redmine redmine]# RAILS_ENV=production rake redmine:load_default_data

Select language: ar, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] zh
====================================
Default configuration data loaded.
创建相关目录
[root@redmine redmine]# mkdir tmp public/plugin_assets
mkdir: 无法创建目录 “tmp”: 文件已存在
[root@redmine redmine]# chmod -R 755 files log tmp public/plugin_assets
[root@redmine redmine]#
测试3000环境
[root@redmine redmine]#ruby /opt/redmine/script/rails server webrick -e production

通过Aapche访问redmine

后台运行Redmine
nohup ruby script/rails server webrick -e production &

在Apache配置文件中添加一个虚拟主机

<VirtualHost *:80>
       ServerName redmine.company.com
       ProxyPass / http://localhost:3000/
       ProxyPassReverse / http://localhost:3000/
</VirtualHost>
 
 
备份和恢复
备份和恢复 是企业应用中永远存在的话题.
 
 
Redmine的用户和问题等信息存储于Mysql数据库,表名为redmine而附件等资源存储于Redmine安装目录的files目录下.
因此需要迁移的话只需要备份Mysql数据库的对应的表和files目录即可。
1.备份mysql数据库。
查看redmine/mysql/config/database.yml
记住production字段的username和password。
然后控制台root权限执行:mysqldump -u username -p redmine > /path/redmine_bak.sql
然后是备份附件。
$ cd redmine
$ tar cvzf /var/files_bak.tar.gz ./files/
2、Redmine恢复
附件库恢复
直接将备份的/var/files_bak.tar.gz解压缩到/redmine/files目录下即可
Mysql恢复
在root用户下运行:
$ mysql -u root -p redmine < /var/redmine_bak.sql
 
3、恢复完毕后启动Redmine,
$ cd redmine
$ ruby script/server -e production
如果页面有乱码,可编辑redmine/mysql/config/database.yml,将production字段的encoding注释掉即可。

 

     本文转自 珏石头 51CTO博客,原文链接:http://blog.51cto.com/gavinshaw/1006559,如需转载请自行联系原作者


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
32701 79
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17756 20
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36685 20
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24765 14
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36665 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29839 52

热门文章

最新文章

下一篇
开通oss服务