Google Compute EngineのCentOS7にiDempiere8.2をインストールする

CentOS Streamの登場により、CentOS8のサポート切れが、2021年12月末という事で、CentOS7にiDempiere/JPiereをインストールする事もあるかと思いますので、ここにCentOS7に、iDempiere8.2/JPiere8.2をインストールする方法について調査及び研究し、その成果をまとめておきたいと思います。※CentOS7は、2024年6月30日までサポートされるようです…。

基本的な流れは、他のLinuxディストリビューションでも同じになります。

インスタンスを作成する

Google Compute Engine(以下、GCE)でCentOS7のインスタンスを作成して下さい。

GCEのインスタンスを作成する方法や、そのインスタンスへのアクセス方法については、このコンテンツでは省略します。知りたい方は下記のコンテンツを参照して下さい。

OpenJDK11のインストール

下記のコンテンツを参照して、CentOS7にOpenJDK11をインストールして下さい。

unzipのインストール

iDempiereのインストールパッケージやPostgreSQLのダンプファイルがZIP圧縮さているので、解凍するためにインストールします。

sudo yum -y install unzip

PostgreSQLのインストールと初期設定

iDempiere8.2で使用しているPostgreSQLのドライバーは42.2.18です。このドライバーに対応しているPostgreSQLを使用して下さい。 

※JPiere8.2のPostgreSQLのダンプファイルは、PostgreSQL11から取得しています。PostgreSQL11を使用する際には、下記のコンテンツを参考にインストールして下さい。

iDempiere or JPiereのダウンロード

iDempiereをインストールしたい場合は、iDempiereのインストールパッケージをダウンロードして下さい。JPiereをインストールしたい場合は、JPiereのインストールパッケージをダウンロードして下さい。

iDempiereのダウンロード

iDempiereのインストールパッケージはSourceForgeで公開されています。

iDempiereコミュニティーが用意しているインストールパッケージは、バージョンアップしたタイミングのインストールパッケージと、日々ビルドされているインストールパッケージが用意されています。ここでは、日々ビルドしているインストールパッケージをダウンロードします。

Path : Files > v8.2 >Daily-server

  • idempiereServer8.2Daily.gtk.linux.x86_64.zip

JPiereのダウンロード

JPiereのインストールパッケージはOSDNで公開しています。

https://ja.osdn.net/projects/jpiere/

JPiereのインストールパッケージは、概ね半年の間隔で最新のインストールパッケージを公開しています。

ダウンロード > リリース一覧

下記のファイルをダウンロードして下さい。

  • JPiereServer82.Linux.x86_64.zip … JPiere8.2のインストールパッケージ
  • ExpDat.jar … PostgreSQLのダンプファイル

【注意】JPiereのインストールパッケージには、iDempiereも含まれています。

JPiereは、iDempiereを日本商慣習対応させるためのプラグイン群ですが、OSDNで配布しているJPiereのインストールパッケージには、iDempiereも含めたシステム全体として配布しています。そのため、JPiereをインストールするのに、予めiDempiereをインストールしておくような事は不要です。

【補足説明】本番環境にはソースコードからビルドしたインストールパッケージを使用して下さい。

iDempiereのインストールパッケージもJPiereのインストールパッケージも、公開されているインストールパッケージは検証用です。本番環境で使用する際には、ソースコードからビルドしたインストールパッケージを使用して下さい。そしてビルドしたソースコードはGitHubなどに大切に保管しておいて下さい。

iDempiere8.2/JPiere8.2のインストール(デプロイ)

ダウンロードしたiDempiere8.2もしくはJPiere8.2のインストールパッケージを、GCEのインスタンスに転送して下さい。

Zipファイルの解凍

◆iDempiereの場合

iDempiereの場合は、idempiereServer8.2Daily.gtk.linux.x86_64.zipの中に、iDempiereのサーバーデイレクトリとダンプファイルの両方が入っています。そのためまずは、idempiereServer8.2Daily.gtk.linux.x86_64.zipを解凍します。

  • idempiereServer8.2Daily.gtk.linux.x86_64.zip -> idempiere.gtk.linux.x86_64ディレクトリ

sudo unzip idempiereServer8.2Daily.gtk.linux.x86_64.zip

