Memo/Aipo

https://dexlab.net:443/pukiwiki/index.php?Memo/Aipo
 

無料グループウェア Aipo

  • 無料グループウェア 『アイポ5』
    • 日本語
    • 携帯対応
    • スマートフォン対応(iPhone,Android,WindowsMobile?)
    • スケジュール(カレンダー)管理
    • 勤怠管理
    • インストール型
    • Java + Tomcat + PostgreSQL
    • オープンソースだが、修正して販売するにはライセンス料支払いが必要

リマインダーメール

vi /usr/local/aipo/tomcat/webapps/aipo/WEB-INF/conf/JetspeedJResources.properties
----
daemon.entry=remainderscheduledaemon

daemon.remainderscheduledaemon.classname=com.aimluck.eip.schedule.daemon.RemainderScheduleDaemon
daemon.remainderscheduledaemon.interval=30
daemon.remainderscheduledaemon.onstartup=false
----
/usr/local/aipo/bin/shutdown.sh
/usr/local/aipo/bin/startup.sh

テーブル構成

  • Aipo5.1.0.1a
  • eip_t_mail
    1. org001=# \d eip_t_mail
    2.                                         TABLE "public.eip_t_mail"
    3.    COLUMN    |            TYPE             |                          Modifiers                          
    4. -------------+-----------------------------+--------------------------------------------------------------
    5.  mail_id     | INTEGER                     | NOT NULL DEFAULT NEXTVAL('eip_t_mail_mail_id_seq'::regclass)
    6.  user_id     | INTEGER                     | NOT NULL
    7.  account_id  | INTEGER                     | NOT NULL
    8.  folder_id   | INTEGER                     | NOT NULL
    9.  TYPE        | CHARACTER(1)                | 
    10.  read_flg    | CHARACTER(1)                | 
    11.  subject     | CHARACTER VARYING           | 
    12.  person      | CHARACTER VARYING           | 
    13.  event_date  | TIMESTAMP WITHOUT TIME zone | 
    14.  file_volume | INTEGER                     | 
    15.  has_files   | CHARACTER(1)                | 
    16.  file_path   | CHARACTER VARYING           | 
    17.  mail        | bytea                       | 
    18.  create_date | DATE                        | 
    19.  update_date | TIMESTAMP WITHOUT TIME zone | 
    20. Indexes:
    21.     "eip_t_mail_pkey" PRIMARY KEY, btree (mail_id)

DBパスワード

  • 以下にファイルがあり、「********」の部分がパスワード
    cat /home/aipo_postgres/.pgpass 
    localhost:5432:org001:aipo_postgres:********

Webメールを定期的に削除する

  • 以下非公式なので何が起きても自己責任。

Aipo5.1のWebメールはPOPクライアントとして動作するようで、データベース内にどんどんメールがたまり、消えません。バックアップ時にも時間と容量が圧迫されます。
サポートセンターにメールしたところ、「また、Webメール一括削除SQL等につきましては、現在提供させていただいておりません。」との回答。

  • 6.5GB程ためこんだユーザが以下のエラーで受信できなくなりました。
    org.apache.turbine.util.TurbineException:
     Error rendering Velocity template:
     /controls/html/jetspeed.vm:
     Invocation of method 'getContent'
     in class org.apache.jetspeed.portal.security.portlets.CacheableStatefulPortletWrapper
     threw exception class java.lang.OutOfMemoryError : Java heap space
  • 1ヶ月より前のメールを削除
    psql -U aipo_postgres -p 5432 org001
    
    DELETE FROM eip_t_mail WHERE CAST(event_date AS TIMESTAMP) <= (CURRENT_TIMESTAMP - INTERVAL '1 month');
    
    メール実体を削除
    find /usr/LOCAL/aipo/tomcat/webapps/aipo/WEB-INF/mail/ -TYPE f -mtime +31 -EXEC rm -f {} \;
  • cronに設定。mailディレクトリはrootユーザなので、rootユーザで実行。1日に1回上記コマンドを実行。中身は環境に合わせて変える。
    sudo su -
    
    cat >> /usr/local/aipo/bin/aipo_cleanup.sh << 'EOS'
    #!/bin/bash
    #
    # aipo cron
    #
    # - encoding : utf-8
    
    AIPO_HOME=/usr/local/aipo
    AIPO_POSTGRES_USER=aipo_postgres
    port_num=5432
    
    # Webメールが多すぎるとエラーが出るため、1ヶ月以上前のメールは削除
    sudo -u $AIPO_POSTGRES_USER $AIPO_HOME/postgres/bin/psql -U $AIPO_POSTGRES_USER -p $port_num org001 -c "delete from eip_t_mail where cast(event_date as timestamp) <= (current_timestamp - interval '1 month');"
    
    find $AIPO_HOME/tomcat/webapps/aipo/WEB-INF/mail/ -type f -mtime +31 -exec rm -f {} \;
    EOS
    
    
    chmod 755 /usr/local/aipo/bin/aipo_cleanup.sh
    ln -s /usr/local/aipo/bin/aipo_cleanup.sh /etc/cron.daily/

Aipo5でDNSキャッシュがクリアされない

  • メールサーバのIPだけ変わった後、 Webメール機能で送受信できなくなりました。
  • メールサーバのログをみても、そもそもアクセスが無い。ということでJavaがキャッシュしているだとうと考えググるとありました。
  • Javaのセキュリティ設定で、TTLのデフォルトが-1(無期限)になっているため。これを 0(キャッシュしない)に変更
    1. chmod 644 /usr/local/aipo/jre/lib/security/java.security
    2. vi /usr/local/aipo/jre/lib/security/java.security
    3. ----
    4. networkaddress.cache.ttl=0
    5. ----
  • 再起動
    1. cd /usr/local/aipo/bin/
    2. ./shutdown.sh
    3. ./startup.sh

