*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