2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jpiere を ubuntu20.04 でインストールしてみる。最新版を動くように設定してみたいが・・・20210101版にしとけって話。

Last updated at Posted at 2021-06-11

はじめに

 フリーのERPシステムを構築してみたくなった。最近はOdooが流行っているのかな?しかし、odooのカスタマイズ開発をするには、開発者用ツールの利用契約(有料)が必要らしい。今回は、Multi-tier ERP であること、日本語対応(将来的には多言語対応)が条件なので、カスタム開発が必須。開発からフリーでできるもので探し直すことにした。
 ネットで検索して見つかる程度では、あまり選択肢がないようだ。日本の商習慣(具体的に何を指しているのかよくわからないが)にも配慮していて、2021年6月現在も開発が続いていると思われる JPiere を試してみることにした。

JPiere とは

 こちらにプロジェクトのページがある。2021年6月現在も更新が行われている。
 https://ja.osdn.net/projects/jpiere/

 こちらの会社のホームページにある程度載っている。
 https://www.compiere-distribution-lab.net/jpiere-lab/about-jpiere/

インストール

 手順の確認: ファイルのダウンロード、DB(PostgreSQL)のデータベース準備などを行い、ソフトウェアを配置後、セットアップ操作を行う。
 こちらのホームページを参考にさせていただいたが・・・まんま、というわけにはいかなかった。
 https://www.compiere-distribution-lab.net/idempiere-lab/install/gce-centos7-idempiere8-2/

前提

 セットアップ済みの ubuntu20.04 (システムは、amd64(Armではない))に openjdk11 および postgresql12 が, aptを使ってインストール済み、と前提。なお、できる限りの最新版JPiereをインストールしたい。

準備

  • JPiere のダウンロード
    • https://ja.osdn.net/projects/jpiere/ へアクセスして、ダウンロードドロップダウンメニューのリリース一覧から最新の次の2つのファイルをダウンロード。

      • JpiereServer82.Linux.x86_x64.zip
        • システムソフトウェア群
      • ExpDat.jar
        • データベースの雛形

      注意書きあり。

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

  今回は、検証ということで。

  • インストール先の選定
     参照しているページでは、/user/local/etc をターゲットにしているが、本記事では、筆者の趣味で /opt をターゲットにしてみた。特に理由はない。

  • postgresの事前設定(テーブルの作成)
    こちらを参考に。 https://www.compiere-distribution-lab.net/postgresql-0017/
    ユーザーロール: adempiere (パスワード: adempiere )を作成し、 データベース: idempiere を作成して、adempiere ユーザーと紐づけておく。

    - ユーザーロールの作成

sudo su - postgres

psql -U postgres -c "CREATE ROLE adempiere SUPERUSER LOGIN PASSWORD 'adempiere'"

logout

    - テーブルの作成

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"

セットアップ操作

 ダウンロードしたファイルを解凍してターゲットフォルダに配置する。

unzip JPiereServer82.Linux.x86_64.zip
sudo cp -r idempiere-server/ /opt

 データベースにテーブル作成(リストアファイルを使用)

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

以下、上述の参考を参照(引用)しつつ・・・

まずは、サーバーを配置したフォルダへ移動。以下、サーバーフォルダで作業。

cd /opt/jpiere-server

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

sudo chmod 777 idempiere

◆console-setup-alt.sh の JAVA変数の修正
Javaの変数を修正します。

これは、JAVA_HOME環境変数が設定されていない人向け。ubuntu20ユーザーのほとんどは該当するはず。

sudo vi console-setup-alt.sh

(6行目 if 文に -z を加えたほうがいいと思う。)
 if [ -z "$JAVA_HOME" ]; then

(9行目 JAVA= の右辺を書き換える。 apt でセットアップした openjdk11 ならば・・・)
 JAVA=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

また、各行末に ^M という記号が表示されている。これがあると、スクリプトが sh で作動しないのですべて削除する。筆者は手動で削除した。

