君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 应用服务

    • 同步工具:Resilio Sync
    • 免费文本生成语音
    • 安装 Confluence 构建知识库
      • 一、常规部署
        • 1.数据库
        • 2.知识库
        • 解压部署 Confluence
        • 拷贝 MySQL 驱动
        • 修改配置文件
        • 启动 Confluence
        • 初始化 Confluence
      • 二、容器部署
        • 1.数据库
        • 2.知识库
        • 3.Compose
      • 三、其他设置
        • 1.反向代理
        • 设置目录
        • 配置连接器
        • 配置 Nginx
      • 四、故障及优化
        • 1.附件乱码
        • 2.InnoDB 日志文件大小
        • 3.用户没有权限
        • 4.无法创建用户
        • 5.其他问题
      • 五、服务迁移
        • 1.大致步骤
    • 内网穿透:frp
    • 使用 bitwarden_rs 搭建自用密码服务器
    • 安卓手机 Magisk & Xposed 模块
    • 部署 Oneindex 搭建个人网盘
    • 使用 Cloudflare Workers 创建短网址程序
    • 苹果自动化:Workflow
    • 保存 Windows 10「聚焦」功能的精美壁纸
    • 记忆辅助软件:Anki
    • Photogallery X3
    • 跨平台网络优化:Surge
    • 使用 IFW 调教安卓应用
  • 网页浏览

  • 诗词歌赋

  • 其他收藏

目录

安装 Confluence 构建知识库

操作系统:CentOS
安装目录:/app/service/confluence
数据目录:/app/data/confluence

# 一、常规部署

JDK 环境设置

# 1.数据库

MySQL 相关 修改 MySQL 配置文件:my.cnf,详细见 Confluence 数据库连接说明 (opens new window)

# 指定默认字符设置为 utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_bin
# 将默认存储引擎设置为 InnoDB
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
1
2
3
4
5
6
7
8
9

创建 confluence 数据库和用户

CREATE DATABASE confluence CHARACTER SET utf8mb4 COLLATE 'utf8mb4_bin';
grant all privileges on confluence.* to 'confluence'@'localhost' identified by 'confluence@Abc#12345';
SET PASSWORD FOR 'confluence'@'localhost' = PASSWORD('Abc#12345');
1
2
3

# 2.知识库

点击 (opens new window)下载想要的版本(如:atlassian-confluence-7.13.7.tar.gz)并上传到安装目录;OpenJDK 必须使用 fontconfig,需要提前安装

yum install -y fontconfig
1

# 解压部署 Confluence

tar -zxvf atlassian-confluence-7.13.7.tar.gz -C /app/service
mv /app/service/atlassian-confluence-7.13.7 /app/service/atlassian-confluence
mkdir -p /app/data/confluence
echo 'confluence.home=/app/data/confluence/' > /app/service/atlassian-confluence/confluence/WEB-INF/classes/confluence-init.properties
1
2
3
4

# 拷贝 MySQL 驱动

