Requirements
Atlassian
See https://confluence.atlassian.com/display/JIRA/JIRA+Requirements for newest requirements
OS and Hardware Settings
Virtual: Why not - the benefist are huge
Preferred OS: Ubuntu LTS 64-bit
Hardware: At least 2 CPU's and at least 3 GB Ram
Mysql Settings
Preferred Database: MySQL (or Postgres)
Settings for MySQL (ref: MySQL)
[mysqld] #transaction-isolation = READ-COMMITTED (Seems obsolete with binlog_format=row) log-bin=mysql-bin binlog_format=row default-table-type=innodb default-storage-engine=innodb max_allowed_packet=64M [mysql] default-character-set=utf8
On large installations or where indexes are huge, changing innodb_lock_wait_timeout
can be an option (Ref: JIRAKB)
[mysqld] innodb_lock_wait_timeout = 300
SMTP Access for sending mail
IMAP Access for picking up mail
Installation
Prepare database
Create the Database
mysql> CREATE DATABASE jira CHARACTER SET utf8 COLLATE utf8_bin; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on jira.* to jira@localhost identified by '*******'; Query OK, 0 rows affected (0.00 sec)
Install binaries
Download JIRA from http://www.atlassian.com/software/jira/download
Download the MySQL JDBC from http://dev.mysql.com/downloads/connector/j/
For the binary installer, JAVA is integrated, for EAR or WAR files this must be downloaded and installed separately.
sh ./atlassian-jira-6.1.5-x64.bin
Follow the required steps (remember path to JIRA_Install and JIRA_Home) and connect to the tomcat instance started
Configuration should (if possible) be done directly at the host:8080 - going through a proxy or trafficmanager add a risk that pages time out, leaving the JIRA server (and the client) in an unknown state
Postinstall
This is where the tweaking comes into place, to avoid common problems:
setenv.sh
This file is found in the JIRA_Install/bin
Add support for UTF-8 File system by adding -Dfile.encoding=UTF-8 to the JAVA_OPTS:
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=512m $JAVA_OPTS -Djava.awt.headless=true -XX:NewSize=512m -Dfile.encoding=UTF-8" export JAVA_OPTS
server.xml
This file is found in JIRA_Install/conf
Binding to a fixed IP Address, add the address= to the connector. Also the port= can be changed (Under Linux only root can bind to 0-1023):
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" address="10.0.0.10" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" />
To secure correct UTF-8 Handling, add URIEncoding="UTF-8" to the connector:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" address="10.0.0.10" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" URIEncoding="UTF-8" />
If behind a traffic Manager or Apache Proxy, add scheme=, proxyName= and proxyPort to the context (See Apache2 Proxy Passing or Proxy Passing section belov):
<Context path="" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true" scheme="https" proxyName="jira.example.com" proxyPort="443">
If the JIRA instance need to run below root /, change the path= parameter:
<Context path="/jira" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true" allowLinking="true">
Other
Proxy passing
There are good reasons for using an Apache or Traffic Manager in front of the Confluence Installation, some are:
- No port changing (non-root users can assign to ports below 1024)
- Use of URL Rewrite
- Use of URL Blocking
- Use of Allow/Denial
- SSL offloading/handling outside the Confluence
Se my example in Apache2 Proxy Passing
Time And Date Setup
Time and Date should be set up 2 places according to
https://confluence.atlassian.com/display/JIRA/Customizing+the+Look+and+Feel
https://confluence.atlassian.com/display/JIRA/Advanced+JIRA+Configuration
My formats for danish is:
Time Format HH:mm Day Format dd-MM-yyyy Complete Date/Time Format dd-MM-yyyy HH:mm Day/Month/Year Format dd-MM-yyyy jira.date.picker.java.format dd-MM-yyyy jira.date.picker.javascript.format %d-%m-%Y jira.date.time.picker.java.format dd-MM-yyyy HH:mm jira.date.time.picker.javascript.format %d-%m-%Y %H:%M
Performace inprovement
For setenv.sh (Reference: https://answers.atlassian.com/questions/327828/tomcat-uses-100-cpu-after-jira-upgrade)
-Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true
Logfiles
Logrotate
Set up logrotate to avoid ever growing catalina.out log file. Here JIRA_Home is /opt/jira, logs are rotated daily and kept for 7 days:
/opt/jira/logs/catalina.out { daily rotate 7 compress copytruncate delaycompress missingok size 10M notifempty }