Aipo(アイポ)

更新日2012-02-10 (金) 15:43:19

Aipo5

Vine Linuxにインストール。 AipoはTomcat上で動作するjava サーブレットのグループウェアである。データベースはPostgreSQLを使用する。ここで注意が2点
・そのままインストールするとポート80を使用するのでApache等Webサーバとバッティングする
・PostgreSQLもインストールディレクトリに新しいSQLサーバをインストールするのでPostgreSQLがすでにインストールされているとポートが5432には既存のPostgreSQLAipo用は別途別ポートが指定される
今回はこれら考慮し以下のように設定

インストール

Aipo5をここからDownload

$ tar zxvf aipo5020ja_linux.tar.gz
$ cd aipo5020ja_linux
$ tar zxvf aipo5020.tar.gz
$ su 
# cp -a aipo /usr/local/
# cd /usr/local/aipo/bin

ここでそのままインストールするとポートが80になるので以下のファイルを変更し、ポート81に指定する。

/usr/local/aipo/bin/utf8/installer.sh

「s_port_num=80」を「s_port_num=81」に変更

ただし8080や8081などはうまくいかない8180はうまくいった

# chmod a+x installer.sh

メッセージ等がUTF-8なのでターミナルをutf-8に変更 Vine4.xでは新しいユーザでloginしてrootにならないとインストール時文字コードの関係でpostgresqlでエラーしてinstallしても動作しなない(原因別途追究の必要あり、今回手ぬき)

# /installer.sh
install directory is /usr/local/aipo/.
utf8
install directory is /usr/local/aipo/.
aipo_postgres
home directory exists
checking bashrc... file exists

(略)

ALTER ROLE
/usr/local/aipo/.
waiting for postmaster to shut down.... done
postmaster stopped
==Aipo5.0.2.0インストール終了==
user:aipo_postgres <=PostgreSQL用ユーザとしてLinuxユーザを設定される
pass:e74BQzNYNUjq  <=上記のユーザのパスワード
directory:/usr/local/aipo/./postgres
port:5433        <=PostgreSQLが動作しているときは別のPostgresを立ち上げる
Aipo URL: http://10.99.99.185:81/aipo/

インストールログはaipo/bin/install.logに残る postgresqlのユーザ、パスワードもログの最後記述されている

起動

# cd /usr/local/aipo/bin
# ./startup.sh
postmaster starting
found temp directory
Starting Aipo Version 5.0.2.0
Aipo URL: http://10.99.99.185:81/aipo/

Webでアクセスして起動を確認する。 設定はすべてWeb上から

管理者Default :admin  パスワード :admin

終了

# ./shutdown.sh
waiting for postmaster to shut down..... done
postmaster stopped
Shutdown Aipo.

Apacheと連携

httpd.confの最後に追加

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

<Location /aipo/>
     ProxyPass ajp://localhost:8009/aipo/
</Location>

Apacheとのコネクタポートは8009がデフォルトそれはaipo/tomcat/conf/server.xml に以下のように書かれている。(Windowsは"C:\aipo\dpl003\tomcat\conf\server.xml"のようだ)

   <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
   <Connector port="8009"
              enableLookups="false" redirectPort="8443" debug="0"
              protocol="AJP/1.3" />

従来のTomcatアクセスポート81をコメントアウトしtomcatの他のページをアクセスさせないため行う。たとえばTomcatの猫のトップページは表示しなくなると思われる。(未確認)

server.xml

   <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
   <!--   <==追加
   <Connector port="81"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              debug="0" connectionTimeout="20000"
              disableUploadTimeout="true" />
   -->    <==追加
   <!-- Note : To disable connection timeouts, set connectionTimeout value
    to 0 -->

Aipo,Apache再起動

SSLの利用

TomcatではSSLは秘密鍵と証明書をpkcs12で1つのファイル(keystore)にする。これを利用する

自分でCA(認証局)を作成にあるように証明書作成してから

keystoreの作成

秘密鍵と証明書をpkcs12で1つのファイル(keystore)にする

# openssl pkcs12 -export -inkey newkey.pem -in newcert.pem -out keystore.p12
Enter Export Password:
Verifying - Enter Export Password:

aipo/tomcat/conf/server.xmlを変更する

  <!--   <==削除
  <Connector port="8443"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" disableUploadTimeout="true"
              acceptCount="100" debug="0" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS"
              keystoreType="PKCS12"					<=追加
              keystoreFile="/home/okada/mk_ssl_key/keystore.p12"	<=追加
              keystorePass="*****" />				<=追加(keystore作成時のパスワード)
   -->   <==削除

Aipo複数インストール

aipo/tomcat/webapps以下のaipoをディレクトリをコピーし、PostgreSQLのDBを複製して べつaipoを動かすことができる。
アクセスは

http://(Server):8088/aipo/
http://(server):8088/aipo2/
http://(server):8088/aipo3/

よってデフォルトのwebapps/aipoとDBのorg001をどこかにバックアップしておくとよい。

一度aipoを起動してpostgresqlを起動するその後DB org001をdumpして新しいDB org002を作成し、それにリストアする。

DBのコピー

# su aipo_postgres
$ pg_dump -v org001 > org001.dump
$ createdb org002
パスワード: (インストール終了後のuser:aipo_postgres pass:***********)のpass
$ psql -e org002 < org001.dump
パスワード: (上と同じ)