解凍したidempiere.gtk.linux.x86_64ディレクトリの中に、idempiere-serverディレクトリ(以下、%idempiere-server%)があり、このディレクトリがiDempiereの本体となります。

解凍するとディレクトリ階層がかなり深くなるので、少し浅い所に移動しておきます。

 下記のコマンドは%idempiere%を 「/usr/local/etc/」に移動させる例です。「/usr/local/etc/」の部分は、適宜変更して下さい。

sudo cp -r idempiere.gtk.linux.x86_64/idempiere-server/ /usr/local/etc/

 

◆JPiereの場合

JPiereの場合は、JPiereServer82.Linux.x86_64.zipを解凍すると、JPiereサーバーデイレクトリ(以下、%jpiere-server%)になります。また、ダウンロードしたExpDat.jarを解凍すると、PostgreSQLのダンプファイルになります。

  • JPiereServer82.Linux.x86_64.zip -> jpiere-serverデイレクトリ
  • ExpDat.jar  -> ExpDat.dmpファイル

sudo unzip JPiereServer82.Linux.x86_64.zip

sudo unzip ExpDat.jar

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

◆iDempiereのダンプファイル

iDempiereのPostgreSQLのダンプファイルは、%idempiere-server%/data/seedデイレクトリにあるAdempiere_pg.jarファイルです。Adempiere_pg.jarファイルをZip解凍します。

sudo unzip Adempiere_pg.jar

解凍すると、Adempiere_pg.dmpファイルになります。このファイルをPostgreSQLにリストアます。

psql -d idempiere -U adempiere -f Adempiere_pg.dmp

 

◆JPiereのダンプファイル

JPiereのPostgreSQLのダンプファイルは、iDempiereのダンプファイルとは異なりますので気を付けて下さい。OSDNからJPiereのインストールパッケージと一緒にダウンロードしたダンプファイルを使って下さい。

psql -d idempiere -U adempiere -f ExpDat.dmp

【注意】JPiereのインストールにはAdempiere_pg.jarは使用しない!!

JPiereのインストールパッケージと一緒にダウンロードした、ExpDat.jarを解凍してリストアして下さい!!

iDempiere/JPiereの初期セットアップ

ここからは、iDempiereもJPiereも同じ手順です。

◆idempiereファイルの権限をゆるくする

idempiere-serverディレクトリの直下にあるidempiereファイルの権限をゆるくしないと、初期セットアップがパーミッションエラーになるので、ゆるくしておきます。

sudo chmod 777 idempiere

◆console-setup-alt.sh の JAVA変数の修正

Javaの変数を修正します。

(例) /usr/lib/jvm/jre-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/bin/java

sudo chmod 777 console-setup-alt.sh

vi console-setup-alt.sh

[Insert]キーで、編集モード。

[Escape]キーで、編集モード終了。

[:wq] で 保存してエディタを終了。

 

◆JPiereの追加対応

JPiere8.2のインストールパッケージをWindows10で作成しているためだと思われますが、console-setup-alt.shを実行すると、改行コードの違いによるエラーになってしまいます。それを未然に防ぐために、再度、console-setup-alt.shファイルを開いて、[dos]から[unix]へ切り替えて下さい。

再度console-setup-alt.shファイルを開きます。

vi console-setup-alt.sh

console-setup-alt.shファイルを開いたら下記を入力して、[dos]から[unix]に切り替えます。

:se ff=unix

保存して終了です。

:wq

 

◆console-setup-alt.shの実行

console-setup-alt.shを実行して、初期セットアップを行います。

sudo sh console-setup-alt.sh

  • Java Home [/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64] ※自動入力(Default)
  • iDempiere Home [/user/local/etc/idempiere-server] ※自動入力(Default)

 【SSLの設定】

  • Key Store Password [myPassword] ※自動入力(Default)
  • (ON) Common Name [root] ※自動入力(Default)
  • (OU) Organization Unit [iDempiereUser] ※自動入力(Default)
  • (O) Organization [root] ※自動入力(Default)
  • (L) Local/Town [MyTown] ※自動入力(Default)
  • (s) State []
  • (c) Country(2 Char) [US] ※自動入力(Default)

