☰
Ubuntu自建Jira与Confluence:从安装到配置实战指南
2026/10/5 1:01:50 网站建设 项目流程

1. 整套环境的搭建思路与版本选型

1.1 为什么要选这套组合而不是“开箱即用”套件

先说说这套东西是干什么的。Jira是Atlassian旗下最出名的项目管理工具,团队做敏捷开发、任务跟踪、缺陷管理基本都会用到它。Confluence则是同一家的知识库产品,用来写团队文档、沉淀技术方案、做项目交接都非常顺手。两者加在一起,就是一个比较典型的“开发协作全家桶”:Jira管“事情怎么推进”,Confluence管“知识怎么沉淀”,中间通过Atlassian自家的Application Link打通用户体系和数据跳转,这也是很多中小型团队选择这套组合的真实原因。

市面上不是没有更省事的方案,比如直接用Jira Cloud或者Confluence Cloud,按月付费,什么都不用管。但问题在于,国内不少团队有数据私有化要求,或者网络访问Cloud服务不稳定,又或者想省掉长期的订阅费用,最后都会回到“自建”这条路。自建这套组合,最经典也最稳的搭配就是MySQL 5.7.x + JDK 8 + Jira 8.x + Confluence 6.x。为什么强调这个版本组合?因为Atlassian官方对数据库和Java版本有明确的兼容矩阵,盲目上MySQL 8.0、MySQL 9.x或者高版本JDK,很容易在安装向导阶段就报各种JDBC驱动不兼容的错。你如果只是自己捣鼓一个测试环境,怎么折腾都行;但如果是公司正式环境,选一个大版本组合里最稳的版本号,能少踩一半的坑。

1.2 安装之前必须想清楚的三件事

第一件事是操作系统。标题写的是Ubuntu,实际用下来Ubuntu 18.04 LTS和Ubuntu 20.04 LTS都能跑通这套环境。我个人建议如果是新装系统,优先选20.04,内核和软件源都比较新,但如果是已有的18.04服务器,也没必要为了装这个特意重装。需要注意的一点是,Ubuntu 22.04的默认MySQL源已经是8.0了,直接用apt-get install mysql-server会装成8.0版,导致后面Jira兼容性出问题,所以要装MySQL 5.7.27,必须先搞定软件源的问题,具体操作我在后面讲。

第二件事是硬件规划。Jira和Confluence都是Java应用,吃内存吃得很厉害。如果机器内存只有2G,那跑起来会非常痛苦,动不动就卡死或者OOM。我自己测下来,两台服务都启用的情况下,空闲状态大约占掉2.5G到3G内存,高峰期上到4G很正常。所以个人学习环境建议4G内存起步,公司正式环境最好8G以上。硬盘方面,Jira和Confluence的数据文件会持续增长,建议单独挂一块数据盘,或者至少预留足够的根分区空间。

第三件事是数据库规划。Jira和Confluence虽然都可以用同一个MySQL实例,但绝对不要共用同一个数据库表空间。正确做法是在同一个MySQL实例里建两个独立的database,比如jiradb和confluencedb,分别给两个应用用。这样彼此的备份恢复、权限管理、性能调优都互不干扰。很多新手图省事,给Jira和Confluence共用一套库或者干脆用root账号连数据库,后面出问题了哭都来不及。

2. MySQL 5.7.27安装与调优要点

2.1 在Ubuntu上正确安装MySQL 5.7而不是8.0

直接跳过apt-get install mysql-server这个大坑,因为Ubuntu默认源会把MySQL 8.0装进来。要装MySQL 5.7.27,最省事的办法是下载官方的APT仓库配置包,然后指定安装5.7版本。这里我记录一下自己验证过可行的步骤,供你参考。

# 下载MySQL APT仓库配置包 wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb # 安装仓库配置 sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb

安装过程中会弹出蓝底配置界面,让你选择要使用的MySQL版本,这时候选择MySQL Server 5.7,其他保持默认即可。配置好后先更新一下源,然后查看可用的mysql-server版本。