◆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 [/opt/jpiere-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 [] ※自動入力(Default)
(c) Country(2 Char) [JP] ※自動入力かどうかはサーバ環境による

【アプリケーションサーバー】
Application server host Name [localhost]
Application Server Web Port [8880]
Application Server SSL Port [8443]

【データベースサーバー】
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]

”保存のエラー”(Failed to save changes.)が表示されるが、大丈夫みたい?

参考サイトでは、ここまでの情報しかない。このままで idempiere-server.sh を使ってサーバを起動させても・・・起動しない。
これで動作すると、参考サイトでは言われているが、エラーが出て動かない。

エラーは、以下の2つの環境変数の設定値がないこと。
1: IDEMPIERE_HOME ( /opt/jpiere_server/utils/myEnvironment.sh line 27, 39 )
2: IDEMPIERE_JAVA_OPTIONS ( /opt/jpiere_server/idempiere-server.sh line 56 )

以下のファイル操作で対応しようと考えたが・・・。

◆ idempiere-server.sh の JAVA変数の修正
 JAVAの実行ファイルを指定する。

sudo vi idempiere-server.sh

(7行目 if 文に -z を加えたほうがいいと思う。)
 if [ -z "$JAVA_HOME" ]; then

(10行目 JAVA= の右辺を書き換える。 apt でセットアップした openjdk11 ならば・・・)
 JAVA=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

(56行目 $IDEMPIERE_JAVA_OPTIONS を削除する)

◆ utils/myEnvironment.sh の編集

 (17行目 IDEMPIERE_HOME= の右辺を書き換える。)
 IDEMPIERE_HOME="/opt/jpiere-server"

 (19行目 JAVA_HOME= の右辺を書き換える。)
 JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

(こいつ、20行目で JAVA_HOME を export してくれやがる・・・。複数のJAVA環境を切り替えて使っている人は、このサーバーソフトウェアを起動してはいけないかもしれない。)

iDempiereの起動

sudo sh idempiere-server.sh &

・・・起動しない。

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

・・・表示されない。
・・・なぜだ?なぜ、誰もツッコミを入れてないんだ?

利用ユーザーが少なすぎるのか? 最新リリースだけの問題かもしれん、と思い、気を取り直して、 jpiere82-20210606 でセットアップし直してみる。
https://www.compiere-distribution-lab.net/jpiere-lab/install/jpiere7-1/

・・・おなじ結果だ。

エラーのログを見ると、このとおり。 @ADEMPIERE_SSL_PORT@ の値がおかしい。設定した数値(ポート番号)に置き換えられていない?

2021-06-11 20:51:18.139:WARN:oejx.XmlConfiguration:Start Level: Equinox Container: e91bcf8a-6b36-43cd-8c44-88a2d14705bf: Config error at java.lang.reflect.InvocationTargetException in file:///opt/jpiere-server/jettyhome/etc/jetty.xml

ええい、それではもうひとつさかのぼって、 jpiere82-20210101 で再度セットアップだ。

しかも面倒くさくなったので、 JAVA_HOME を設定してから再度セットアップする。

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

(以下、本投稿の、セットアップ操作手順を実行)

・・・エラーがない。 http://localhost:8880 を開くと・・・

動いた〜。動き出した〜。
Screenshot from 2021-06-11 21-13-48.png

まとめ

2021年6月11日の最新版、JPiere82-20210606 やデイリーリリースは、従来説明されている手順でセットアップしても動かない。きっと近日中に公式から訂正版が発表されると思うので、それまでは動かしたければ、JPiere82-20210101版を使いましょう。

今後の展望

さて、今後はこのサーバーをカスタマイズして行くことになるのだが・・・本当にできるのか?
現状考えている業務機能範囲は、PHPでフルスクラッチで作ったほうが早いとかってこと、ないよね?不安だ・・・

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?