【アプリケーションサーバー】

  • Application server host Name [GCEのインスタンス名]
  • Application Server Web Port [80]
  • Application Server SSL Port  [443]

【データベースサーバー】

  • DB Already Exists? (Y/N)   [Y]
  • Database Type  [2] ※PostgreSQL
  • Database Server Host name  [localhost] ※自動入力(Default)
  • Database Server Port  [5432] ※自動入力(Default)
  • Database Name  [idempiere] ※自動入力(Default)
  • Database user  [adempiere] ※自動入力(Default)
  • Database password  [adempiere] ※自動入力(Default)
  • Database System User Password   [] ※postgresユーザーのパスワード

【データベースサーバー】

  • DB Already Exists? (Y/N)   [Y]
  • Database Type  [2] ※PostgreSQL
  • Database Server Host name  [localhost] ※自動入力(Default)
  • Database Server Port  [5432] ※自動入力(Default)
  • Database Name  [idempiere] ※自動入力(Default)
  • Database user  [adempiere] ※自動入力(Default)
  • Database password  [adempiere] ※自動入力(Default)
  • Database System User Password   [] ※postgresユーザーのパスワード

【メールサーバー】

  • Mail Server Host Name  [localhost] ※自動入力(Default)
  • Mail User Login  []
  • Mail User Password  []
  • Administrator Email  []
  • Save changes (Y/N)  [Y]

◆Error Saving File

idempiereEnv.propertiesファイルの書き込みに失敗する事があります。

03:08:51.861===========> ConfigurationData.save: Cannot save Properties to /usr/    local/etc/jpiere-server/idempiereEnv.properties - org.adempiere.exceptions.Ademp    iereException: File does not exist or canno execute /usr/local/etc/jpiere-server    /utils/setVar.sh [1]

Error Saving File

Failed to save changes.

file=/usr/local/etc/jpiere-server/org.adempiere.install/build.xml exists=false

Buildfile: build.xml

 

このエラーに遭遇したら、いったんidempiereEnv.propertiesを削除して、もう一回、初期セットアップを実行して下さい。

sudo rm idempiereEnv.properties

もう一度、console-setup-alt.shを実行して、初期セットアップを行います。

sudo sh console-setup-alt.sh

iDempiereの起動

$ sudo sh idempiere-server.sh &

 これで、iDempiereが起動されます。

iDempiere or JPiereの初期セットアップをデフォルトのポート(8080)で設定した場合は、下記のURLにアクセスしてみて下さい。iDempiereのログイン画面が表示されれば完了です!!

  • http://ドメイン(or IP):8080/webui/

いわゆるオレオレ証明書ですが、httpsでもアクセスする事ができます。httpsでアクセスする場合、通常ブラウザが警告をだすと思いますが、それを無視すれば下記のURLでアクセスできます。

  • hppts://ドメイン(or IP):8443/webui/

iDempiere or JPiereの初期セットアップをWebポートを[80]、SSLポートを[443]に指定した場合は下記のURLでアクセスする事ができるはずです。

  • http://ドメイン(or IP)/webui/
  • https://ドメイン(or IP)/webui/

もちろん、オレオレ証明書ではない、ちゃんとしたサーバー証明書を使ってSSL/TLSの設定をする事もできます。

サポーターズコンテンツ

 

◆Error

下記のようなエラーがでたら、idempiereEnv.propertiesファイルを削除して、もう1回「console-setup-alt.shの実行」をして下さい。

===================================

Starting iDempiere Server

===================================

idempiere-server.sh: line 54: @JAVA_HOME@/bin/java: No such file or directory

日本語環境にする

上記までの手順でiDempiereの起動はできますが、PDFのレポートを表示した時に日本語が□(とーふ)状態で表示されてしましますので、下記を参照して対応して下さい。

$sudo yum -y install ibus-kkc vlgothic-*

$sudo localectl set-locale LANG=ja_JP.UTF-8

【オプション対応】

”ja_JP.UTF-8”にして文字化けした場合、下記の"en_US.UTF-8"を試してみて下さい。

$sudo localectl set-locale LANG=en_US.UTF-8

 

そして、下記の対応を行って下さい。