このドキュメントではAppPotをセットアップするための手順を記載しています。

AppPotオンプレミス版 セットアップの手順

AppPotのセットアップは次の手順で行います。

  1. OSのセットアップ
  2. 必要なミドルウェアのセットアップ
  3. AppPot用のデータベース作成
  4. AppPotのデプロイ

1. OSのセットアップ

前提となるソフトウェアで記載したミドルウェアがサポートするOSをセットアップします。
以降の章ではCentOS 6.5、WildFly、MySQLを例に記載します。

2. 必要なミドルウェアのセットアップ

各ミドルウェアのマニュアルに従ってセットアップを行って下さい。
データベースを作成する際の文字コードはUTF-8にする必要があります。
参考情報として、WildFly、MySQLの組み合わせでのセットアップの情報はこちらを参照してください。

2.1. WildFlyの起動ファイルの変更

  • Windowsの場合:
  • {WILDFLY_HOME}\bin\standalone.batのrem Find jboss-modules.jar, or we can't continueの前に下記の設定を追記してください。
set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true"
  • Linuxの場合:
  • {WILDFLY_HOME}\bin\standalone.confの最終行に下記の設定を追記してください。
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true"

3. AppPot用のデータベース作成

AppPot用のデータベースを作成します。
AppPotのデータベースは大きく2つあります。

  • AppPot管理用データベース
    AppPotの管理画面で使用されるデータベースです。
    ユーザー、グループ、アプリなどの情報が管理されています。
    データベースは任意の名前で作成してください。
    データベース内のテーブルはAppPotの起動時に自動で生成されます。

  • アプリ用データベース
    アプリごとに、アプリのValue Objectに合わせて生成されるデータベースです。
    アプリからAPI(CreateAppDB)が呼び出されたときに生成されます。

AppPotが使用するDBユーザーはアプリ用データベースの作成などを行いますので、グローバルレベルでALLの権限を付与してください。
MySQLでのデータベース作成の手順の例はこちらのデータベース作成をご覧下さい。

4. AppPotのデプロイ

4.1. AppPotの設定ファイルの変更

AppPotのWarファイルを解凍し、環境に合わせて以下の設定ファイルを変更します。

設定ファイル名 設定ファイルの場所 概要
jboss-web.xml {AppPot_WAR}/WEB-INF/jboss-web.xml AppPotのWildFly上でのコンテキストルートを指定します
AppPotログ設定ファイル {AppPot_WAR}/WEB-INF/classes/log4j.properties ログ出力先を設定します
AppPot設定ファイル {AppPot_WAR}/WEB-INF/classes/stew.properties AppPotの各種設定情報を設定します。
管理画面DB接続設定ファイル {AppPot_WAR}/WEB-INF/classes/META-INF/persistence.xml AppPot管理画面が使用するDB接続の設定を行います
beans.xml {AppPot_WAR}/WEB-INF/classes/META-INF/persistence.xml 認証基盤、データベース製品の切り替え

4.1.1. jboss-web.xml

AppPotの管理画面や、WebAPIを受け付けるURLの一部になるコンテキストルートを指定します。デフォルトのままでも問題ありません。

  • 設定例
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
  <context-root>/apppot</context-root>
</jboss-web>

上記の設定例の場合であれば、管理画面のURLは次のようになります。

http(s)://<ホスト名>:<WildFlyのリッスンしているポート番号>/apppot/

4.1.2. AppPotログ設定ファイル

  • log
    ログの出力先ディレクトを指定してください。
    カレント(.)を指定した場合は、WildFlyの実行ユーザーのホームディレクトリにログファイルが出力されます。
  • log4j.appender.Stew
    デフォルトの設定(org.apache.log4j.DailyRollingFileAppender)では日次でログファイルがローテーションされます。
    Log4Jの設定に従って、他のログ出力方式に変更することができます。

設定例

# Define the root logger with appender Stew
log = .
log4j.rootLogger = INFO, Stew
-Dlog4j.configuration=log4j.properties
log4j.debug = true

# Define the Stew appender
log4j.appender.Stew=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Stew.File=${log}/apppot_114.log
log4j.appender.Stew.DatePattern='.'yyyy-MM-dd

# Define the layout for Stew appender
log4j.appender.Stew.layout=org.apache.log4j.PatternLayout
log4j.appender.Stew.layout.conversionPattern=[%d{dd/MM/yyyy HH:mm:ss,SSS}]: [%p]: %m%n