Aipoのコピー

aipoを一度shutdownする

# cd /usr/local/aipo/tomcat/webapps/
# cp -a aipo aipo2

webapps/aipo2/WEB-INF/conf/postgres/Org001DomainNode.driver.xmlの一か所修正

<driver project-version="2.0" class="org.postgresql.Driver">
        <url value="jdbc:postgresql://localhost:5432/org002"/> <==ここをorg002
        <connectionPool min="5" max="50" />
        <login userName="aipo_postgres4" password="g07MnjRAZNLB"/>
</driver>

webapps/aipo2/WEB-INF/web.xmlの中の4か所を修正

<web-app>
    <display-name>Aimluck Information Portal</display-name>
    <servlet>
        <servlet-name>
           aipo2 <==== ここ
        </servlet-name>
        <servlet-class>

(略)

    <servlet-mapping>
       <servlet-name>
          aipo2  <==== ここ
       </servlet-name>
       <url-pattern>
         /portal/*
       </url-pattern>
    </servlet-mapping>
    <servlet-mapping>
       <servlet-name>
          aipo2  <==== ここ
       </servlet-name>
       <url-pattern>
         /aipo2/*  <==== ここ
       </url-pattern>
    </servlet-mapping>

その後apioを起動

その他設定

Aipoの移動の注意点

サーバ変更には、Aipoをインストール後、DB org001を新しく作成したorg002のDBにコピーする。方法は「Aipo複数インストール」を参照。

login時以下のエラーが出るとき

「これらのポートレットへのアクセスはできません。」

aipo/tomcat/webapps/aipo/WEB-INF/psml/usrの下にユーザ名にディレクトリ があるのでこれが必要なためコピーする

その後Aiopを起動すればOK

Aipoのアンインストール

Login画面でユーザ名を非表示

/usr/local/aipo/tomcat/webapps/aipo/WEB-INF/conf/JetspeedJResources.properties

181行目 
変更前 
action.login.enable.select.userlist=true 

変更後 
action.login.enable.select.userlist=false 

Session Timeout

デフォルトは30分のようだ

aipo/tomcat/conf/web.xml

 <!-- ==================== Default Session Configuration ================= -->
 <!-- You can set the default session timeout (in minutes) for all newly   -->
 <!-- created sessions by modifying the value below.                       -->
   <session-config>
       <session-timeout>30</session-timeout>
   </session-config>

この値を変更し再起動

iPadの画面をWebと同じする

aipo/backup/xreg/client.xreg

<client-entry name="iphone" hidden="false"> 
<user-agent-pattern>.*Android.*|Mozilla/5.0 \(iP.*</user-agent-pattern> 
<manufacturer>IPHONE</manufacturer> 

の行を

<client-entry name="iphone" hidden="false"> 
<user-agent-pattern>.*Android.*|Mozilla/5.0 \(iPo.*</user-agent-pattern> 
                                              ^^^^
<manufacturer>IPHONE</manufacturer> 

と変更して

aipoを再起動

DBについて

PostgreSQLのDBについては今回作成された aipo_postgres0にユーザを変更

# su aipo_postgres

パスワードは

aipo/tomcat/webapps/aipo/WEB-INF/conf/postgres/Org001DomainNode.driver.xmlの

 <login userName="aipo_postgres" password="************"/>

DBを確認

$ psql -p 5433 postgres
パスワード:  <=install時の自動作成されたパスワードを入力
postgres=# select * from pg_database;
 datname  | datdba | encoding | datistemplate | datallowconn | datconnlimit | datlastsysoid | datvacuumxid | datfrozenxid | dattablespace | datconfig |               datacl       
-----------+--------+----------+---------------+--------------+--------------+---------------+--------------+--------------+---------------+-----------+------------------------------------
postgres  |     10 |        6 | f             | t            |           -1 |         10792 |          499 |          499 |          1663 |           |
org001    |     10 |        6 | f             | t            |           -1 |         10792 |          499 |          499 |          1663 |           |
template1 |     10 |        6 | t             | t            |           -1 |         10792 |          499 |          499 |          1663 |           | {aipo_postgres0=CT/aipo_postgres0}
template0 |     10 |        6 | t             | f            |           -1 |         10792 |          499 |          499 |          1663 |           | {aipo_postgres0=CT/aipo_postgres0}
(4 行)

テーブルの確認

$ psql -p 5433 org001
org001=# \z
                        Access privileges for database "org001"
Schema |                       Name                       |   Type   | Access privileges
-------+--------------------------------------------------+----------+-------------------
public | aipo_license                                     | table    |
public | aipo_license_license_id_seq                      | sequence |
public | eip_facility_group                               | table    |
public | eip_facility_group_id_seq                        | sequence |
public | eip_m_address_group                              | table    |
public | eip_m_address_group_group_id_seq                 | sequence |
public | eip_m_addressbook                                | table    |
public | eip_m_addressbook_address_id_seq                 | sequence |
public | eip_m_addressbook_company                        | table    |
public | eip_m_addressbook_company_company_id_seq         | sequence |
public | eip_m_company                                    | table    |
(略)

以下のようなエラーが出たらユーザを一度rootに戻し再度su aipo_postgresを行う

ERROR:  invalid byte sequence for encoding "UTF8": 0xa5

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS