*Aipo(アイポ) [#m7a2750b]

RIGHT:更新日&lastmod();

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

-ポート80にアクセスし、ApacheのProxyを利用してApache、Aipoが両方利用できるようにする。
-SSLはPort8443を利用する(Aipoデフォルト)

***インストール [#v498dc03]

Aipo5を[[ここ:http://aipostyle.com/]]から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

&color(red){ここでそのままインストールするとポートが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/

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

***起動 [#h6f3ce8d]
 # 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

***終了 [#mab9b50b]
 # ./shutdown.sh
 waiting for postmaster to shut down..... done
 postmaster stopped
 Shutdown Aipo.

**Apacheと連携 [#a931766d]
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の利用 [#e107cc4a]

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

[[自分でCA(認証局)を作成>Linux Memo/SSL証明書#CA]]にあるように証明書作成してから

***keystoreの作成 [#x7187cba]
秘密鍵と証明書をpkcs12で1つのファイル(keystore)にする

-newkey.pem:PEM形式の秘密鍵
-newcert.pem:PEM形式の公開鍵

 # 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複数インストール [#sb911825]

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のコピー [#b9f7e2a8]

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

 $ psql -e org002 < org001.dump
 パスワード: (上と同じ)

***Aipoのコピー [#i9fa6315]
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を起動

**その他設定 [#q47d9443]

***Aipoの移動の注意点 [#z880ccc1]

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

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

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

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

その後Aiopを起動すればOK

***Aipoのアンインストール [#j19637e2]

-''アイポの停止''~
アイポを削除する前にアイポを必ず停止
 # cd /usr/local/aipo/bin 
 # sh shutdown.sh 

-''アイポのフォルダを削除''~
アイポを展開したフォルダごと削除 
 # rm -rf /usr/local/aipo 
  
-''データベース接続用ユーザーの削除''~
アイポインストール時に自動的に作成~
「aipo_postgres」というlinuxユーザーを削除
 # /usr/sbin/userdel -r aipo_postgres 

***Login画面でユーザ名を非表示 [#b9e4e213]

/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 [#m1605727]

デフォルトは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と同じする [#l8814d3b]

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について [#u4f347eb]

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