0. 说明
confluence有多种安装方式,该篇文章只讨论免安装版本。从官方文档观察可知,官方已经不支持5.x的版本了,所需的资料都需要从除了官网之外的地方获取了。
软件要求
- Apache Tomcat -- confluence自行封装,无需额外安装
- Java -- 版本1.7
- DB -- confluence支持多种外置数据存储,我们使用mysql5.6的版本
- OS -- 操作系统部分常见的为Ubuntu和CentOS系列,我们这里使用Ubuntu
硬件要求
在官方文档中有具体的描述,我们只列出最低配置的要求,在自己测试时可能没有这么高的硬件配置,但是我们可以用1-2GB的内存来尝试安装该软件,来了解基本功能。
最低:
- CPU: Quad core 2GHz+ CPU
- RAM: 6GB
- Min DB Space: 10GB
1. 原有系统情况
比较重要的有两部分,意识confluence的安装目录与数据目录,另一个是mysql的数据(mysql目前和其他的应用共用一个)。
confluence自身提供了备份和恢复的功能,我们直接采用这种方式来迁移数据。但是在迁移之前我们必须要手动备份上面提到的两部分数据,再通过自带的备份方式来迁移数据。
手工备份
- confluence安装及数据目录
home dir: /var/atlassian/application-data/confluence
install dir: /opt/atlassian/confluence
~]#tar zcvf confluence_alldata.tar.gz /var/atlassian/application-data/confluence --exclude /var/atlassian/application-data/confluence/backups
~]#tar zcvf confluence_install.tar.gz /opt/atlassian/confluence --exclude /opt/atlassian/confluence/logs --exclude /opt/atlassian/confluence/temp --exclude /opt/atlassian/confluence/work
- mysql数据库
~]#mysqldump -hxxx -uconfluence -pxxx --databases/-B confluence > confluence_mysql_alldata.sql
confluence自带备份
以管理员身份登录系统,通过导航栏中的
设置
图标下的插件
进入站点管理界面
,在左侧导航部分的管理
模块找到备份与还原
链接,点击之后,右侧出现相关页面。
备份与还原
页面最上方就是备份Confluence数据
,我们选择下面的两个复选框:存档至备份目录
、备份附件
,然后点击备份
按钮就可以将mysql的数据以及附件以压缩xml文件的方式备份到confluence的家目录的backups
目录下了。如果不选择存档至备份目录
,数据会备份到confluence家目录的temp
目录下;不选择备份附件
,则只会备份mysql的数据。
2. 新系统环境
- 软件
OS: CentOS 7.2
MySQL: MySQL Community Server 5.6.42
Java: 1.7.0_15
- 硬件
RAM: 8GB
DiskSpace: 100GB
CPU: 2 * Xeon(R) E5-2620 v2 @2.10GHz
3. confluence安装
- 上传备份的confluence安装文件到新服务器
通过sz命令或者sftp的方式将原服务器的备份文件下载到本地,然后再通过rz命令或者sftp方式将备份文件再上传到新服务器。如果新旧两台服务器之间网络是互通的,那么也可以直接通过rsync或者scp的方式传输备份文件到新服务器。
- 解压安装文件到/opt目录下
~]#tar xfv confluence_install.tar.gz -C / #原来备份的时候加了绝对路径,所以解压出来的文件是从opt目录开始的,所以将其解压到根目录下
- 修改jdk环境变量
修改jdk环境变量有两种方式
- 系统
在/etc/profile
文件或者/etc/profile.d
目录下新建一个.sh
文件将java的JAVA_HOME/CLASSPATH/PATH
环境变量写入进去,然后执行source /etc/profile
命令就会生效,通过命令行下运行java -version
命令可以检测效果。- confluence自身
在confluence安装目录下的bin
目录下有一个setenv.sh
文件,在该文件中我们加入JAVA_HOME
的环境变量就可以了。
- 设置confluence的home目录
配置文件文件在confluence安装目录下的
confluence/WEB-INF/classes
目录,文件名confluence-init.properties
。这个文件本身已经配置了confluence.home
,我们可以根据自己的需要重新修改,confluence.home
只需要配置一个即可,由于原文件中配置了多个confluence.home
,并且路径较长,所以,这里我们将其改为唯一的confluence.home = /var/confluence
- 添加confluence系统用户
~]# useradd -m/--create-home -s/--shell /bin/bash confluence
- 创建目录
~]#mkdir $CONFLUENCE_INSTALL/{work,logs,temp} #之前备份的时候将这三个目录排除了
~]#mkdir /var/confluence #confluence家目录
- 修改目录权限
默认confluence是以confluence用户来运行的,必须让confluence对安装目录下的目录有写入和执行权限,我们这里直接将安装目录的所有者改成confluence用户
~]# chown -R confluence /opt/atlassian /var/confluence
4. MySQL安装及配置
MySQL的安装属于一项比较简单的技能,我们除了对版本之外没什么特别的要求,所以大家可以从网络上找到各种安装教程来完成。
在MySQL安装完成后,我们默认数据库已经经过了初始化,我们需要做的是设置用户及修改配置文件。
- 配置文件
[mysqld]
character-set-server = utf8 #设置数据库服务端的字符编码为UTF8,否则在后面导入数据后就会出现乱码的情况,默认的字符编码为latin1
collation-server = utf8_bin #指定数据集的排序方式,常用的是utf8_general_ci(忽略大小写),utf8_bin(二进制存储,区分大小写)
default-storage-engine = InnoDB #mysql5.6的默认存储引擎是InnoDB,可以不写该行
transaction_isolation = READ-COMMITTED #默认事务隔离级别是repeatable-read,这个配置必须有,否则后面的页面设置数据库部分会失败
max_allowed_packet = 256M #单个记录的大小,如果大于该值,会导致写入数据库失败
innodb_log_file_size = 2GB #事务日志文件的大小,设置太大会导致数据库意外夯机的恢复时间会更长,设置太小,会影响InnoDB的性能
sql_mode = NO_AUTO_VALUE_ON_ZERO #影响AUTO_INCREMENT列的处理。一般情况,可以向该列插入NULL或0生成下一个序列号。NO_AUTO_VALUE_ON_ZERO禁用0,因此只有NULL可以生成下一个序列号。
binlog_format = row #MySQL复制的方式,如果mysql是单机则不需要配置
- 数据库及用户设置
~]# mysql -uroot -pxxx -hxxx
mysql> CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin; #创建confluence使用的数据库
mysql> GRANT ALL ON confluence.* TO 'confluence'@'localhost' IDENTIFIED BY 'xxxx'; #授权confluence用户管理confluence数据库
mysql> FLUSH PRIVILEGES;
5. confluence初始化及数据恢复
- 启动
~]# su - confluence -c "/opt/atlassian/confluence/bin/start-confluence.sh" #以confluence用户的身份来启动confluence服务
- 设置向导
- LICENSE
我们可以通过试用的方式来获取到License Key,或者通过网络的方法进行破解,这个步骤我们忽略。关键文件atlassian-extras-2.4.jar
- 选择安装类型
有两个选项,试用或者生产,我们选择生产。- 选择数据库
同样有两种选项,一种是内置数据库,主要用来测试,另一种是外置的,需要我们单独安装的。我们选择外置数据库的mysql类型,这里有一点比较重要,我们必须确保我们将java连接mysql的驱动的jar文件放到了对应的位置,并且是重新加载了jar文件内容的环境。- 数据库连接方式
同样有两种选项,一种是JDBC直连,另一种是数据源,我们选择JDBC。- 数据库配置
这里面我们需要修改和填写的有三项。
- Database URL --> localhost根据需要进行修改
- User Name --> 填写前面创建的用户
confluence
- Password --> 填写前面设置的密码
xxxxxx
- 空站点
我们先选择空战点,然后设置admin的相关信息,进入正常的访问界面后再进行后续操作。
完成上面的步骤之后我们可以进行中文语言包的安装
我们需要从网上找到5.4.4版本对应的中文语言包,然后下载到服务器上,将其放到/opt/atlassian/confluence/confluence/WEB-INF/lib/目录下
,然后重启confluence即可。也可以通过上传插件的方式,但是使用该方式容易上传失败。
- 数据恢复
进入方式参考第1部分的
confluence自带备份
操作。进到备份与还原界面后,我们将页面下拉到从Confluence主目录中由备份恢复
,这个是推荐的恢复方法,我们需要将原来备份的那个压缩文件上传到新服务器的/var/confluence/restore
目录下,然后刷新网页,我们就能看到下面的文本框中有一个可以选择的压缩文件,我们点击选中该文件,然后点击下方的还原。然后页面会跳转到带有进度条的页面,等到进度条下方导入数据状态变成Complete
,数据恢复操作就完成了。
6. 其余部分修改
下面的配置修改都是在
插件
部分下面完成的
一般配置
服务器基础URL:默认为我们原来服务器的IP地址,我们需要将其改为我们新服务器的IP地址每日备份管理
默认情况下,原来的服务器已经设置好了备份策略,但是由于新服务器上,我们是重新配置并导入的备份数据,所以这里的自定义备份路径默认是没有启用的,我们需要通过confluence.cfg.xml
文件,修改下面的配置
<property name="admin.ui.allow.daily.backup.custom.location">false</property>
默认配置为false
,我们将其修改为true
,然后重启confluence就生效了。为了验证效果,我们跳转到管理
的预定作业
部分,找到备份系统
,点击右边的运行
按钮,等待一会儿之后,我们查看服务器的/var/confluence/backups
目录,就可以看到备份之后的zip文件了。如果备份的自定义目录不存在,备份文件会存放在家目录的temp
目录下。