cp confluence/mysql-connector-java-8.0.22.jar /app/service/atlassian-confluence/confluence/WEB-INF/lib/
ll /app/service/atlassian-confluence/confluence/WEB-INF/lib/*mysql*
1
2

# 修改配置文件

vi /app/service/atlassian-confluence/conf/server.xml
1

# 启动 Confluence

cd /app/service/atlassian-confluence/bin
./start-confluence.sh
1
2

# 初始化 Confluence

浏览器访问 ip:8090 开始安装,语言选中文,产品安装下一步,获取应用部分不选直接下一步

根据服务器 ID:BF6I-AQX1-33EY-YALN,生成授权码,并填写到相应的输入框中

java -jar /opt/atlassian/atlassian-agent.jar -p conf -m 10086@qq.com -n Yuwei -o YQKJ -s BF6I-AQX1-33EY-YALN
1


使用自己的数据库,用的 MySQL,Confluence 需要一个驱动程序以连接到 MySQL


点击提供的连接下载好驱动程序,将 .jar 文件放入 /opt/atlassian/confluence/confluence/WEB-INF/lib 下

unzip mysql-connector-java-5.1.49.zip
cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49.jar /opt/atlassian/confluence/confluence/WEB-INF/lib
1
2

重启 Confluence 并刷新页面继续安装:/etc/init.d/confluence restart 然后通过连接字符串连接数据库,等待完成设置

为了提前熟悉使用,加载内容选示范站点

最后配置管理员即可

# 二、容器部署

# 1.数据库

mkdir -pv /opt/mysql/{data,logs}
vi my.cnf
1
2
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
port = 3306
#设置 utf8mb4 编码
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
skip-character-set-client-handshake
#隔离级别,Confluence 要求读提交
transaction-isolation = READ-COMMITTED
#修改加密方式
default_authentication_plugin = mysql_native_password
#不区分大小写
lower_case_table_names = 1
#跳过 DNS 反查询
skip-name-resolve = 1
max_connections = 20000
open_files_limit = 65535
max-connect-errors = 10000
log-error = /var/log/mysql/error.log
#慢查询
slow_query_log = 1
long_query_time = 10
#min_examined_row_limit = 1000
slow_query_log_file = /var/log/mysql/slow_query.log
#InnoDB 日志文件大小
max_allowed_packet = 128M
innodb_log_file_size = 512M

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

创建构建数据库的 Dockerfile 文件

vi MySQL-Dockerfile

FROM mysql:8.0.22
USER root
COPY "my.cnf" /etc/
1
2
3
4
5

创建并启动 MySQL 容器

docker build -f MySQL-Dockerfile -t mydb:8.0.22 .
docker run -d \
	--restart=always \
	--name mydb \
	-p 3306:3306
	--privileged=true \
	-v /app/data/mysql/:/var/lib/mysql \
	-v /app/logs/mysql:/var/log/mysql \
	-e MYSQL_ROOT_PASSWORD=root@123 \
	mydb:8.0.22
1
2
3
4
5
6
7
8
9
10
[ERROR] [MY-010187] [Server] Could not open file '/var/log/mysql/error.log' for error logging: Permission denied
[ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
1
2

创建 Confluence 数据库

docker exec -it mydb /bin/bash
mysql -uroot -proot@123
CREATE DATABASE confluence CHARACTER SET utf8mb4 COLLATE 'utf8mb4_bin';
ALTER USER 'root'@'%' IDENTIFIED BY 'root@123' PASSWORD EXPIRE NEVER;
1
2
3
4
docker exec -it mydb /bin/cat /etc/hosts
1

# 2.知识库

创建构建文件夹, 下载注册机 (opens new window)并解压到该目录

mkdir confluence
vi Dockerfile
1
2

编辑 Dockerfile

FROM atlassian/confluence-server:7.13.7
USER root
#将代理破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/confluence/
#将 MySQL 驱动加入容器
COPY "mysql-connector-java-8.0.22.jar" /opt/atlassian/confluence/confluence/WEB-INF/lib/
#设置启动加载代理包
RUN echo '\nexport CATALINA_OPTS="-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/confluence/bin/setenv.sh
1
2
3
4
5
6
7
8

开始构建并运行 Confluence 容器

docker build -f Dockerfile -t mykb:7.13.7 .
docker run -d \
	--restart always \
	--name mykb \
	-v /app/data/confluence:/var/atlassian/application-data/confluence \
	-v /app/conf/confluence:/opt/atlassian/confluence/conf \
	-p 8090:8090 -p 8091:8091 \
	-e JVM_MINIMUM_MEMORY=2048m \
	-e JVM_MAXIMUM_MEMORY=4096m \
	-e TZ="Asia/Shanghai" \
	mykb:7.13.7
1
2
3
4
5
6
7
8
9
10
11

初始化 Confluence:浏览器访问 ip:8090,复制 Server ID:BYPA-J1TQ-72BY-ZY10
image.png
进入容器,运行

docker ps -all
docker exec -it kb java -jar /opt/atlassian/confluence/atlassian-agent.jar -p conf -m i@yuwei.cc -n JunYu -o JYZM -s BYPA-J1TQ-72BY-ZY10
1
2

image.png
将计算出来的 license code 拷贝到下图所示红框中,下一步
image.png
使用自己的数据库,MYSQL 需要下载驱动 (opens new window),5.7 和 8.0 不一样 (opens new window),下载好以后放到容器指定目录,也可以添加 COPY 构建镜像

docker cp mysql-connector-java-8.0.22.jar kb:/opt/atlassian/confluence/confluence/WEB-INF/lib
1

重启容器,网页访问继续配置
image.png
image.png

# 3.Compose

使用容器编排的方式部署,先编辑 YAML 文件:vi docker-compose.yml

version: '3' #语法格式版本
services: #定义服务
  kb: #服务名称
      build: #Dockerfile 路径,可以是相对/绝对路径
        context: kb #Dockerfile 名称
        dockerfile: Dockerfile
      volumes:  #相当于 docker run -v
        - "/app/data/confluence:/var/atlassian/application-data/confluence" #主机路径:容器路径
      command: [ #相当于 Dockfile 中的 CMD 且优先级更高
      ]
      container_name: kb #容器名称
      depends_on: #该服务依赖的其他服务,可修改启动顺序
        - mysql
      ports: #映射端口
        - "8090:8090" #主机端口:容器端口

  mysql:
    #build:
      #context: mysql
      #dockerfile: Dockerfile
    image:mysql:8.0.22
    ports:
      - "3306:3306"
    environment: #相当于 docker run -e
      MYSQL_ROOT_PASSWORD: root@123 #初始化的数据库密码
      MYSQL_DATABASE: junyu #初始化的数据库名称
    container_name: mysql
    restart: always #自动重启
    volumes:
      - "/app/data/mysql:/var/lib/mysql"
    command: [ #相当于 Dockfile 中的 CMD 且优先级更高
      "mysqld",
      "--lower_case_table_names=1", #设置表名不区分大小写
      "--default-authentication-plugin=mysql_native_password", #设置密码认证插件,低于 8.0.4 版本忽略
      "--character-set-server=utf8mb4",
      "--collation-server=utf8mb4_general_ci",
      "--max_connections=3000" #设置最大连接数
    ]    
    
networks:
  default:
    external:
      name: kbnet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

开始编排

docker-compose up -d
1

# 三、其他设置

# 1.反向代理

使用二级域名访问,直接反代即可;实现 http://example:8090/conference 使用下述步骤:

# 设置目录

在 Tomcat 中设置 Confluence 应用程序路径(主机名和端口之后的部分),编辑<安装目录>/conf/server.xml,找到“上下文”定义:

 <Context path=""
                 docBase="../confluence"
                 debug="0"
                 reloadable="false"
                 useHttpOnly="true">
1
2
3
4
5

并将其更改为

 <Context path="confluence"
                 docBase="../confluence"
                 debug="0"
                 reloadable="false"
                 useHttpOnly="true">
1
2
3
4
5

重新启动 Confluence,并检查您是否可以在 http://example:8090/conference (opens new window)

# 配置连接器

先停止 Confluence,找到并编辑文件:/opt/atlassian/confluence/conf/server.xml;按实际情况修改 proxyName、proxyPort、scheme 的值,保存文件:

    <Connector port="8090"
               maxThreads="48"
               minSpareThreads="10"
               connectionTimeout="20000"
               enableLookups="false"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               redirectPort="8443"
               acceptCount="10"
               debug="0"
               URIEncoding="UTF-8"
               secure="false"
               scheme="http"
               proxyName="www.example.com"
               proxyPort="443"
               maxHttpHeaderSize="8192" />
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

请确保包含的值正确协议以及代理名称,如果是 http 访问请如下配置

    <Connector port="8090"
               maxThreads="48"
               minSpareThreads="10"
               connectionTimeout="20000"
               enableLookups="false"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               redirectPort="8443"
               acceptCount="10"
               debug="0"
               URIEncoding="UTF-8"
               secure="false"
               relaxedPathChars="[]|"
               relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
               scheme="http"
               proxyName="www.example.com"
               proxyPort="80"
               maxHttpHeaderSize="8192" />
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

修改 context -> path 的值,不要使用内置的路径,例如:resources 等,保存文件

        <Context path="/doc"
                 docBase="../confluence"
                 debug="0"
                 reloadable="false"
                 useHttpOnly="true">
1
2
3
4
5

找到并编辑文件:/var/atlassian/application-data/confluence/confluence.cfg.xml,修改 confluence.webapp.context.path 字段

<property name="confluence.webapp.context.path">/doc</property>
1

重启启动 Confluence,需要在缓存管理里清空一遍缓存

# 配置 Nginx

需要在 Nginx 中指定一个监听服务器,如下例所示:将以下内容添加到 Nginx 配置中,替换服务器名称以及 SSL 证书和密钥的位置等

location /confluence/ {
    proxy_pass http://192.168.10.20:8090/confluence/;
    proxy_redirect off;
    client_max_body_size 100m;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
1
2
3
4
5
6
7
8

# 四、故障及优化

# 1.附件乱码

复制并安装字体

docker cp ./zh_CN docker:/tmp/
cp -r /tmp/zh_CN /usr/share/fonts/
fc-list
1
2
3

修改 setenv.sh 脚本

docker cp  kb:/opt/atlassian/confluence/bin/setenv.sh setenv.sh
vim /opt/atlassian/confluence/bin/setenv.sh

#搜索`CATALINA_OPTS`, 在最后一个匹配行后追加
CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/usr/share/fonts/Zh_CN/ ${CATALINA_OPTS}"
1
2
3
4
5

备份并清空缓存文件

#备份目录
cp -r /var/atlassian/application-data/confluence/viewfile/ /root/viewfile_xxxxxx
cp -r /var/atlassian/application-data/confluence/shared-home/ /root/shared-home_xxxxxx
cp -r /var/atlassian/application-data/confluence/thumbnails/ /root/thumbnails_xxxxxx
#清空文件
rm -rf /var/atlassian/application-data/confluence/viewfile/*
rm -rf /var/atlassian/application-data/confluence/thumbnails/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-document/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-document_hd/*
rm -rf /var/atlassian/application-data/confluence/shared-home/dcl-thumbnail/*
1
2
3
4
5
6
7
8
9
10

重启服务

/opt/atlassian/confluence/bin/stop-confluence.sh && /opt/atlassian/confluence/bin/start-confluence.sh
1

# 2.InnoDB 日志文件大小

设置太小会 先停止 Confluence 和 MySQL 服务

将 logfile 转移到备份目录,修改配置文件后启动 MySQL 会重新生成

cd /app/data/mysql
mv ib_logfile* /app/backup/mysql
mv aria_log* /app/backup/mysql
1
2
3

vi my.cnf 增加max_allowed_packet = 128M和innodb_log_file_size = 512M

注意

不建议删除内置用户组

# 3.用户没有权限

同事将 confluence 默认的管理和用户组全删了,新建了管理组,然后除了管理员其他的都没有权限了

然后发现,除了空间给组添加权限以外还需要在管理后台全局权限菜单给相应的组设置权限

# 4.无法创建用户

同事将 confluence 默认的管理和用户组全删了,然后导致无法创建用户,重新创建“confluence-users”组就好了

confluence-users:这是所有新用户的默认组,分配给该组的权限将分配给所有新注册的 Confluence 用户

如果还有问题进数据库查看并更新相关的默认组

警告

修改数据库前,一定要先备份

SELECT bandanavalue FROM bandana WHERE bandanakey='atlassian.confluence.settings';
1

然后将结果(XML 格式)拷贝出来,搜索并修改<defaultUsersGroup>标签对的值,然后将复制出来的数据拷贝到更新语句中执行

UPDATE bandana SET bandanavalue='修改后的数据' WHERE bandanakey='atlassian.confluence.settings';
1

# 5.其他问题

管理左下角故障排除和技术支持工具中找到 Confluence 自带的日志分析器,扫描,点击可以查看具体的报错及解决办法

# 五、服务迁移

原来没有考虑到二级目录以及对外访问的问题,所以使用的是官方镜像,没有进行修改,最好的做法就是重新迁移

# 1.大致步骤

  1. 在新环境安装部署 Confluence
  2. 备份 Confluence【旧】 数据并迁移到现有环境
  3. 备份 Confluence【旧】 数据库并导入新库
  4. 重启 Confluence【新】,进行检查测试
    1. Nginx 配置代理和证书,增加访问的安全性

#

网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
免费文本生成语音
内网穿透:frp

← 免费文本生成语音 内网穿透:frp→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式