CentOSへのJIRA7インストール手順（プロキシにnginxを使うバージョン）


仕事でJIRA7を立てる必要があったので、ついでに手順をまとめました。
JIRA以外のアプリケーションも同じ筐体に立てる予定だったので、
リバースプロキシにnginxを使って`http://localhost:8080/jira`みたいな形でアクセスできるようにします。

# 環境

- JIRA 7
- CentOS 6.7
- nginx 1.8.1
- MySQL 5.6.28

# 手順

## 1. nginxのインストール
CentOS6でデフォルトでインストールできるnginxは古すぎるので、rpmをインストールします。

```:
# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# yum -y install nginx
# nginx -v
nginx version: nginx/1.8.1
```

## 2. MySQLのインストール
MySQLのデフォルトバージョンも古すぎるので、rpmをインストールします。

```:
# yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum -y install mysql mysql-devel mysql-server mysql-utilities
# mysqld --version
mysqld  Ver 5.6.28 for Linux on x86_64 (MySQL Community Server (GPL))
```

## 3. JIRA用のデータベースとユーザ作成
JIRA用のデータベースとユーザを作成します。

```:
# mysql -u root -p
> create database jira default character set utf8;
> grant all privileges on jira.* to jira@localhost identified by 'jira';
> flush privileges;
> exit
```

## 4. JIRAのインストール
インストーラをダウンロードしてJIRAをインストールします。
インストーラは **必ずroot権限で実行** してください。
インストールが完了すると、jiraサービスを実行するためのjiraユーザが作成されます。

```:
$ wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.10-jira-7.0.10-x64.bin
$ chmod a+x atlassian-jira-software-7.0.10-jira-7.0.10-x64.bin
$ sudo ./atlassian-jira-software-7.0.10-jira-7.0.10-x64.bin
```

## 5. MySQL Connectorのインストール
今回はMySQLを使うので、MySQLドライバーをインストールしてJIRAにインストールします。

```:
$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz
$ tar xvf mysql-connector-java-5.1.38.tar.gz
$ cd mysql-connector-java-5.1.38
$ sudo cp mysql-connector-java-5.1.38-bin.jar /opt/atlassian/jira/lib/
```

## 6. nginxのリバースプロキシの設定
サブディレクトリにJIRAを配置したいので、nginxのリバースプロキシを設定します。

```:/etc/nginx/conf.d/jira.conf
upstream jira {
    server 127.0.0.1:8080;
}

server {
    location ~ /jira {
        root /opt/atlassian/jira;
        if (-f $request_filename) {
            break;
        }

        proxy_read_timeout 300;
        proxy_connect_timeout 300;
        proxy_redirect     off;

        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header   Host $host;

        proxy_pass         http://jira;

        access_log  /var/log/nginx/jira_access.log;
        error_log   /var/log/nginx/jira_error.log;
    }
}
```

加えてJIRAの`server.xml`のコンテキストパスの編集も必要になります。

```xml:/opt/atlassian/jira/conf/server.xml
<?xml version="1.0" encoding="utf-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Service name="Catalina">
        <!-- ... -->
        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <!-- pathを""から"/jira"に変更 -->
                <Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
                    <!-- ... -->
                </Context>
            </Host>
        </Engine>
    </Service>
</Server>
```

最後にJIRAとnginxを再起動してください。
`http://localhost/jira`でアクセスできると思います。

```:
$ sudo service jira stop
$ sudo service jira start
$ sudo service nginx restart
```