1安裝簡介
1.1方案/流程簡介
需要依賴安裝數據庫,可以是mysql,orace或sqlserver。以mysql為例說明。
各模塊各階段安裝任務說明如下:
安裝模塊 |
說明 |
jira |
項目與事務跟蹤工具,被廣泛應用於缺陷跟蹤、客戶服務、需求收集、流程審批、任務跟蹤、項目跟蹤和敏捷管理等工作領域。 |
mysql |
開源的關系型數據庫 |
mysql的JDBC驅動 |
Java 連接 MySQL 需要驅動包。解壓后得到jar庫文件,然后在對應的項目中導入該庫文件。 |
參考指導:
http://blog.51cto.com/13505030/2059613
2安裝前准備
2.1 系統環境
OS版本號: CentOS Linux release 7.3.1611 (Core)
命令: cat /etc/redhat-release
2.2 軟件包&工具
安裝所需的軟件包如下:
軟件包 |
軟件包版本 |
獲取方式 |
jira |
atlassian-jira-software-7.3.6.zip |
https://www.atlassian.com/software/jira/download |
mysql |
5.7 |
https://dev.mysql.com/downloads/mysql/ |
mysql的JDBC驅動 |
mysql-connector-java-5.1.34_1 |
https://dev.mysql.com/downloads/connector/j/ |
JDK |
1.8 |
- |
3 安裝與配置(單機)
3.1安裝JDK
1. 檢查默認安裝情況
java -version
系統默認帶的是openJDK,需要卸載后安裝。
2.檢測JDK安裝包
rpm -qa | grep java
avapackages-tools-3.4.1-6.el7_0.noarch
tzdata-java-2014i-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.71-2.5.3.1.el7_0.x86_64
java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64
python-javapackages-3.4.1-6.el7_0.noarch
3.卸載OpenJDK
rpm -e --nodeps tzdata-java-2014i-1.el7.noarch
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.71-2.5.3.1.el7_0.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64
4.安裝新的Jdk1.8.0_31
解壓縮tar.gz
mkdir -p /usr/lib/jvm
tar -zxvf jdk1.8.0_31.tar.gz -C /usr/lib/jvm
5.設置環境變量
vi /etc/profile
在文件最后添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_31
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
如果只是臨時的可以在終端配置,不用到配置文件中配置,如果只想某用戶可以用,可以只配置那個用戶的profile文件;
6.使profile生效
source /etc/profile
7.檢查新安裝的jdk
java -version
3.2安裝Jira
3.2.1 下載安裝包
注:如果已經獲取到安裝包,可以直接跳過此步驟
3.2.2上傳安裝包
1)root用戶創建 文件夾:
mkdir -p
2)將安裝包atlassian-jira-software-7.3.6.zip以root用戶上傳到目標目錄
3.2.3解壓安裝包
unzip
atlassian-jira-software-7.3.6.zip
[root@host03 jira]# ls
atlassian-jira-software-7.3.6-standalone atlassian-jira-software-7.3.6.zip
[root@host03 jira]# mv atlassian-jira-software-7.3.6-standalone/ jira
[root@host03 jira]# ls
atlassian-jira-software-7.3.6.zip jira
3.3安裝數據庫(Mysql)
3.3.1下載安裝包
https://dev.mysql/com/downloads/mysql
注:此包是匯總包,下載此包即可
3.3.2上傳安裝包
1)root用戶創建 /usr/local/services/mysql文件夾,並上傳文件
mkdir -p /usr/local/services/mysql
2) 解壓
tar -zxvf sql-5.7.19-1.el7.x86_64.rpm-bundle.tar
3.3.3 安裝Mysql
1、檢查環境是否默認安裝了mysql
如上圖,默認已經安裝了,需要先刪除
卸載系統自帶的mariadb-lib
否則會報如下錯誤,導致common安裝失敗。
2、 執行安裝
安裝順序:
mysql-community-common-5.7.19-1.el7.x86_64.rpm
mysql-community-libs-5.7.19-1.el7.x86_64.rpm --(依賴於common)
mysql-community-client-5.7.19-1.el7.x86_64.rpm --(依賴於libs)
mysql-community-server-5.7.19-1.el7.x86_64.rpm --(依賴於client、common)
3.3.4初始化數據庫
mysqld --initialize
//新版的推薦此方法,執行生會在/var/log/mysqld.log生成隨機密碼
安裝完成后,會默認安裝在/var/lib/mysql下。 如果需要改安裝路徑,可以mysql_install_db --datadir=/var/lib/mysql
3.3.5更改所屬用戶及其所屬組
增加mysql用戶並修改默認密碼
groupadd mysql
useradd -r -g mysql mysql
passwd mysql
增加如下目錄並賦權限:
chown mysql:mysql /var/lib/mysql –R
3.3.6啟動mysql
systemctl start mysqld.service
檢查狀態:
ps -ef |grep mysql
3.3.7初始化登錄密碼
新安裝的數據庫,需要配置初始登錄密碼:
/etc/my.cnf里[mysqld]下添加skip-grant-tables=1,跳過權限,重啟服務
update mysql.user set authentication_string = password('我是密碼,請替換'), password_expired = 'N', password_last_changed = now() where user = 'root';
flush privileges;
再去my.cnf里把剛才添加的skip-grant-tables注釋掉,重啟服務
mysql -u root -p
再次進入 輸入剛才設置的密碼
查看啟動端口
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.01 sec)
mysql>
3.3.8(可選)個性化配置
修改mysql數據庫,使支持表的大小寫
讓MYSQL不區分表名大小寫的方法其實很簡單:
1.用ROOT登錄,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新啟動數據庫即可
先kill掉進程,然后執行:systemctl start mysqld.service
3.3 Docker下安裝數據庫(可選)
3.3.1安裝Docker
3.3.1.1 安裝docker
可以連外網情況下,直接一個命令可以安裝: yum install docker
[root@localhost dev]# yum install docker
下載確認后出現完畢顯示,則安裝完畢。
3.3.1.2 查看docker版本
查看命令:docker -v
[root@localhost dev]# docker -v
Docker version 1.13.1, build 6e3bb8e/1.13.1
3.3.1.3 啟動docker
啟動命令:systemctl start docker
[root@localhost dev]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: http://docs.docker.com
[root@localhost dev]# systemctl start docker
[root@localhost dev]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2018-09-16 17:21:09 CST; 5s ago
Docs: http://docs.docker.com
Main PID: 3545 (dockerd-current)
CGroup: /system.slice/docker.service
├─3545 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userlan...
└─3561 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/lib...
3.3.1.4 配置開機啟動(可選)
[root@localhost dev]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3.3.2 Docker上安裝mysql
3.3.2.1拉取鏡像
命令:docker pull mysql:5.6.39
說明:后面的版本號視具體情況而定(如果獲取最新版本,則不需要加版本號)
[root@localhost /]# docker pull mysql:5.7
Trying to pull repository docker.io/library/mysql ...
Get https://registry-1.docker.io/v2/library/mysql/manifests/5.7: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fmysql%3Apull&service=registry.docker.io: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
[root@localhost /]# docker pull mysql:5.6.39
Trying to pull repository docker.io/library/mysql ...
5.6.39: Pulling from docker.io/library/mysql
2a72cbf407d6: Pull complete
38680a9b47a8: Pull complete
4c732aa0eb1b: Pull complete
c5317a34eddd: Pull complete
f92be680366c: Pull complete
6762c4c3eacc: Pull complete
7f9e7799488e: Pull complete
5bfede7d51ce: Pull complete
4d58e230ee6f: Pull complete
e83cf84d215b: Pull complete
9a02cf99f495: Pull complete
Digest: sha256:a85722079680fb21afc4ce5c7a2cb51fa6d9793efe1c6d3da0e94a2aa9fedac4
Status: Downloaded newer image for docker.io/mysql:5.6.39
3.3.2.2加載鏡像
命令:
docker run --name mysql_docker -e MYSQL_ROOT_PASSWORD=我是密碼,請替換 -p 3307:3306 -d mysql:5.6.39
命令說明:
--name mysql_docker 創建的容器名稱
-e MYSQL_ROOT_PASSWORD=root 使用作為root賬號的密碼
-p 3307:3306 容器的3307端口映射到宿主機器
-d 后台運行容器
mysql:5.6.39 鏡像名稱
[root@localhost /]# docker run --name mysql_docker -e MYSQL_ROOT_PASSWORD=我是密碼,請替換 -p 3307:3306 -d mysql:5.6.39
84eff7a2ee2d813bd92503349a06bb6377bad29ab6541876d04f7ee547b48f79
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84eff7a2ee2d mysql:5.6.39 "docker-entrypoint..." 17 seconds ago Up 16 seconds 0.0.0.0:3307->3306/tcp mysql_docker
[root@localhost /]#
3.3.2.3驗證安裝
查看端口:
[root@localhost /]# netstat -anp |grep 3307
tcp6 0 0 :::3307 :::* LISTEN 9866/docker-proxy-c
進入mysql:docker exec -it mysql_docker bash
[root@localhost /]# docker exec -it mysql_docker bash
root@84eff7a2ee2d:/# mysql -u root -p"我是密碼,請替換"
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
3.3創建數據庫用戶
[root@host03 bin]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.18-log Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Docker 下進入數據庫(可選):
root@2221eee4b6e7:/# mysql -u root -p"我是密碼,請替換"
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
3.3.1創建數據庫
mysql> create database jira default character set utf8 collate utf8_bin;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jira |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> exit
3.3.2 賦合適權限
mysql> use jira;
Database changed
mysql> grant all on jira.* to 'jira@’%' identified by '我是密碼,請替換';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
4導入mysql的JDBC驅動
上傳mysql-connector-java-**-bin.jar包到安裝目錄下,如
/jira/atlassian-jira/WEB-INF/lib
5啟動Jira
5.1 個性化配置
1) 配置啟動目錄
vi /jira/atlassian-jira/WEB-INF/classes/jira-application.properties
jira.home = /data
[root@host03 jira]# pwd
[root@host03 jira]# mkdir data
2) 配置連接數據庫信息(可選):
vi /jira/atlassian-jira/WEB-INF/classes/database-defaults/mysql.properties
databaseUrl=jdbc:mysql://localhost:3307/jira?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=default_storage_engine=InnoDB
userName=jira
password=我是密碼,請替換
poolSize= 20
3) 配置個性化端口(可選):
vi /jira/conf/server.xml
<Service name="Catalina">
<Connector port="8080"
5.2 啟動Jira
[root@host03 jira]# cd /jira/bin
[root@host03 bin]# ./start-jira.sh
To run JIRA in the foreground, start the server with start-jira.sh -fg
executing as current user
.....
.... .NMMMD. ...
.8MMM. $MMN,..~MMMO.
.?MMM. .MMM?.
OMMMMZ. .,NMMMN~
.IMMMMMM. .NMMMN. .MMMMMN,
,MMMMMM$..3MD..ZMMMMMM.
=NMMMMMM,. .,MMMMMMD.
.MMMMMMMM8MMMMMMM,
.ONMMMMMMMMMMZ.
,NMMMMMMM8.
.:,.$MMMMMMM
.IMMMM..NMMMMMD.
.8MMMMM: :NMMMMN.
.MMMMMM. .MMMMM~.
.MMMMMN .MMMMM?.
Atlassian JIRA
Version : 7.3.6
If you encounter issues starting or stopping JIRA, please see the Troubleshooting guide at http://confluence.atlassian.com/display/JIRA/Installation+Troubleshooting+Guide
Server startup logs are located in /jira/logs/catalina.out
Using CATALINA_BASE: /jira
Using CATALINA_HOME: /jira
Using CATALINA_TMPDIR: /jira/temp
Using JRE_HOME: /usr/local/java/jre
Using CLASSPATH: /jira/bin/bootstrap.jar:/jira/bin/tomcat-juli.jar
Using CATALINA_PID: /jira/work/catalina.pid
Existing PID file found during start.
Removing/clearing stale PID file.
Tomcat started.
查看啟動日志
[root@host03 logs]# tailf catalina.out
18-Jul-2018 05:31:39.463 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8081]
18-Jul-2018 05:31:39.543 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
18-Jul-2018 05:31:39.564 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 67213 ms
至此,jira啟動完成。!
6初始配置Jira
防火牆臨時開放端口
iptables -I INPUT -p tcp --dport 端口 -j ACCEPT
訪問http://ip:端口
一步一步往下操作即可。
選2,我將設置它自己:
注: 次步驟后,會在數據庫中創建相應的表。
到 https://my.atlassian.com/license/evaluation 申請license
進入后,第一次登陸,修改管理員的賬號與密碼。並選擇中文語言。
Jira 破解
當前可以看到授權日期是一個月
獲取破解包里面的atlassian-extras-3.2.jar上傳到以下目錄覆蓋刷新,並重啟jira.
/jira/atlassian-jira/WEB-INF/lib
通過上圖,我們可以很明顯的看到jira我們可以使用到2033年。到此有關jira的安裝、破解就已經全部結束。
5 FAQ
5.1 啟動Jira過程報Address already in use
日志如下:
[root@host03 logs]# tailf catalina.out
2018-07-18 05:20:36,002 localhost-startStop-1 ERROR [c.a.j.web.dispatcher.JiraWebworkActionDispatcher]
******************************************
JIRA startup failed, JIRA has been locked.
******************************************
18-Jul-2018 05:20:36.121 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
18-Jul-2018 05:20:36.133 SEVERE [main] org.apache.coyote.AbstractProtocol.start Failed to start end point associated with ProtocolHandler [http-nio-8080]
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:874)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:590)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:969)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:655)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
18-Jul-2018 05:20:36.135 SEVERE [main] org.apache.catalina.core.StandardService.startInternal Failed to start connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8080]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:655)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Catalina"; Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:976)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
Caused by: java.net.BindException: Address already in use
解決辦法:
修改個性端口
vi /jira/conf/server.xml
<Service name="Catalina">
<Connector port="8081"
5.2 root 用戶登錄,報賬號或密碼錯誤Sorry, we had some technical problems during your last operation.
需要重置root密碼。 密碼是存放在這個表中:
select * from cwd_user ;
重置root密碼步驟:
- 先用一個普通用戶(沒有的話,在前台注冊一個就可以登錄);
- 然后把該用戶設置為管理員角色
設置辦法: 登錄數據庫,找到這個表添加一條記錄
SELECT child_name, directory_id FROM cwd_membership WHERE parent_name='jira-administrators';
- 使用新的管理員賬號進入重置密碼
5.3.Jira導出的csv格式問題列表顯示亂碼問題
問題現象: 在JIRA-問題-所有問題 右上角的 導出 按鈕,導出的問題,顯示亂碼。如下圖所示:
解決辦法:導出的csv格式文件,先用文本編輯器打開,然后另存為一份csv格式,編碼選ANSI。 再用Excel打開,即可顯示正常.