4.1.3. AppPot設定ファイル

  • stew.certificate.path
    サーバー証明書
  • stew.url
    AppPotを使用するアプリのためのDBに接続するURL。
    アプリ用のDBは自動生成され、DBの名前はAppPotの管理用DBの中で管理されます。
  • stew.username
    AppPotを使用するアプリのためのDBに接続するDBユーザーのアカウント。
  • stew.password
    AppPotを使用するアプリのためのDBに接続するDBユーザーのパスワード。
  • root.password
    AppPot内のrootであるapppot_adminユーザーのパスワード。
    AppPotをインストール後、はじめて起動する際にこの設定ファイルの値でapppot_admin
    ユーザーのパスワードを設定します。
    root.passwordに値が設定されていない場合、AppPotが内部的に持っているデフォルトパスワード「123456」が使用されますので、起動後、管理画面からパスワードの変更を行うことを強く推奨します。

  • 設定例
    # To change this template, choose Tools | Templates
    # and open the template in the editor.    
    # default token age hour
    stew.default.token.age = 300
    stew.numberOfPushNotifyService=1
    #multiLanguage
    languageSupports=en_US,ja
    languageDefault=ja
    #Apple push notification
    #Server certificate path  
    stew.certificate.path =/var/cers/
    stew.certificate.password =123
    #Log level ERROR | MONITOR | NONE
    stew.log.level=ERROR
    #Config for customer's server
    stew.url = jdbc:mysql://localhost:3306
    stew.username = apppot_db
    stew.password = samplepassword
    # Configure WebLogic Data Source for JDBC Connection of Service APIs
    stew.WebLogic.DataSourceName=JDBC_Data_Source_MSSQL
    #Config for web root
    stew.webroot = apppot
    stew.Database_SQLServer_Mode =false
    #Config for supper admin's password
    root.password = 123456

4.1.4. 管理画面DB接続設定ファイル

AppPotの管理画面が使用するデータベースへの接続情報を記載します。

変更するのは下記です。

  • hibernate.connection.driver_class
    JDBCドライバのクラス名
  • hibernate.connection.username
    データベースへの接続ユーザー名
  • hibernate.connection.password
    データベースへの接続ユーザーのパスワード
  • hibernate.connection.url
    接続URL
    「3. AppPot用のデータベース作成」で作成したデータベースを使用します。

設定例

 <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
 <property name="hibernate.connection.username" value="apppot_db"/>
 <property name="hibernate.connection.password" value="samplepassword"/>
 <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/apppot_db?useUnicode=true&amp;characterEncoding=UTF-8"/>

4.2. Warファイルの生成

設定変更が完了後、再度Warファイルにアーカイブしてください。

以下はAppPotの設定ファイルを入れ替えて、Warファイルにパッケージするシェルスクリプト(package.sh)です。

unzip $1 -d work/
cp conf/beans.xml work/WEB-INF/
cp conf/web.xml work/WEB-INF/
cp conf/weblogic.xml work/WEB-INF/
cp conf/jboss-web.xml work/WEB-INF/
cp conf/log4j.properties work/WEB-INF/classes/
cp conf/stew.properties work/WEB-INF/classes/
cp conf/persistence.xml work/WEB-INF/classes/META-INF/

cd work/

jar cvf ../apppot_2.0.war ./*

このスクリプトは以下で公開しています。

https://gist.github.com/rsogo/1eae96783178f431066d

4.2.1. ディレクトリ構成

このシェルを動作させるためのディレクトリ構成は以下のとおりです。

{任意の作業ディレクトリ}/
  package.js          ・・・メインのスクリプト
  conf/               ・・・変更した設定ファイルの配置場所
    beans.xml
    persistence.xml
    weblogic.xml
    jboss-web.xml
    stew.properties
    log4j.properties
    web.xml
  work/               ・・・作業用ディレクトリ
  AppPot_2.0.war      ・・・生成されたwarファイル

4.2.2. 実行手順

オリジナルのAppPotのWarファイルを引数に渡すことで、設定ファイルを入れ替えて、新しいWarファイルを作成します。

$ ./package.sh {変更前のAppPot.war}
  • 実行例
$ ./package.sh /tmp/AppPot_2.0.war

4.3. AppPotのデプロイ

WildFlyの起動

{WILDFLY_HOME}/bin/standalone.sh

AppPotのWarファイルをセットアップしたWildFlyの下記の場所に配置します。
{WildFly_HOME}/standalone/deployments

デプロイが成功したら、下記のURLにアクセスしてAppPotの管理画面が表示されることを確認してください。
http://{ホスト名}:{WildFlyのポート番号}/{jboss-web.xmlに指定したコンテキストルート}/

http://localhost:8080/apppot/

4.4. AppPotのアンデプロイ

deploymentsディレクトリに生成されているdeployedファイルをundeployにリネイムすることで、アンデプロイが開始されます。

$ cd {WILDFLY_HOME}
$ mv deployments/{AppPotのWarファイル名}.deployed deployments/{AppPotのWarファイル名}.undeploy
  • 実行例
  $ mv deployments/AppPot_2.0.war.deployed deployments/AppPot_2.0.war.undeploy

アンデプロイが完了すると、undeployedファイルが生成されます。