sudo apt update apt-cache policy mysql-server

输出结果里如果显示Candidate是5.7.x,说明仓库生效了。接下来安装:

sudo apt install -y mysql-server

安装完成后先确认一下版本号:

mysql --version

正常会输出mysql Ver 14.14 Distrib 5.7.x。确认无误后,接下来要做的不是急着建库,而是先跑一遍安全初始化脚本。

2.2 安全初始化、字符集与关键参数调整

安全初始化这一步很多人会跳过,但我不建议省。执行:

sudo mysql_secure_installation

这个脚本会依次问你是否设置root密码、是否删除匿名用户、是否禁止root远程登录、是否删除test库、是否重新加载权限表。除了root密码自己设一个强密码之外,剩下的建议都选Yes。特别是删除匿名用户和禁止root远程登录,这两项对生产环境安全至关重要。

初始化完成后,下一步是调整MySQL配置文件。Jira和Confluence都是对字符集非常敏感的应用,如果数据库字符集不是utf8mb4,中文内容会出现乱码。修改/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]段下加入:

[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_bin transaction-isolation = READ-COMMITTED max_allowed_packet = 256M innodb_buffer_pool_size = 1G skip-name-resolve

解释一下几个关键配置。utf8mb4是必须的,否则中文文档的emoji和生僻字会出问题;_bin排序规则是Atlassian官方文档里明确要求的,用默认的_unicode_ci或_general_ci在后续使用中可能碰到大小写和重名问题。transaction-isolation设成READ-COMMITTED也是Atlassian的硬性要求,InnoDB默认的是REPEATABLE-READ,如果保持默认,Jira和Confluence在高并发下会出现锁等待和死锁问题。max_allowed_packet这个参数很关键,Jira导入大附件包、Confluence上传大文件时如果这个值小了,会直接报“Packet too large”错误。改成256M基本够用。

改完配置后重启MySQL服务:

sudo systemctl restart mysql

然后敲命令验证一下:

mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'tx_isolation';"

确认输出分别是utf8mb4和READ-COMMITTED就对了。

2.3 创建Jira和Confluence的数据库账号

MySQL准备好之后,接下来创建两个业务的数据库和专用账号,别用root去连应用,这是最基本的规范。

CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE DATABASE confluencedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'jirauser'@'%' IDENTIFIED BY '你的强密码_1'; CREATE USER 'confuser'@'%' IDENTIFIED BY '你的强密码_2'; GRANT ALL PRIVILEGES ON jiradb.* TO 'jirauser'@'%'; GRANT ALL PRIVILEGES ON confluencedb.* TO 'confuser'@'%'; FLUSH PRIVILEGES;

这里有个细节:@'%'表示允许所有主机访问,如果Jira和MySQL在同一台机器上,可以收紧到@'localhost'。但如果你打算将Jira和MySQL分开部署,那就必须用@'%',否则应用连不上数据库。实际部署中我建议同一台物理机部署,因为Jira和Confluence对数据库连接延迟比较敏感,跨机器连MySQL会增加网络延迟和故障点。

Jira的数据库账号密码在后面配置Jira的时候要用,先记住。MySQL驱动文件mysql-connector-java-5.1.49.jar这个时候也可以提前下载好,待会要用。网上很多人误以为驱动越新越好,跑去下载MySQL 8.x的connector,结果在Jira 8.3.1里直接报ClassNotFoundException,我踩过这个坑。

3. Jira 8.3.1安装与配置实战

3.1 JDK版本控制与安装

Jira 8.3.1基于Java 8开发,官方要求JDK 1.8。如果你系统里之前装过更高版本的Java,比如OpenJDK 11或17,Jira启动时可能会报UnsupportedClassVersionError。稳妥做法是先卸载自带的Java,再装OpenJDK 8。

sudo apt remove -y openjdk-11-* openjdk-17-* default-jdk sudo apt install -y openjdk-8-jdk java -version

这里强调一下,Confluence 6.15.7同样要求Java 8,所以这一套环境装一次JDK 8,两个应用都能用。别在这上面偷懒,装两个不同版本的Java去切换,纯属自己给自己添堵。

3.2 下载安装Jira与目录约定

Atlassian官方下载页面需要登录,但从镜像站直接下载二进制的安装包更省事。Jira 8.3.1提供一个Linux安装脚本:

wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-8.3.1-x64.bin chmod +x atlassian-jira-software-8.3.1-x64.bin sudo ./atlassian-jira-software-8.3.1-x64.bin

这个安装脚本是交互式的,会有几个问题。第一个问你是否用默认端口8080,第二个问你是否安装为服务,第三个问你Jira Home目录放在哪里。建议回答:

  • 端口保持8080,如果有别的服务占用就改8081,后面我会说改端口的正确方式。
  • 安装为服务选择Yes,这样开机自启和后台运行都方便。
  • Jira Home目录建议单独规划,比如/data/jira-home,不要放在默认的/var/atlassian/application-data/jira下。理由很简单:Jira Home里存放索引、附件、备份文件,随着使用时间增长体积会越来越大。单独放在数据盘上,以后扩容和备份都灵活。

安装完成后先不要急着启动和配置,先做两件事:把MySQL驱动扔进Jira的lib目录,然后调JVM参数。

sudo cp mysql-connector-java-5.1.49.jar /opt/atlassian/jira/lib/

JVM参数调整在/opt/atlassian/jira/bin/setenv.sh里。找到JVM_MINIMUM_MEMORY和JVM_MAXIMUM_MEMORY这两行,改大一点:

JVM_MINIMUM_MEMORY="1024m" JVM_MAXIMUM_MEMORY="2048m"

至少在4G内存的机器上这样设置,否则Jira启动后很快就卡死。内存更大的机器可以继续往上加,但注意不要超过物理内存的一半,毕竟还要留内存给MySQL、Confluence和操作系统本身。

3.3 首次配置:数据库连接方式与License

启动Jira服务:

sudo systemctl start jira

等个一两分钟,浏览器访问http://你的服务器IP:8080,会出现Jira的安装向导。第一步是选择配置方式,有两种:I'll set it up myself(手动配置)和Connect to Jira Cloud(云版本)。这里必须选手动配置,别选云版本,否则就跑到云端去了。

接下来的页面让你填数据库信息。数据库类型选MySQL,然后是JDBC连接方式,这一步有自动和手动两种。自动方式其实比较省心,只需要填数据库地址、端口、数据库名、用户名和密码即可:

  • Host:如果是本机就填localhost或127.0.0.1
  • Port:3306
  • Database:jiradb
  • Username:jirauser
  • Password:你设置的jirauser密码

点击测试连接,等几秒钟。如果能通过,说明MySQL这边配置到位了。如果提示连接失败,最常见的三个原因:MySQL没监听3306端口、jirauser账号不允许远程访问、mysql-connector驱动没放到lib目录。逐个排查就行。

连上数据库后进入License Key填写环节。如果你只是个人学习,先选免费试用(Trial)拿一个30天试用授权;如果是公司正式使用,买License之后填进去即可。License类型要注意区分Jira Software和Jira Core,标题里装的是Jira Software,包含项目管理和敏捷看板功能。

向导接下来会让你设置管理员账号,邮箱、用户名、密码。这一步的建议:管理员账号用系统化的命名如admin,密码一定要强,至少12位含大小写和数字符号。后面所有用户都能在这个Jira系统里创建,所以管理员密码的安全直接决定了整个系统的安全基线。

3.4 两个重要体验问题:界面语言切换和中文补丁

Jira安装完默认是英文界面,很多国内团队看着别扭。Jira 8.3.1已经支持语言包插件,最简单的方式是登录管理员账号后,进入右上角设置(齿轮图标)-> Applications -> Versions & Downloads,然后搜索“Chinese Language Pack”,点Install安装对应的中文语言包。装完后在个人设置里把语言切换成中文即可。

但这里有个坑:系统通过这个功能下载语言包时,可能会因为网络原因下载失败或极慢。碰到了就去Atlassian官方市场手动下载中文语言包的jar文件,然后在管理后台的插件管理页面上传安装,效果一样。安装完成后重新登录,界面就变成中文了。Jira 8.3.1的中文语言包支持比较完整,菜单、权限、工作流编辑器都能正常显示中文,但部分系统邮件模板还是英文的,这个在邮件配置那节再讲。

4. 邮箱服务器配置:发通知和收回复的完整链路

4.1 配置SMTP外发邮件服务器

Jira和Confluence都用邮件来发通知,比如任务被分配、评论被回复、文档被@等等。邮件不配置,这套系统就等于一个“哑巴”,全凭用户手动上系统看。配置邮箱,首先要有一个可用的SMTP服务。

这里说三种最常见的选择。第一种,如果你的公司有自建的企业邮箱服务器,可以拿到SMTP地址、端口、账号、密码,那直接用自建的。第二种,用企业邮箱服务商,比如腾讯企业邮箱、阿里企业邮箱,它们都有SMTP服务器,端口一般是465或587。第三种,个人测试环境不想折腾,用163邮箱或者QQ邮箱的SMTP服务,但需要在邮箱后台开启SMTP授权,并生成一个授权码,这个授权码就是配置时要填的密码。

在Jira里配置SMTP,路径是管理后台 -> System -> Outgoing Mail。点击Add SMTP Mail Server,填这几项:

  • 邮件服务器名称:随便写一个,比如SMTP-163
  • From地址:必须是真实存在的发件地址,比如jira@example.com
  • 主机名:smtp.example.com或smtp.163.com
  • 端口:465或587(取决于服务商和加密方式)
  • TLS/SSL:如果端口是465,选SSL;如果是587,选STARTTLS
  • 用户名/密码:邮箱完整地址和密码授权码

端口和加密方式这个点很多人搞混。465端口走SSL,587端口走STARTTLS,这两者不能混用,选错了连接必定失败。另外,有些邮件服务器要求发件人的“From地址”必须和登录用户名完全一致,否则会报503或535错误,这个在自建服务器上尤其常见。

4.2 SMTP配置完成后必须做的一次测试

很多人在Jira里点了保存就以为完事了,结果用户一直收不到邮件,回头排查发现是SMTP根本没配置对。因此配置完SMTP后,务必在Outgoing Mail页面里找到你刚建的这个邮件服务器,点“Send Test Email”发一封测试邮件。

如果测试邮件发送失败,错误信息通常会在页面直接展示。我碰到的几个高频问题:

  • 报“Connect timed out”:SMTP服务器地址写错了,或者服务器防火墙屏蔽了465/587端口。
  • 报“Authentication failed”:账号或授权码不对。特别是在163邮箱或QQ邮箱里,密码要填的是授权码,不是邮箱登录密码。
  • 报“Unable to send message: sender address rejected”:From地址和登录用户名不一致。

测试通过后,你可以再触发一个真实事件来验证,比如在Jira里创建一个测试任务并分配给别人,看看那个人能不能收到邮件通知。这一步验证的是“事件触发邮件”链路,比单纯测试SMTP更接近真实使用场景。

4.3 收件功能:配置POP3/IMAP实现邮件回复

除了发邮件,Jira还支持通过邮件接收来创建任务。比如客户发一封邮件到support@example.com,系统自动把这个邮件转成一张工单。这个功能在生产环境非常有用,配置路径在管理后台 -> System -> Incoming Mail,然后添加邮件服务器。

选协议时建议用IMAP而不是POP3,因为IMAP不会把服务器上的邮件下载后删除,Jira可以反复读取同一封邮件的元数据,做去重。POP3则容易把邮件取走后导致原邮箱里什么都没了。端口用993走SSL,和SMTP的465类似,加密方式选SSL/TSL。

有一个需要特别留意的权限点:Jira的收件邮箱账号,只建议给它一个专用邮箱账号,不要用团队负责人的个人邮箱。因为系统会把收件箱所有邮件都处理成任务,个人邮箱里的老板私信、订阅杂志等都有可能被误创建成工单,到时候就热闹了。

5. Confluence 6.15.7安装与数据恢复踩坑

5.1 安装过程与内存分配

Confluence 6.15.7的安装和Jira非常像,同样要求Java 8,同样是bin安装包:

wget https://downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.15.7-x64.bin chmod +x atlassian-confluence-6.15.7-x64.bin sudo ./atlassian-confluence-6.15.7-x64.bin

安装向导会让你选择端口,默认是8090。如果你8080被Jira占了,8090通常是空闲的,保持不变即可。Jira Home目录改成/data/confluence-home。安装为服务也选Yes。

Confluence对内存的渴望比Jira更凶。在/opt/atlassian/confluence/bin/setenv.sh里,同样调整JVM参数:

JVM_MINIMUM_MEMORY="1024m" JVM_MAXIMUM_MEMORY="2048m"

提醒一句,如果你的服务器总内存只有4G,同时跑了MySQL、Jira、Confluence三个服务,内存会非常吃紧。建议在Confluence里把JVM最大值限制在1536m,尽量别开太多Confluence插件,否则系统负载会持续走高。

5.2 连接数据库与安装向导

Confluence第一次访问http://你的服务器IP:8090,会进入安装向导。和Jira一样,数据库类型选MySQL,连接方式支持JDBC自动和手动。按之前的规划,数据库填confluencedb,用户名填confuser,密码填对应的强密码。

Confluence对数据库连接还有一个额外要求:驱动类必须是com.mysql.jdbc.Driver,且连接URL参数中需要明确指定useSSL=false和characterEncoding=utf8。走向导自动配置时会自动生成这些参数,但如果你选择手动JDBC配置,别漏掉这些。特别是characterEncoding=utf8,少了这个参数,Confluence中文内容写入数据库后会出现乱码,而Jira通常不会有这个问题,这也是两个产品在某些细节上的差异。

安装完成后进入License和站点标题设置。站点标题随便写一个,比如“XX团队知识库”。下一步是设置管理员账号,可以直接用之前Jira里的管理员邮箱和用户名,也可以创建一个独立的Confluence管理员。

5.3 高发报错:恢复备份数据时提示isshowsignup application cannot be null

这个报错在Confluence恢复备份数据时出现的概率非常高。你手里有一份从旧系统导出的XML站点备份,或者之前环境备份的zip备份,恢复时选了对应的备份文件,点击恢复,结果跑了一会弹出:

isshowsignup application cannot be null

这个报错核心原因是:备份文件内部的部分数据与当前Confluence版本或数据库状态不一致,最常见的是在备份中包含了某些应用链接(Application Link)的数据记录,但目标环境中对应的关联数据不存在或尚未初始化,代码在查询“是否显示注册引导”时拿到了空的应用上下文。

在6.15.x版本里,这个问题往往和Application Link或Bandana表中的缓存数据有关。网上很多帖子说换成旧版本或者升级能解决,但我实际测试下来,有两个更直接的排查方向。

第一个方向:确认你恢复备份的Confluence版本和备份来源版本是否一致或接近。跨多个大版本恢复备份,几乎一定出兼容性问题。最好把目标环境版本调整为与备份来源完全一致,或者使用官方建议的可支持升级路径,先恢复到同版本,再逐步升级。

第二个方向:如果版本没问题,尝试先手动清掉Bandana表中的部分缓存数据,再用浏览器无痕模式重新访问。操作需要登录Confluence所在服务器,连接MySQL数据库:

USE confluencedb; SELECT * FROM BANDANA WHERE BANDANAKEY LIKE '%signup%';

如果能看到包含signup关键字的记录,先备份表数据,然后删除这些记录:

DELETE FROM BANDANA WHERE BANDANAKEY LIKE '%signup%';

然后重启Confluence。删除只影响页面上的“注册/引导”的显示逻辑,不会动到你的空间和页面正文数据,所以可以放心执行。

但也要说明,这个办法不是100%有效。如果备份文件本身损坏,或者备份文件中包含严重不一致的应用数据,那还是会出现同样的报错。我建议你在执行恢复前,先做一个最小化验证:在一个新安装的Confluence里不恢复任何数据,确认系统正常,再尝试恢复备份。这样可以区分是环境问题还是备份文件本身的问题。

5.4 验证码不显示的问题

Confluence的注册页面或某些操作页面需要输入验证码,但很多时候验证码图片根本不显示,只有一片空白或者一个裂开的图片图标。这个现象非常常见,原因也比较集中:Confluence使用的验证码生成库需要依赖系统的图片字体库,如果你的服务器是最小化安装,缺少fontconfig或相关字体库,验证码图片就会生成失败。

解决办法是安装字体支持库,补充安装几个包:

sudo apt update sudo apt install -y fontconfig libfreetype6 libfontconfig1 fonts-dejavu-core fonts-dejavu-extra

安装完成后重启Confluence服务,刷新页面再看验证码就能正常显示了。还有一个小概率因素是Java的Headless模式配置问题,但Jira和Confluence默认都运行在Headless模式下,只要系统字体库齐全通常没事。

5.5 与Jira集成:Application Link的双向配置

Confluence装好之后,强烈建议把它和Jira关联起来,实现真正的“项目管理+文档管理”联动。进入Confluence管理后台,找到Application Link配置项,然后添加Jira的地址。

整个过程比较直观:Confluence填Jira的地址(例如http://ip:8080),Jira那边填Confluence的地址(例如http://ip:8090),两边互相确认后,创建双向链接。创建之后,可以在Confluence的页面里嵌入Jira的issue列表,或者在Jira的任务详情里直接看到关联的Confluence页面。这个功能用大白话说就是:不用切来切去,一个页面里既有任务又有文档。

这里有一个我遇到的坑:如果在Jira和Confluence前面做了Nginx反向代理,端口映射或路径转发配置不当,会导致Application Link回调地址错误,提示“The redirect_uri is not allowed”。解决办法是在Jira和Confluence的Server Base URL设置里,把访问地址改成外部访问的真实地址(例如https://jira.example.com),保证回调地址一致。

6. 常见问题与排查技巧实录

6.1 高频问题速查表

把我在实操中遇到的高频问题整理成一个速查表,方便你遇到问题快速对号入座。

问题现象可能原因解决方案
MySQL装成了8.0Ubuntu默认源就是8.0下载官方apt仓库配置包,选择5.7版本后安装
Jira测试连接数据库失败驱动版本不对,或账号权限不足使用mysql-connector-java-5.1.49.jar,确认账号有jiradb权限
中文乱码数据库字符集不是utf8mb4修改mysqld.cnf,设置character-set-server=utf8mb4,重建库
验证码不显示系统缺少字体库安装fontconfig和相关字体包,重启Confluence
恢复备份报isshowsignup application cannot be nullBandana数据异常或版本不一致删除signup相关的Bandana记录,或调整版本为一致
收不到邮件通知SMTP端口/加密方式配置错误465用SSL,587用STARTTLS,确认授权码正确
邮件测试连接超时防火墙屏蔽端口放行465/587或改用服务商内网SMTP地址
Confluence页面加载慢Java内存不足或索引未优化调大JVM内存,定期重建索引

6.2 启动失败的日志排查思路

如果Jira或Confluence启动失败,千万不要只看服务状态。systemctl status jira只会显示启动进程退出的提示,真正的报错原因在日志文件里。

  • Jira日志路径:/opt/atlassian/jira/logs/atlassian-jira.log
  • Confluence日志路径:/opt/atlassian/confluence/logs/atlassian-confluence.log

这两份日志记录了完整的启动过程、数据库连接、插件加载、License验证信息。几乎所有启动失败都能在日志里找到根源。我见过不少人启动失败后第一反应是去问群里,但专业人士的第一反应永远是“tail -200日志文件”。比如常见报错“Failed to start bean 'webServerFactory'; nested exception is java.lang.IllegalArgumentException: Port 8080 already in use”,一眼就能看出是端口被占用了。培养从日志定位问题的习惯,能替你省下大量沟通成本。

6.3 数据备份的两种方式和恢复经验

Jira和Confluence备份常做两种。第一种是应用自带的XML/zip备份,路径上是管理后台 -> System -> Backup。这种备份适合迁移环境或者日常小规模同步,但它有一个缺点:备份的是应用层数据,不是数据库物理文件,恢复时耗时较长。第二种是MySQL层面的物理或逻辑备份,直接用mysqldump导出jiradb和confluencedb,恢复时快速且稳定。

我推荐的实际备份策略是:每周做一次完整应用备份(XML/zip),每天做一次MySQL自动备份。恢复时优先用应用备份来恢复空间结构、模板、附件和权限,用MySQL导出导入来保证数据一致性。两者配合,比单用任何一种都稳。

在一个实际案例中,我遇到过用zip备份恢复时报isshowsignup错误,后来改用mysqldump导出的SQL文件恢复到空库,再启动Confluence,整个流程就顺畅了。所以当你遇到应用备份恢复失败时,不要死磕一种方案,立刻切换另一种备份方式往往能迅速破局。

6.4 端口规划和防火墙放行清单

整套环境下涉及多个端口,提前规划清楚能避免很多“页面打不开”的尴尬。清单如下:

服务默认端口说明
MySQL3306如果对外开放,务必限制来源IP
Jira8080应用服务端口,可改
Confluence8090应用服务端口,可改
SMTP发信465或587访问外部邮件服务器,在服务器出方向放行
IMAP收信993如果配置了邮件入站处理,需要放行

如果你的服务器有防火墙(无论是iptables还是ufw),记得对上述入方向端口放行:

sudo ufw allow 3306/tcp sudo ufw allow 8080/tcp sudo ufw allow 8090/tcp

注意3306端口如果不对公网开放,尽量就别开放了,只保留本机回环地址访问:

sudo ufw allow from 127.0.0.1 to any port 3306

6.5 关于WSL用户的一些话

热词里出现了“WSL ubuntu写代码最推荐的字体接近macOS体验”这类搜索。实际工作中也确实有人把Jira和Confluence跑在Windows的WSL2里做本地开发测试。这个方案是可行的,但有两个先天问题:

第一,WSL2网络模型和物理机不同,Windows宿主通过localhost访问WSL2的服务没问题,但局域网其他设备访问会麻烦一些,需要做端口转发。第二,MySQL在WSL2的IO性能不如原生Linux,尤其是大量小文件写入时明显慢。所以WSL2更适合快速体验和做二次开发调试,真要给团队用,还是一台干净的Linux服务器更靠谱。

我做这个环境就吃过不少教训,前前后后折腾了两三天。如果你按这套流程走,大概率比我快。只是有几句话实在想写在最后:第一,遇到问题别先怀疑软件有问题,99%的情况是自己某个细节没配好,比如驱动版本不对、字符集不对、端口加密方式不对。第二,日志永远是最好的老师,别怕看日志,日志里的错误信息不会咬人,反而会直接告诉你答案。第三,整套环境一次搭好后,记得对关键的配置文件目录和数据库做一次快照或备份,出问题的时候能直接回滚,省下大量时间和精力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询