iDempiere4.1(JPiere4.1)のインストール Azure : Ubuntu14.4LTS

## 1. はじめに
原則、
・[JPiere4.1のインストール](https://www.compiere-distribution-lab.net/jpiere-lab/install/jpiere4-1/)
・[iDempiere3.1のインストール AWS - EC2 : Ubuntu14.4LTS](https://www.compiere-distribution-lab.net/idempiere-lab/install/aws-ubuntu14-4lts/)
を参考にしています。

AzureのVMは、『Ubuntu Server 14.04 LTS』イメージで作成、アップーデート済み




## 2. システム要件(iDempiere4.1(JPiere4.1))
- OS : Windows 64bit, Linux 64bit
- DB : PostgreSQL9.4
- Java : Java8* OracleのJava8を推奨

参考：[JPiere4.1の推奨システム要件](https://www.compiere-distribution-lab.net/jpiere-lab/install/jpiere4-1/#no2)





## 3. JAVA

### 3.1 Oracle JDK 8のインストール

システム要件に記載があるようにOpenJDKではなく、OracleJDKをインストール
*iDempiereのバージョンによっては、OpenJDKで手順が記載されているので注意

```shell-session
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
```

SSL(https)を使う場合、インストールしたJAVAのバージョンに応じて、jettyのライブラリのバージョンを置き換える必要がありますので、インストールバージョンを控えておいてください。


## 4. PostgreSQL


### 4.1 PostgreSQL9.4のインストール

Ubuntu14.04(2015/11時点)だとデフォルトで9.3がインストールされてしまうので、リポジトリを追加しインストール

```shell-session
$ sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main"
$ wget --quiet -O - https://postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 
$ sudo apt-get update
$ sudo apt-get install postgresql-9.4
```

### 4.2 postgresのパスワード設定

iDempiereセットアップ時にpostgresロールのパスワードが必要となるため、設定

```shell-session
$ sudo su postgres -c 'psql --username=postgres'
$ ALTER USER postgres with encrypted password 'postgres';
```
※パスワードは仮。運用環境に合わせて設定


### 4.3 idempiere用ロールの作成

adempiereロールを、パスワード'adempiere'で作成
*パスワードの'adempiere'は仮、実運用の際にはセキュリティー的に他のパスワードに設定する。

```shell-session
$ sudo su - postgres
$ psql -U postgres -c "CREATE ROLE adempiere SUPERUSER LOGIN PASSWORD 'adempiere';"
$ logout
```

### 4.4 pg_hba.confの修正
[iDempiere3.1のインストール AWS - EC2 : Ubuntu14.4LTS](https://www.compiere-distribution-lab.net/idempiere-lab/install/aws-ubuntu14-4lts/)には、

>**PostgreSQLへのアクセス設定**
>　PostgreSQLへアクセスできるように、postgresql.confやpg_hba.confの設定を行います。

と記載されており、情報が少ないので注意。
*何もしないと以降のデータベース作成の際に、Peer認証に失敗しデータベース作成できない。


`pg_hba.conf`(/etc/postgresql/9.4/main にある)を編集して、以下の追加
先に作成したadempiereロールの認証をMD5に変更する


```vi
local all postgres peer
local all adempiere md5　←　追加
```

編集後、postgresを再起動

```shell-session
$ service postgresql restart
```

参考：[peer認証の関係でpsqlログインできない時の対処法](https://qiita.com/tomlla/items/9fa2feab1b9bd8749584)


### 4.5 iDempiere用のデータベースの作成

adempiereロールで、idempiereという名称のデータベースを作成する

```shell-session
$ createdb --template=template0 -E UNICODE -O adempiere -U adempiere idempiere
$ psql -d idempiere -U adempiere -c "ALTER ROLE adempiere SET search_path TO adempiere, pg_catalog"
```

*上記の`pg_hba.conf`編集していないとcreatedbでpeer認証エラーになるので注意




## 5.データベースのリストア
リストアするダンプのダウンロード先：[jpiere4.1](https://osdn.net/projects/jpiere/releases/68620)

### 5.0 書き込み権限の付与

[iDempiere3.1のインストール AWS - EC2 : Ubuntu14.4LTS](https://www.compiere-distribution-lab.net/idempiere-lab/install/aws-ubuntu14-4lts/)に、合わせているため"/usr/local/etc"デイレクトリにPostgreSQLのダンプファイルを転送する前提のため実施。
実際のセットアップの環境に合わせて対応すること。

```shell-session
$ cd /usr/local
$ sudo chmod a+rwx etc
$ cd etc
```


### 5.1 ダンプファイルのリストア

ダウンロードしたExpDat.dmpをidempiereデータベースにadempiereroロールでリストア

```shell-session
$ psql -d idempiere -U adempiere -f ExpDat.dmp
```

## 6.iDempiereのインストール
インストールのダウンロード先：[jpiere4.1](https://osdn.net/projects/jpiere/releases/68620)

### 6.1 unzipのインストール

```shell-session
$ sudo apt-get install wget unzip
```

### 6.2 ファイル展開
ダウンロードしたidempiereServer.gtk.linux.x86_64.zipを任意の環境に、コピー。
*[iDempiere3.1のインストール AWS - EC2 : Ubuntu14.4LTS](https://www.compiere-distribution-lab.net/idempiere-lab/install/aws-ubuntu14-4lts/)に、合わせると"/usr/local/etc"デイレクトリ

以下で解凍してファイルを展開する

```shell-session
$ sudo unzip idempiereServer.gtk.linux.x86_64.zip
```

### 6.3 iDempiereのセットアップ

```shell-session
$ cd idempiere.gtk.linux.x86_64/idempiere-server
$ sudo sh console-setup.sh
```


### 6.4 ファイヤーウォールの設定
AzureおよびOSのファイアウォールでポートを開放する

#### OS
```shell-session
$ sudo ufw enable
$ sudo ufw allow 8080 *iDempiereのセットアップでポートを8080とした場合
$ sudo ufw allow http *iDempiereのセットアップでポートを80とした場合
$ sudo ufw reload
```

#### Azure
対象のセキュリティグループから受信規則設定を行う。


### 6.5 iDempiereの起動

```shell-session
$ sudo sh idempiere-server.sh &
```




## その参考サイト
[AWSのCentos7上にJPiereを立ち上げる](https://qiita.com/Katsudon60/items/ef0a6cc701582e0026af)

[オープンソースの会計アプリをインストール](https://ameblo.jp/keisukenozaki/entry-12009224359.html)