最近公司需要搭建confluence,自己也花了一些时间才搭建出来,网上破解包和版本也是良莠不齐,这里就做一下简单整理,方便后来者少走些弯路。
先把需要的包放出来方便大家下载,解压出来就是需要的所有的包
先简单罗列下步奏
首先前提准备
1.windows上安装jdk(运行破解程序获取破解码用)
2.centos服务器一台7和6都可以(建议运行内存2G)
3.centos安装好mysql数据库
4.安装confluence
5.破解confluence
6.MySQL创建用户和数据库连接
7.完成
环境准备完成后,这里windows的JDK 的安装就不多做介绍了
开始安装confluence
把解压出来的atlassian-confluence-6.12.1-x64.binn上传服务器
授与执行权限
chmod +x atlassian-confluence-6.12.1-x64.bin
./atlassian-confluence-6.12.1-x64.bin 运行安装程序开始安装
浏览器输入IP:8090可以看到下面页面说明安装成功!
然后选择语言和企业版安装后稍等片刻,切换完成点击下一步
继续下一步,不选择插件
这里就需要输入授权码了,先记下服务器ID
破解需要两步,一是破解文件,二是获取授权码
在服务器上下载/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.3.0.jar文件到Windows上本地重命名为atlassian-extras-2.4.jar
然后打开压缩包里的破解程序(这里必须Windows上装上JDK才可以)
名字随便写个英文的就好,Server ID 就是刚刚记下来的服务器ID这个ID每次安装都不一样的
然后第三步点击patch选择刚刚从服务器上拿下来的
atlassian-extras-2.4.jar文件
然后打开到文件目录下可以看到atlassian-extras-2.4.jar和atlassian-extras-2.4.bak两个文件,这里atlassian-extras-2.4.jar已经是破解好的了,将atlassian-extras-2.4.jar名字改回来atlassian-extras-decoder-v2-3.3.0.jar
上传到服务器上的/opt/atlassian/confluence/confluence/WEB-INF/lib/目录,覆盖原来的atlassian-extras-decoder-v2-3.3.0.jar
第四步,点击gen 获取授权码,然后把授权码复制,粘贴授权码,下一步。
开始到了设置数据库,选择自己的数据库,点击下一步
选择MySQL
将压缩包里面的msyql连接文件的压缩包解压后把mysql-connector-java-5.1.46-bin.jar放到
/opt/atlassian/confluence/confluence/WEB-INF/lib下,重启confluence
重启服务
sh /opt/atlassian/confluence/bin/shutdown.sh
sh /opt/atlassian/confluence/bin/startup.sh
开始设置数据库,登录
创建数据库confluence,设置字符集,创建用户tom,设置密码为admin
CREATE DATABASE confluence DEFAULT CHARACTER SET utf8 collate utf8_bin;
grant all on confluence.* to ‘tom’@’%’ identified by ‘admin’;
flush privileges;
填写数据库信息连接
我这里用的是数据库root用户,然后点击下一步
遇到的问题
报错!!!!
A system error has occurred — our apologies!
For immediate troubleshooting, consult our knowledge base for a solution.
If you would like to receive support from Atlassian’s support team, ask your Confluence administrator to create a support issue on Atlassian’s support system with the following information:
a description of your problem and what you were doing at the time it occurred
a copy of the error and system information found below
a copy of the application logs (if possible).
Your Confluence administrator can use the support request form to create a support ticket which will include this information.
We will respond as promptly as possible.
Thank you!
Return to site homepage…
The SystemInformationService could not be retrieved from the container. Therefore very limited information is available in this error report.
The SystemInformationService could not be retrieved due to the following error: java.lang.IllegalStateException: Spring Application context has not been set
Cause
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.IllegalStateException: Spring Application context has not been set
at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
caused by: java.lang.IllegalStateException: Spring Application context has not been set
at com.atlassian.spring.container.SpringContainerContext.getComponent(SpringContainerContext.java:48)
在这里插入图片描述
如果重启或者卸载后重装有可能会出现这个问题,查了好多资料也没有发现为什么怎么解决,后来重装时发现好像和一开始第一次装多了一个步奏
只需要把这个/var/atlassian/application-data/confluence 日志全部清除然后重启confluence就可以了,就是步奏要重来一遍,注意的是机器ID变了,授权码需要重新获取,我想这里记录的一些缓存日志之类才导致的。
还有就是数据库创建时注意要用utf8 collate utf8_bin的字符集才可以哦。
#!/bin/bash
# chkconfig: 2345 85 15
# Provides: atlassian
# Short-Description: Start and stop the Jira&Confluence server
# Description: Start and stop the Jira&Confluence server.
# source function library
. /etc/init.d/functions
Confluence=/opt/atlassian/confluence
startup=$Confluence/bin/startup.sh
shutdown=$Confluence/bin/shutdown.sh
export JAVA_HOME=/opt/jdk
start(){
echo -n $"Starting Confluence"
#daemon -c
$startup
RETVAL=$?
echo
}
stop(){
echo $"Stopping Confluence"
$shutdown
RETVAL=$?
echo
}
restart(){
stop
start
}
status(){
numproc=`ps -ef | grep confluence | grep -v "grep confluence" | wc -l`
if [ $numproc -gt 0 ]; then
echo "Confluence is running..."
else
echo "Confluence is stopped..."
fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
需要对 文件赋可执行权限
chmod +x /etc/init.d/confluence
添加服务
chkconfig --add confluence
查看confluence服务启动级别
chkconfig --list
保证2-5开启
测试启动confluence
service confluence start
启动完 就可以用 systemctl start confluence 操作完命令观察日志变化,启动的比较慢。
首先安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
编写mysql-confluence-compose.yaml 文件,安装mysql和confluence服务。confluence服务依赖于mysql。
mysql:
container_name: mysql
restart: always
image: mysql:5.7
ports:
- "3307:3307"
environment:
MYSQL_ROOT_PASSWORD: 3a99bce0c4991b91
volumes:
- /opt/docker/mysql/conf:/etc/mysql/mysql.conf.d
- /opt/docker/mysql/data:/usr/local/mysql/data
- /opt/docker/mysql/logs/:/usr/local/mysql/logs
confluence:
container_name: wiki_confluence
restart: always
image: cptactionhank/atlassian-confluence:latest
ports:
- "8090:8090"
links:
- mysql:mysql
docker-compose -f mysql-confluence-compose.yaml up
跟源码装的不同的地方是激活需要把容器里对应版本的jar包拷贝到主机
docker cp wiki_confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /opt/docker/mysql
管理员账号登录Confluence,点击右上角的"一般配置"-“每日备份管理”,如下图(默认配置):
上面这是默认的整个Confluence的备份,默认每天2点左右都会整体备份一次!恢复或迁移的时候,可以直接用这里的zip打包数据进行恢复。除此之外,还可以点击"一般配置"-"备份与还原"里面的备份进行手动备份。
数据备份目录:/var/atlassian/application-data/confluence/backups
(“站点管理”->“每日备份管理”)
附件所在目录:/var/atlassian/application-data/confluence/attachments
注意附件数据要手动备份,可以写shell脚本定时备份。
除了上面的Confluence整体备份,还可以选择针对某个空间进行手动导出、导入的方式进行备份和恢复,这个一般是在迁移的时候用到。具体做法如下:
点开某个空间后,依次点击左下角的"空间管理"-“概览”-“内容工具”-“导出”(选择xml格式)
导出的文件一般会放在服务器的/var/atlassian/application-data/confluence/temp/路径下。
把原wiki的zip最新的压缩包传到本地,然后在新的wiki上点击
当备份数据比较大时,可以将备份数据拷贝到/var/atlassian/application-data/confluence/restore路径下,从Confluence主目录中进行恢复。如下:
注意:针对某个空间的备份:
下篇介绍如何解决配置confluence发邮件的问题