Author:Arsen
Date:2024/05/18
前言
Confluence 是什么?
Confluence 是一个由 Atlassian 公司开发的企业协作和知识管理工具。它主要用于团队成员之间的协作,支持文档创建、知识库管理、项目管理等功能。
Confluence 是开源的吗?
Confluence 不是开源软件。它是由 Atlassian 公司开发和维护的商业软件。用户需要购买许可证才能使用 Confluence 的全部功能,虽然 Atlassian 提供了不同的定价计划以适应各种规模的企业和团队需求。
接下来,将演示如何在 Linux 系统上构建这样一套 Wiki 系统。
一、环境
1、主机
服务器配置:至少 4 核 8G,要不然很卡的
Host | OS | Version |
---|---|---|
4C/8G 192.168.56.120 | CentOS | 7.9 |
2、服务
Service | Version | 备注 |
---|---|---|
Java | 11.0.2 | Java 环境 |
MySQL | 5.7.36 | 持久化存储 |
Confluence | 8.5.9 | 企业级 Wiki |
二、部署
2.1 Java
部署 Java 环境,比较简单,略过。
2.2 MySQL
部署 MySQL 环境,用于 confluence 数据存储。
1、安装
执行 MySQL 安装脚本(需要的给我留言即可),比较简单,略过。
2、创建数据库
数据库配置
官方参考:https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html
# 登录数据库
mysql -u root -p
# 创建数据库(使用utf8mb4字符集,不能使用utf8mb4_unicode_ci排序规则,否则会报如下图错)
CREATE DATABASE confluence CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
数据库隔离级别配置
官方参考:https://confluence.atlassian.com/confkb/confluence-fails-to-start-and-throws-mysql-session-isolation-level-repeatable-read-is-no-longer-supported-error-241568536.html
# 修改数据库隔离级别为READ-COMMITTED,否则包如下图错误
vim /data/mysql/conf/my.cnf
配置修改完成后,重启 MySQL
docker restart mysql
3、创建数据库用户并授权
# 创建用户
CREATE USER 'confluence'@'%' identified by 'confluence';
# 用户授权
grant all PRIVILEGES on *.* to confluence@'%';
# 刷新权限
flush privileges;
2.3 Confluence
部署 Confluence 服务
1、下载 Confluence 安装包
https://www.atlassian.com/software/confluence/download-archives
选择长期支持版本。
2、将下载的安装包上传值服务器
安装包名为:atlassian-confluence-8.5.9-x64.bin
3、atlassian-confluence-8.5.9-x64.bin 授予可执行权限
chmod +x atlassian-confluence-8.5.9-x64.bin
4、开始安装 Confluence
./atlassian-confluence-8.5.9-x64.bin
输入:o
输入:1
输入:i
输入:y
5、浏览器访问
http://192.168.56.120:8090/
设置语言为中文(默认为英文):
6、开始产品安装
记录服务器 ID:
B1R6-8U6X-BQKV-JISA
因为我们在上一步安装的时候选择了商业安装,因此这里需要输入授权码,这里是为了学习使用,我们就对该产品进行pj。注意:pj版禁止商业使用,请支持正版。
7、pj Confluence
先停止 Confluence 服务:
/etc/init.d/confluence stop
上传 MySQL 驱动包:
MySQL 5.7 和 MySQL 8.0 需下载不同的驱动(参考 Confluence 官方):
MySQL 官方下载:https://downloads.mysql.com/archives/c-j/
下载后解压后会得到 mysql-connector-java-5.1.49-bin.jar 包,然后将包上传到服务器 /opt/atlassian/confluence/confluence/WEB-INF/lib/ 下
tar xzf mysql-connector-java-5.1.49.tar.gz
cp ./mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/
上传pj jar 包:
下载地址:https://oskr.cn/upload/2024/02/Crack.jar
上传目录:/opt/atlassian/confluence/bin/
# 这里是直接下载(也可手动上传至/opt/atlassian/confluence/bin/目录下)
wget -O /opt/atlassian/confluence/bin/Crack.jar https://yun.ittel.cn:1443/f/166bc403014d4836bb1d/?dl=1
添加启动项:
sed -i.bak '$a export JAVA_OPTS="-javaagent:/opt/atlassian/confluence/bin/Crack.jar ${JAVA_OPTS}"' /opt/atlassian/confluence/bin/setenv.sh
启动 Confluence 服务:
/etc/init.d/confluence start
获取授权码:
-s:我们上面记录的服务器的 ID 值(这个值一定不要写错)
java -jar /opt/atlassian/confluence/bin/Crack.jar -d true -p conf -m arsen@163.com -n arsen -o http://192.168.56.120 -s B1R6-8U6X-BQKV-JISA
会生成一个授权码(licence)
将上图中的授权码填入 Confluence 的许可证密钥框内,然后继续下一步
非集群
设置数据库地址,并点击【测试连接】,无误后,继续点击【下一步】
示范站点
在Confluence中管理用户和组
配置系统管理员帐户
设置完毕,点击【开始】
设置一个空间存储我们的工作,实际中我们会以项目组来命名
如果你是新手,点击【让我们开始吧】,否则跳过即可
结束
三、实践
3.1 创建空间
目的:每个空间的成员只能查看其空间的内容,无法访问其他空间内容(除非将他授权给其他空间)
此时你会发现,我们创建的空间名乱码显示了(貌似不支持中文)
解决中文 ??? 乱码显示问题:修改数据库配置文件字符集即可
vim /data/mysql/conf/my.cnf
# 启动MySQL
docker restart mysql
# 最好也重启一下confluence
/etc/init.d/confluence restart
再次创建空间后,发现已经没有乱码了,但是之前创建的有乱码的空间依然是乱码。
3.2 页面树结构
我们可以在对应的空间中创建页面树结构,方便管理和查阅。以创建的【公共空间】为例
1、先进入对应空间
2、创建空白页
3、查看页面树结构
如果我们想在【服务部署】下在新增多个模块,我们可以这样做:
依次添加,最终的效果如下,如果你想要一个美观的排序,你可以在前面添加标识,会自动升序排列(如下图):
3.3 用户权限限制
首先 confluence 创建好空间后,默认是每个人都可以查看 confluence 上的所有空间的。但在实际应用中,每个产品的人员一般只能访问自己项目组的空间,如何实现?
1、创建用户
2、创建用户组
如果不创建用户组,那创建的用户会默认在 confluence-users 组中,该组就有看所有空间的权限,因此我们需要创建组来限制权限。
将成员添加到组:
找到空间权限:
权限管理:
编辑权限:
添加组,并回收默认组权限(避免创建用户时 - 用户的权限过大):
先给查看的权限:
除此之外,全局权限中 ops 组还需要授权为【可用】
3、首先限制空间对所有用户的访问
有一下三个权限,根据实际选择即可。
这里我选择第三个
- 检索已经存在的用户
- 并添加至该空间中
3、arsen 用户登录验证
可看到,arsen 用户只有 devops 这个目录:
除以上基本配置外,还有其他的功能特点就太多了,自己去琢磨吧,这里不再一一演示了。
总结
1、部署很简单,看官方文档足够,其他的都是瞎扯,推荐看官方部署文档;
2、confluence 功能丰富,适合企业级 Wiki;
3、支持正版,拒绝盗版/pj;
4、仅学习所用,非商业用途。
附件: 以下 my.cnf 配置适用于 MySQL 5.7,如果你是 MySQL 8.0 的请参考官方配置
[client]
default-character-set=utf8mb4
port = 3306
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
default-storage-engine=INNODB
transaction-isolation=READ-COMMITTED
max_allowed_packet=256M # 决定上传至confluence 的大小
innodb_log_file_size=500M
#innodb_force_recovery = 6 # 数据恢复参数,在数据表结构异常时使用(缺省值为0)
port = 3306
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
symbolic-links=0
max_connections = 2000
max_user_connections = 1900
max_connect_errors = 100000
max_allowed_packet = 50M
lower_case_table_names=1
skip-name-resolve
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
binlog_format=row
log_bin_trust_function_creators = 1
optimizer_switch = derived_merge=off
[mysql]
default-character-set=utf8mb4
—END