本文介绍如何在Linux服务器上搭建JIRA,以及JIRA中数据的备份和恢复。
顺带一提,我在安装过程中也遇到大大小小不少问题,我也会把我遇到的这些问题进行汇总,希望对你有所帮助。
系统配置 本地环境
服务器环境
CentOS 7.6 64位
Java 8
Mysql & MariaDB
Nginx
搭建环境 安装java 8 使用Linux安装java一直以来都很方便,只需要yum安装即可。
1 2 3 4 5 yum -y install java java -version
如果输入java -version
之后显示为1.8.0_xxx
就说明java8已经安装成功。
安装Mysql&MariaDB 安装jira之前我们还需要数据库,这里我们安装MariaDB
,这是一个Mysql的分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品 –转自菜鸟教程点击这里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 yum -y install mariadb-server systemctl enable mariadb.service systemctl start mariadb.service mysqladmin -u root -password your_password mysql -u root -p
问题处理
无法登录数据库
1 2 ERROR 1045 (28000): Access denied for user 'root' @'localhost' (using password: YES)
猜测为之前安装过数据库存在对应的账号和密码,所以导致登录不成功。或者是你输入的密码有误。
参考了一篇解决方法:https://blog.csdn.net/weixin_34185512/article/details/92056178
这一篇博客也很详细的讲明了如何在忘记了root的账号密码后,如何重置Mysql
和MariaDB
数据库的方法。
补充:
在上面的解决方法中,最后博主需要你停止掉你手动开启的“启动数据库而不加载授权表或启动网络”进程。我在当时并没有关闭掉进程导致遇到了后续第二个问题。如果这里你输入和上面博客说的那样无法起效果的话,请移步到我下面的第二个问题。
无法启动MariaDB数据库
1 2 3 mysqld_safe A mysqld process already exists mariadb.service: Main process exited, code=exited, status=1/FAILURE
根据上面提示来看,是还有关于mysql的进程还在运行导致启动MariaDB失败。这也是我在上文提到的进程没有清理干净造成的。下面我们只需要手动清理掉进程就可以了
1 2 3 4 mysql 1166 0.0 0.0 113260 1592 ? Ss 09:43 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 1416 0.1 1.3 2370216 214756 ? Sl 09:43 0:37 /usr/libexec/mysqld --basedir=/usr root 4166 0.0 0.0 112664 972 pts/1 S+ 15:31 0:00 grep --color=auto mysqld
接下来使用kill
指令来清除掉残留的进程
当我们的进程被清理到无法在被清理之后,我们再次尝试开启MariaDB。
1 2 3 4 5 systemctl restart mariadb.service systemctl status mariadb.service
出现下面的返回就证明成功了
数据库配置 然后我们使用mysql -u root -p
进入到mariadb中,我们需要创建储存我们jira数据的数据库和jira用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE DATABASE jira CHARACTER SET utf8 COLLATE utf8_bin; grant all on jira.* to 'jira' @'%' identified by 'yourPassword' ; flush privileges; show databases; quit;
我们可以看到成功创建了一个存储jira信息的数据库:
手动测试一下jira链接数据库的效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 mysql -u jira -h 81.71.76.7 -p Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 7 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help . Type '\c' to clear the current input statement. MariaDB [(none)]>
安装JIRA 接下来就是这一次的主角JIRA了,这里我用的是官网 上的jira的7.3.8 版本atlassian-jira-software-7.3.8-x64.bin
,首先我们现在我们的根目录下创建一个名为opt
的目录。
创建目录:cd /opt/cd/
接下来我们就要把我们在官网 上下载好的jira安装包给放到该/opt
目录下。同时我也推荐使用工具FileZilla
来处理。
在远程站点找到为/opt
目录下,直接把安装包拖动到该目录下就好。
输入命令:ll
查看安装包
这里我们需要修改一下jira安装包的文件权限:
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 44 45 46 chmod +x atlassian-jira-software-7.10.0-x64.bin./atlassian-jira-software-7.10.0-x64.bin Unpacking JRE ... Starting Installer ... Apr 17, 2020 10:50:23 PM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. Apr 17, 2020 10:50:23 PM java.util.prefs.FileSystemPreferences$2 run INFO: Created system preferences directory in java.home. This will install JIRA Software 7.10.0 on your computer. OK [o, Enter], Cancel [c] o Choose the appropriate installation or upgrade option. Please choose one of the following: Express Install (use default settings) [1], Custom Install (recommended for advanced users ) [2, Enter], Upgrade an existing JIRA installation [3] 1 Details on where JIRA Software will be installed and the settings that will be used. Installation Directory: /opt/atlassian/jira Home Directory: /var/atlassian/application-data/jira HTTP Port: 8080 RMI Port: 8005 Install as service: Yes Install [i, Enter], Exit [e] i Extracting files ... Please wait a few moments while JIRA Software is configured. Installation of JIRA Software 7.10.0 is complete Start JIRA Software 7.10.0 now? Yes [y, Enter], No [n] y Please wait a few moments while JIRA Software starts up. Launching JIRA Software ... Installation of JIRA Software 7.10.0 is complete Your installation of JIRA Software 7.10.0 is now ready and can be accessed via your browser. JIRA Software 7.10.0 can be accessed at http://localhost:8080 Finishing installation ...
备注:
jira的安装目录为:/opt/atlassian/jira
;
数据目录为:/var/atlassian/application-data/jira
;
默认端口为:8080
;
查看jira端口:ss -lntup|grep 8080
更新JIRA 我们先停止jira进程:/etc/init.d/jira stop
。
接下来就可以使用FileZilla
将我们在系统配置中提到的jira安装包中的两个文件atlassian-extras-3.2.jar & mysql-connector-java-5.1.39-bin.jar
上传到/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
目录下,覆盖掉原来的即可。
检查2个文件是否上传成功:
1 2 3 4 5 6 cd /opt/atlassian/jira/atlassian-jira/WEB-INF/libll atlassian-extras-3.2.jar ll mysql-connector-java-5.1.39-bin.jar
然后我们再重新启动jira:/etc/init.d/jira start
查看jira的端口:netstat -lntup|grep 8080
然后我们需要关闭服务器的防火墙来开放jira所使用的端口,不然浏览器无法访问。阿里云服务器使用安全组配置来管理端口开发的,所以不需要担心服务器的安全问题。(腾讯服务器上也可以设置安全组)
1 2 3 4 5 systemctl disable firewalld.service systemctl stop firewalld.service systemctl status firewalld.service
看见防火墙状态变灰色的就好
设置JIRA 接下来就可以去网页里设置jira了
在浏览器中输入网址:http://你的服务器主机地址:8080
具体教程请看:https://blog.csdn.net/weixin_43822878/article/details/105875443
该教程很详细讲述了配置流程,但是还是有一些需要注意的地方:
配置数据库时,主机为你的服务器ip地址,用户可以用你登陆数据库时候用的root
账户。
建议:最好将你在jira上注册的许可证粘贴下来保存在本地,以便于后续使用。
如此可见,我们的jira网站已经是可以成功部署了。
下载并配置Nginx 我们虽然配置好了jira网站,但是目前我们的网站还是只能通过ip地址来访问,如果我们想用我们自己的域名来访问jira就需要nginx
来代理。
首先我们需要下载nginx
1 2 3 4 5 6 yum install -y nginx systemctl start nginx.service
然后我们cd到目录cd /opt/atlassian/jira/conf
下
然后我们进入到server.xml
中去修改一下配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <Service name="Catalina" > <Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false" />
配置nginx 然后我们找到nginx配置文件的目录
cd /etc/nginx/
我们找到nginx.conf
文件,然后进入该文件进行配置:
vim nginx.conf
随后我们对该文件的配置如下
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 44 45 46 47 48 49 50 51 52 53 54 55 user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; gzip on; gzip_static on; gzip_proxied any; gzip_min_length 4000; gzip_buffers 8 16k; gzip_comp_level 3; gzip_types text/plain text/css text/javascript application/javascript application/x-javascript application/json application/xml; gzip_vary on; ssi on; ssi_types text/shtml; underscores_in_headers on; upstream jira { server localhost:8080; keepalive 20; } include /etc/nginx/conf.d/*.conf; }
操作步骤为:
首先先切换成英文 输入法
按INSTERT
键来写入数据
同时按住shift
键和:
键(shift + :
)来进入命令输入行
输入wq!
来保存修改
然后我们cd 到/etc/nginx/conf.d/
目录下,增加一个新文件。这里不会新增文件的小伙伴用FileZilla
来创建文件。我们只需找到该目录下,然后右键鼠标来创建文件jira.conf
。
然后在进入该文件进行修改
vim jira.conf
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 server { listen 80; server_name your.domain.name; if ($host != 'your.domain.name' ){ return 403; } location ~ ^/{ proxy_pass http://jira; proxy_redirect off; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_connect_timeout 30s; proxy_read_timeout 300s; proxy_buffers 32 64k; proxy_buffer_size 64k; client_max_body_size 100m; } location / { root /server/nginx/html; index index.html index.htm; } }
配置完成之后,再次重启一下nginx就好。
systemctl restart nginx.service
最后,我们用域名登陆确认一下!
大功告成,恭喜!
JIRA的数据备份及恢复 JIRA的数据备份 如果你在之前有jira的项目,并缺需要你去迁移数据,那么接下来我将介绍有关jira数据备份、数据迁移的一些操作流程。
参考教程:https://www.cnblogs.com/wei9593/p/10772611.html
首先我们可以在我们已经搭建好的jira网站上用管理员账号找到系统页面。
然后找到备份系统
。
随后我们就输入文件名就可以开始备份了。该数据备份的地址也可以在页面的系统信息/文件路径
处找到。
系统默认的备份路径为:/var/atlassian/application-data/jira/export
;
我们在备份完成之后,还是使用FileZilla
工具来把备份数据保存在本地。
注意:这里的备份数据不包括附件。
jira的附件位置在/var/atlassian/application-data/jira/data/attachments
同时,在/var/atlassian/application-data/jira/data/
路径下是有2个文件夹的,一个是attachments
,还有一个是avatars
attachments
:存放附件
avatars
:存放jira用户头像
建议:由于jira的数据不仅仅是有哪些sprint流程,同时还有很多附带的截图附件以及jira用户头像。所以,我们最好在本地建立一个文件夹来统一存放。
我们将这attachments
和avatars
两个文件都拷贝下来。
这样,我们jira的数据备份就已经全部完成了。
JIRA的数据恢复 参考教程:https://www.cnblogs.com/wei9593/p/10772611.html
在我们已经搭建好了jira网站之后,可以恢复之前的jira数据。
还是使用管理员登陆jira,找到导入与导出/恢复系统
。
我们可以看到jira的恢复数据的导入文件默认路径为:/var/atlassian/application-data/jira/caches/indexes
,还是使用FileZilla
工具将之前我们备份的数据导入到该目录下。然后在文件名处输入对应的文件名即可开始恢复信息。
如果有报错如下:
出现这个情况,直接修改 /var/atlassian/application-data/jira
以及子目录的所有者即可
执行:chown -R jira3 jira
意思是将 jira 目录以及子目录的所有者改为 jira3
因为每次安装JIRA 服务就会生成一个jira用户,由于我没有清除这个用户,导致现在排到了jira3
如果在使用中发现jira的附件无法上传,也是和上面的处理一样的。这一次我们cd到jira的附件目录下:cd /var/atlassian/application-data/jira/data
再次ll
来检查文件,发现也是有文件所有者不是jira3。
1 2 3 4 5 chgrp -R jira3 avatars/chown -R jira3 avatars/chgrp -R jira3 attachments/chown -R jira3 attachments/
然后问题就解决了!
后记 这就是文章的全部内容了,如果对你有帮助就再好不过了!
参考教程 jira的安装使用
Centos下jira、confluence利用nginx 代理配置为统一入口
JIRA备份,数据迁移以及小问题
JIRA恢复备份后无法上传附件
封面图来源:https://www.pixiv.net/artworks/97756295