伝言メモのデフォルトを「選択して下さい」に変更

  • 伝言メモ追加の宛先について
  • 伝言メモのデフォルトを「選択して下さい」に変更。デフォルトの「ユーザ全員」だと誤って全員に送信してしまうため
    1. --- /usr/local/aipo/tomcat/webapps/aipo/javascript/aipo/note/form.js        2010-04-27 17:54:58.000000000 +0900
    2. +++ /usr/local/aipo/tomcat/webapps/aipo/javascript/aipo/note/form.js       2010-04-27 17:56:16.000000000 +0900
    3. @@ -62,7 +62,7 @@
    4.  }
    5.  
    6.  aipo.note.changeGroup = function(link, group, sel) {
    7. -    aimluck.utils.form.createSelect("dest_user_id", "destuserDiv", link + "?mode=group&groupname=" + group + "&inc_luser=false", "userId", "aliasName", sel, '<option value="all">(ユーザー全員)<\/option>');
    8. +    aimluck.utils.form.createSelect("dest_user_id", "destuserDiv", link + "?mode=group&groupname=" + group + "&inc_luser=false", "userId", "aliasName", sel, '<option value="">(選択して下さい)</option><option value="all">(ユーザー全員)<\/option>');
    9.  }
    10.  
    11.  aipo.note.onReceiveMessage = function(msg){

アンインストール


another postmaster may be running

  1. cd /usr/local/aipo/bin
  2. bash shutdown.sh
  3. bash startup.sh
  4.  
  5. pg_ctl: another postmaster may be running; trying to start postmaster anyway
  6. pg_ctl: could not start postmaster
  • 解決方法
    • プロセスが残っていないか確認。複数ポートで起動している場合は注意。
      1. ps aux | grep postmaster
    • 残っていないなら、pidを削除
      1. cd /usr/local/aipo/
      2. rm ./postgres/data/postmaster.pid
      3. cd bin
      4. bash shutdown.sh
      5. bash startup.sh

携帯でみると真っ白になる対策

  • / -> /aipo/ にリダイレクトしようとして失敗している模様
  • 対策 .htaccessやhttpd.confでhttpヘッダでリダイレクトを行うようにする
    # 携帯でリダイレクトに失敗して画面が真っ白になる対策
    RedirectMatch ^\/$ http://group.example.com/aipo/
  • iモードエミュレータのエラー
    ==<HTMLのチェックを行います>==
    <meta>に設定された属性"http-equiv"に指定されている値"refresh"は正しくないため無視されました。
    ==<HTMLのチェックが終了しました>==
    読込みサイズ: 228
    読込み完了。
    ============================================================
  • 出力しているhtml
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <META HTTP-EQUIV="refresh" CONTENT="0;URL=/aipo/">
    <title>Aipo</title>
    </head>
    <body>
    </body>
    </html>

セッションタイムアウトの延長

  • デフォルト30分
    /usr/local/aipo/tomcat/conf/web.xml
    ----
    <session-timeout>30</session-timeout>
    ----
  • 変更したらtomcatの再起動
    /usr/local/aipo/bin/shutdown.sh 
    /usr/local/aipo/bin/startup.sh

Apacheと同居

  • Apacheがポート80で動作しており、同一サーバにAipoをインストールする場合
  • Aipoはポート81の例
  • リバースプロキシで http://group.example.com:80/ -> http://127.0.0.1:81/ アクセスさせる
  • Basic認証 /usr/local/aipo/etc/.htpasswd
  • バーチャルホストの設定例
    • /etc/httpd/conf.d/group.example.com.conf
      <VirtualHost *:80>
          # ドメイン
          ServerName group.example.com
          ServerAdmin webmaster@example.com
          # アクセスログ
      #    LogLevel debug
          TransferLog logs/group.example.com-transfer_log
          ErrorLog logs/group.example.com-error_log
          CustomLog logs/group.example.com-access_log combined env=!no_log
      
          #---
          ProxyRequests Off
      
          #プロキシの到達先にもホスト名を伝える(Aipo利用の場合は必須)
          ProxyPreserveHost On
      
          # 127.0.0.1はAipoをインストールしている
          # サーバーのIPを指定してください
          ProxyPass / http://127.0.0.1:81/ retry=5
          ProxyPassReverse / http://127.0.0.1:81/
      
          #---
          #ベーシック認証
          <Location />
              # 携帯でリダイレクトに失敗して画面が真っ白になる対策
              RedirectMatch ^\/$ http://group.example.com/aipo/
              AuthUserFile /usr/local/aipo/etc/.htpasswd
              AuthName "Password"
              AuthType Basic
              Require valid-user
          </Location>
      </VirtualHost>

お問い合わせ画面の削除

  • お問い合わせの削除
    /usr/local/aipo/tomcat/webapps/aipo/WEB-INF/psml/user/admin/html/default.psml
    ----
    <entry id="120" parent="AipoNews"> 
    <layout position="0" size="-1"> 
    <property name="column" value="0"/> 
    <property name="row" value="0"/> 
    </layout> 
    </entry>
    ----

httpポートの変更

vi /usr/local/aipo/tomcat/webapps/aipo/WEB-INF/conf/AipoResources.properties
----
aipo.webappserver.port=81
----

vi /usr/local/aipo/tomcat/conf/server.xml
----
<Connector port="81"
----

./shutdown.sh

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:37 (35d)