2011年4月30日土曜日

Aipo 6

Cです。

グループウェアのAipo6を試してみたいと思います。
最初はDebian最小インストール。これお決まり。

そして必要なパッケージをじゃんじゃん入れていこう。

パッケージじゃんじゃん
■SSHサーバ
#apt-get -y install openssh-server

■JRE
#apt-get -y install openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib

■Tomcat
#apt-get -y install tomcat6
#apt-get -y install tomcat6-admin tomcat6-examples tomcat6-docs

#vi /etc/default/tomcat6
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk
修正する
JAVA_HOME=/usr/lib/jvm/java-6-openjdk

#vi /etc/tomcat6/tomcat-users.xml
tomcat-usersがコメントアウトされているので外して有効にする。
そして下記ユーザを追記

<role rolename="admin"/>
<role rolename="manager"/>
<user password="admin" roles="admin,manager" username="admin"/>

■apache
#apt-get -y install apache2

proxy proxy_ajpを有効にする
#a2enmod proxy
#a2enmod proxy_ajp

tomcat用apacheコンフィグ作成
#vi /etc/apache2/conf.d/tomcat
<Location /aipo/>
ProxyPass ajp://localhost:8009/aipo/
Order allow,deny
Allow from All
</Location>



tomcatコンフィグ修正
#vi /etc/tomcat6/server.xml

↓これのコメントアウトを消して有効にする。
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->

↓こうする
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

■PostgresSQL
#apt-get -y install postgresql
#apt-get -y install pgadmin3

postgresユーザのパスワードを設定する
#passwd postgres
password

認証ユーザの追加
#vi /etc/postgresql/8.4/main/pg_hba.conf

local all postgres,aipo_postgres ident

リスタート
#/etc/init.d/postgresql restart

Aipoユーザを作成
#useradd aipo_postgres

postgresqlユーザーのaipo_postgresを作成
#sudo -u postgres createuser aipo_postgres
新しいロールをスーパーユーザとしますか? (y/n) y

postgresqlユーザーにパスワードを設定する準備
#sudo -u postgres psql template1

postgresqlユーザーのaipo_postgresにパスワード設定
template1=# alter user aipo_postgres with password 'aipo';

postgresqlユーザー postgresパスワード設定
template1=# alter user postgres with password 'postgres_db_pass';

template1=# \q

データーベース作成
#sudo -u postgres createdb org001 --owner=aipo_postgres

現在、作成済みデーターベースを確認
#sudo -u aipo_postgres psql -l

#service tomcat6 restart
#service apache2 restart

■Aipo導入
ダウンロード
#wget http://aipo.googlecode.com/files/aipo6000ja_linux.tar.gz

ディレクトリ注意すること。
#tar zxvf aipo6000ja_linux.tar.gz
#tar zxvf aipo6000.tar.gz

#cp aipo/src/postgresql-8.4-702.jdbc4.jar /usr/share/tomcat6/lib/
#cp aipo/src/tools.jar /usr/share/tomcat6/lib/
#cp -R aipo/src/webapps/aipo /var/lib/tomcat6/webapps/
#cp -R aipo/src/webapps/ROOT/* /var/lib/tomcat6/webapps/ROOT/
#cp -rf aipo/src/initdata/psml /var/lib/tomcat6/webapps/aipo/WEB-INF
#cp -rf aipo/src/initdata/files /var/lib/tomcat6/webapps/aipo/WEB-INF
#cp -rf aipo/src/initdata/mail /var/lib/tomcat6/webapps/aipo/WEB-INF
#sed -i "s/cayenne.dbcp.username=postgres/cayenne.dbcp.username=aipo_postgres/g" /var/lib/tomcat6/webapps/aipo/WEB-INF/datasource/dbcp-org001.properties
#sed -i "s/cayenne.dbcp.username=postgres/cayenne.dbcp.username=aipo_postgres/g" /var/lib/tomcat6/webapps/ROOT/WEB-INF/datasource/dbcp-org001.properties
#sed -i "s/aipo.webappserver.port=8080/aipo.webappserver.port=80/g" /var/lib/tomcat6/webapps/aipo/WEB-INF/conf/AipoResources.properties
#sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -f /root/aipo/src/initdata/sql/org001.sql
#sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -f aipo/src/initdata/sql/sample.sql

#sudo chown -R tomcat6:tomcat6 /var/lib/tomcat6/webapps/aipo

#vi TokenKey.sh
#!/bin/sh
#securityTokenKey作成
seed="0123456789abcdefghijklmnopqrstuvwxyz"
key=""
count=0
while [ $count -lt 128 ]; do
ran=`expr $RANDOM % 36 + 1`
char=`expr substr $seed $ran 1`
key=$key$char
count=`expr $count + 1`
done
echo -n $key > /var/lib/tomcat6/webapps/aipo/WEB-INF/conf/securityTokenKey.txt
echo -n $key > /var/lib/tomcat6/webapps/ROOT/WEB-INF/classes/aipo/securityTokenKey.txt

# cp /var/lib/tomcat6/webapps/aipo/WEB-INF/conf/securityTokenKey.txt /var/lib/tomcat6/webapps/aipo/WEB-INF/conf/securityTokenKey.txt.backup

# cp /var/lib/tomcat6/webapps/ROOT/WEB-INF/classes/aipo/securityTokenKey.txt /var/lib/tomcat6/webapps/ROOT/WEB-INF/classes/aipo/securityTokenKey.txt.backup

実行
# bash TokenKey.sh

後はtomcatとapacheをリスタートすればいけるはず。

28 件のコメント:

  1. こんにちは!&はじめまして。
    拝見しておりまして、とても勉強になっております。

    同じく、DebianLennyでaipo6を走らせたいと考えております。
    そこで、ちょっとご質問があります。

    tomcatのコンフィグ修正ですが、

    tomcatコンフィグ修正
    #vi /etc/tomcat6/server.xml

    ↓これをコメントアウトを消して有効にする。

    と本文にございますが、これの部分が消えているようで、分かりませんでした。
    もし、よろしければ、ご教授頂けないえしょうか。
    よろしくお願いいたします。

    返信削除
  2. すいません。
    XMLのタグをそのまま貼り付けていたので、
    消えてしまっていました。

    /etc/tomcat6/server.xml このファイルの

    ↓この部分のコメントアウトを外して有効にしてあげて下さい。
    <!--
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    -->


    記事の内容もこっそり修正しておきました。

    返信削除
  3. おおぉ!早速のコメありがとうございますっ!
    そして、人柱…お疲れ様でございます。本当に助かっています。

    これから、早速、続きを試してみたいと思います。

    追伸…先ほどのコメ「ご教授頂けないえしょうか。」→えしょうかで、すいません。

    返信削除
  4. 早速の修正ありがとうございます。
    実はその後、順を追って作業を行っているのですが、下記部分で躓いてしまいました。

    認証ユーザの追加
    #vi /etc/postgresql/8.4/main/pg_hba.conf

    local all postgres,aipo_postgres ident

    の部分、保存コマンド「ZZ」「:w!」等を行っても、E212:Can't open file for writing を返されて、保存ができません。何か特別な方法があるのでしょうか。

    何度も質問して申し訳ありません。

    返信削除
  5. あら、viがこのエラーを出すのは、
    パスが存在しないファイルをいきなりviで指定したときに出るエラーです。

    もしかすると環境が違って、「/etc/postgresql/8.4/main/pg_hba.conf」
    このファイルの場所が違うのかもしれません。

    私の環境はDebian 6 squeeze に上記手順でやりました。
    お使いのディストリビューションは何でしょうか?

    もしくは、postgresqlのバージョンが違うのかもしれません。

    postgresのバージョンが違うと、/etc/postgresql/8.1/main/pg_hba.conf
    とかになってしまうので、viが「そんなファイル無いから書き込めない」と怒ります。

    viを使うときは、tab補完を駆使してファイルが存在することを確認してから編集すると便利ですよ。

    返信削除
  6. あと、rootで作業しているでしょうか?
    パーミッションで書き込み権限が無い時も、
    「E212:Can't open file for writing」
    怒ってきます。

    返信削除
  7. さすらいのDebian初心者2011年6月3日 3:41

    お返事ありがとうございます!
    まさに、ご指摘の通りでした。lennyでpostgresqlをaptすると、9.0がインストールされていました。
    tab補完を駆使してると夜が明けそうだったので、単純にrestartをかけて、ver.の確認ができました。(rootで作業しております)

    そのうち、lennyの挙動がおかしくなり(関係ないところで)、この際なので「Cさん」のコメントを見て、Squeezeに挑戦し、クリーンインストールから、「Cさん」の記述どおりに追ってみました。

    すると、
    #service tomcat6 restart
    #service apache2 restart

    のapache2のrestartで、failed!となりました。たぶん、tomcatとの連携が出来ていないから…かなと思ったり。
    Syntax error Line1 of /etc/apace2/conf.d/tomcat:ProxyPasss…云々かんぬんです。
    この場合、ファールのまま、進めて良いのか、連携が取れないと駄目なのか、再度教えてください。

    突然、質問の嵐からスタートして、本当に申し訳ありません。おとなしくCentOS入れておけば…と思う今日この頃、明け方午前3:40分ですが、linuxは、debianからカジリはじめたもので…うっうっ

    ※名無しのごんべも失礼かと思いまして、今回から名前を記入することにしました。

    返信削除
  8. さすらいのDebian初心者2011年6月3日 4:00

    それと追記忘れたことがあります。

    #vi /etc/tomcat6/tomcat-users.xml
    tomcat-usersがコメントアウトされているので外して有効にする。
    そして下記ユーザを追記

    role rolename="admin"
    role rolename="manager"
    user password="admin" roles="admin,manager" username="admin"

    の部分ですが、




    になるんですよね?もし、私の予想ミスなら…ごめんなさいなのですが…
    ただ、そもそも「Cさん」が分かるための…ならば、元も子もありません><

    apache2のrestartで、転んでる人間の言うことでもなかったり…!?

    返信削除
  9. さすらいのDebian初心者2011年6月3日 4:04

    <role rolename="admin"/>
    <role rolename="manager"/>
    <user password="admin" roles="admin,manager" username="admin"/>

    クワッ!
    なるほど…最初の指摘…私が同じ轍を…タグで消えちゃうんですね!

    返信削除
  10. 日が変わってしまいましたが、
    謎が解けました。

    諸悪の根源は「タグ消失」

    ---------------------------------------
    tomcat用apacheコンフィグ作成
    #vi /etc/apache2/conf.d/tomcat

    ProxyPass ajp://localhost:8009/aipo/
    Order allow,deny
    Allow from All
    --------------------------------------
    こう記載してしまっていましたが。
    正しくは↓です。


    <Location /aipo/>
    ProxyPass ajp://localhost:8009/aipo/
    Order allow,deny
    Allow from All
    </Location>

    記事内容修正しました。
    tomcat-userのところも指摘ありがとうございます。

    これでどうでしょうか。

    返信削除
  11. さすらいのDebian初心者2011年6月3日 12:32

    こんにちは!
    変更後、apache2のりスタートも無事進みました。

    修正ありがとうございます!
    不思議なもので、こうしてワクワクしながら導入しているといると眠気が飛ぶものです…^^;
    引き続き、aipoの導入編を進めていきたいと思います。
    また、質問が出るかも知れませんが、よろしくお願いします。

    返信削除
  12. さすらいのDebian初心者2011年6月3日 13:37

    #sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -f /root/aipo/src/initdata/sql/org001.sql

    こちらの構文のところで、「許可がありません」とメッセージが発生しました。

    この構文を入力する前、#sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -
    と、ここまででエンターを押してしまい、余計なコマンドラインオプション"-"は無視されます と返され、
    psql(8.4.7)
    "help"でヘルプを表示します と表示され、
    org001=# となりましたので、/qで抜けて、再度、間違いないよう、構文をすべて入力し、エンターを押したら、このような状態となりました。

    返信削除
  13. 仮想マシンにsqueezeをクリーンインストールし上記手順に沿ってやってみました。

    #sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -

    一度このように間違ってみると同じように「余計なコマンド~」となりますが、
    再度、
    sudo -u aipo_postgres /usr/bin/psql -U aipo_postgres -d org001 -p 5432 -f /root/aipo/src/initdata/sql/org001.sql

    を入力したところ、正常にデータベースが初期化されてしまいました。

    一体なにが違うのかと考えたところ、
    もしかすると/rootで作業をしてこられたでしょうか?

    私は/webというディレクトリを作り作業をしておりました。

    確かにクリーンインストール後上記手順にそのまま沿っていくと作業ディレクトリが「/root」になってしまうと思います。

    もしかするとソレが原因かもしれません。

    やり直す場合には/root/aipoディレクトリを丸ごと削除し
    postgresqlを再インストールしなおさなければなりません。

    ちなみに、SSHで接続してあげるとブログからコピペできるので楽ですよ。

    返信削除
  14. さすらいのDebian初心者2011年6月3日 18:50

    仮想テスト、ありがとうございます。

    私の作業場所は、ターミナルでデスクトップ上に/tmpディレクトリを作成し、ディレクトリのユーザー、グループをそれぞれ、chown chgrp で所有者を変更し、cd /home/ログインユーザー名/デスクトップ/tmpに移動し、そこで作業しておりました。root@サーバー名:/home/ユーザー名/デスクトップ/tmp# での作業です。

    癖でディレクトリの所有者を変えてしまうんで、そこかも知れませんので、再度、挑戦してみます。

    もしかすると、その辺りに答えがありますでしょうか。
    これも勉強!と思っておりまして、すべて手入力で行っております。ホームページとプリントアウトもしながら、メモも途中で挟みつつと、本当に助かっております。

    返信削除
  15. さすらいのDebian初心者2011年6月6日 12:21

    こんにちは。
    結局、どうするのか分からず、クリーンインストールから、再度、進めてみたいと思います。

    同様に/webのディレクトリを作成し進めてみます。

    ところで、postgresqlのインストール以降ですが、どこかのタイミングでpostgresqlユーザーにならないと駄目なんですよね?また、その所有権も事前に変更する必要があるのでしょうか。
    何せ、初めてづくしで、postgresql関係も調べている最中です。

    返信削除
  16. こんにちは。
    レスポンスが遅れてしまいすいません。

    postgresqlユーザですが、特別、上記手順以外にユーザをチェンジしたりする必要はありません。

    postgresユーザで操作しなければならないところは、
    「#sudo -u postgres コマンド」
    というように、そのコマンドだけ別ユーザで実行をするという手法をとっています。

    ちなみにDebianインストール時に選択するパッケージですが、全てチェックを外している状態でしょうか?

    返信削除
  17. さすらいのDebian初心者2011年6月7日 9:23

    レスポンス、気になさらないでください。
    土足でHTMLを踏んでるのは、私の方なので…

    再度、慎重に慎重を重ねてインストールを行った結果、無事にaipo6をインストールすることができました。
    本当にありがとうございます!(結局、ご提案のコピペでいけたので、単なる私の入力ミスとか…)

    Debianのインストールですが、グラフィカルデスクトップと、サーバー環境だけには、チェック入れております…実はすでに、最小環境ってことではないかも知れません…

    それと、別件になりますが、バックアップはどうされていますか?aipo公式のサイトの
    # cd /usr/local/aipo/bin
    # ./backup_handler.sh
    には、もちろんデータが無いと思いますが、今回の環境の場合のバックアップ方法を教えて貰えませんか?

    個人的には、もう1台サーバーを立てて、ssh+rsync+cronで、自動でディレクトリごと差分バックアップしようと思っております。
    どこのディレクトリを指定すればいいのかなと思いましたもので…

    返信削除
  18. こんばんわ。

    インストール成功してよかったです。

    Aipoデータのバックアップですが、
    /web配下にaipoのデータがあるので/webディレクトリを
    丸ごとバックアップを取ってしまえば問題ないと思います。

    私は、Aipo自体、どんなもんかと検証として導入してみたのでバックアップはとってないです。

    ssh+rsync+cronでコピーを取るのは問題ないと思います。
    少しややこしいのはSSHを使う場合、鍵を登録してやら無いと
    cronでまわしてもパスワードを入力してくださいでと待っちゃいます。

    具体的な方法については、今週末くらいに別記事にしたいと思いますので、少々お待ちください。

    返信削除
  19. さすらいのDebian初心者2011年6月9日 17:32

    コメントありがとうございます。
    sshの鍵作成と受け渡し、rsync+cronは、何とか分かりますので、自力でいけそうです。以前、他のグループウェアを同様にバックアップしていましたので。

    なるほど、/webディレクトリの中のaipoをそのままバックアップしてしまえばいいのですね。
    どこにデータがあるんだろ…なんて思っておりました。

    非常に助かりましたので、感動です。
    別件ですが、Cさんが別記事で自動バックアップの記事を載せるということは、私の健忘録にもなるので、とっても便利に!?
    などと思っていたりします…^^;

    返信削除
  20. さすらいのDebian初心者2011年6月10日 7:25

    疑問が出てきました。

    今回のようなapache2+tomcat6+postgreSQLを使ったaipo6の運用では、データそのものは、/aipo配下のどこにあるのでしょうか。
    aipoをインストールしても、バックアッププログラムがbinの中に生成されていないのと、もちろん、生成されたところで、debianでは加工しないと使えないということは理解できるのですが…

    バックアッププログラムを走らせるよりは、rsyncで差分データをバックアップした方がいいのかなと思ってまして。
    万が一のトラブルのときは、今回のインストール手順をすべて踏んだあと、/web以下をごっそり持ってくれば良いのでしょうか…

    返信削除
  21. こんばんわ、Cです。

    察しの通り、バックアッププログラムはCentOSでインストール用シェルスクリプトを使ってインストールしたときにしか使用する事ができません。

    rsyncで取得したほうが、間違いが無いと思います。

    復旧手順については、試していないのでなんとも言えませんが、仰るとおり、/web配下を丸ごと持ってきて、apacheなどをリスタートしてやれば、使えるようになるかと思います。

    返信削除
  22. さすらいのDebian初心者2011年8月25日 18:20

    Cさん、お久しぶりです。
    その節は、インストール指南頂き、ありがとうございました。
    Aipo6はその後、無事稼働しておりが、今も色々と試しては壁、試しては壁となっています。

    ところで、Aipoではストアというものが出来まして、「Opensocial準拠のガジェットXMLを登録」することが出来るんですよね。

    Debianで、今回は/web/aipo配下にインストールした経緯で、管理ページからガジェットをインストールしても、エラーで返されてしまうんです。

    Q&Aでも質問している方がおられたようですが、Debianでのインストールでは、回答が得られなかったようで、私もヒントを得られず、頭を抱えているところです。

    また、お時間が許されるときで構いませんので、ヒントを頂きたくメールしました。

    どうぞ、よろしくお願いします。

    返信削除
  23. さすらいのDebian初心者2011年9月1日 12:49

    Cさん、コメント掲載ありがとうございます。
    CさんはAipoサポの方じゃないのに、本当に申し訳ありません。

    このOpensocialのガジェットが面白いな!と思ったのは、こちらのAipoカスタマイズ企業のページを見てからでした。
    http://aipo.systemfriend.co.jp/letter/letter20100420

    これは面白いなと早速導入を試みるも前述のような状況でストップ。
    Aipoのプログラムの記述の中に、ファイルを格納する場所はこのディレクトリだよ…的なものが無いか、チェックをしてみても、私の技術力が足りないため、見つけることが出来ませんでした…。

    返信削除
  24. Cです。
    仕事で2週間ほど出張に行っており、ぜんぜん見れていませんでした。

    OpenSocial ガシェット良さそうですね。
    おそらくAipoの管理画面からガシェットを設定すると、
    存在しないディレクトリに配置しようとしてしまっているのかもしれません。

    ちなみに、エラー内容はどんな内容が出ていますか?

    今は手元に環境が無いのでテストができませんが、
    OpenSocialのガシェットはTomcatのwebapps/aipoディレクトリ配下に設定するようです。

    Web管理画面ではなくて手動で設定をするとなると、
    かなり困難な作業になると考えられます。なんせナレッジが無いので。

    せっかくDebianで立てて頂いたのですが、「Aipoを使う」ことが目的であれば、やはりスタンダードな方法の、CentOSにインストールをする方向に行ったほうがいいのかもしれません。

    返信削除
  25. さすらいのDebian初心者2011年9月5日 13:32

    Cさん、こんにちは。出張お疲れさまでした。

    やはり管理画面からガジェットを登録するとエラーになるのは、存在しないディレクトリだからですよね…

    エラー内容は「正しい 『 ガジェットURL 』 を指定してください」と出ます。

    CentOSのtomcatがインストールされている場所から、webapps/aipoということですよね?

    debianの場合、/var/lib/tomcat6/webapps/aipoになりますでしょうか。

    やはり、今後のことも考えるとcentOSに入れることが一番なのかも知れません…
    せっかく、debianで運用したいと思っていたのに、残念ですが、背中から後押ししてもらったようで、ちょっと勇気が出てきました。

    パッケージインストールから、centosを0から覚えるのもまた恐怖ですけど…^^;

    返信削除
  26. Cです。

    やはりディレクトリの違いっぽいですね。
    debianでは/var/lib/tomcat6/webapps/aipo であっていると思います。

    CentOS5.5だとWebにナレッジがたくさんたまっていますので、構築段階で苦労することは少ないと思います。

    パッケージのインストール等も、DebianとCentOSもLinuxですので考え方は一緒です。設定ファイルの場所とコマンドが違うだけなので、Debianでつけた知識はCentOSでも役に立ちます。
    Debianのほうがより純粋なLinuxに近い構造ですのでLinuxを学習するのにはDebianのほうが適していると思いますが、
    実際の運用(Web系)だと必ずといっていいほどRHELかCentOSになります。

    返信削除
  27. さすらいのDebian初心者2011年9月6日 16:07

    Cさん、いつもありがとうございます。

    確かにRHELかCentOSですよね…ナレッジがあるのは助かります。
    たまたま知り合いから教えて貰ったのがDebianでしたので、Debianスタートで、最近ではUbuntuじゃないの?とか色々言われ…

    CentOSへの引っ越しの腹は決まったのですが、今回導入したデータを引っ越しさせるには、webディレクトリを丸ごとCentOSに持っていけば良いのでしょうか。

    そうは行かなそうで不安なので、念のためにお聞きしました。

    返信削除
  28. Cです。お礼は要らないですよ。
    自分もdebianで挑戦しっぱなしの記事を書いてしまったので、Debianでの解決方法を提示できなくて申し訳ないです。

    Webディレクトリを丸ごと持っていっても問題はないかと思います。思うだけで正直やってみないと判らないという感じです。(apacheやトム猫等は入れる必要がありますが)

    もう1つの方法として、Aipoのデータはpostgresqlに格納されていると思うので、DebianAipoのpostgresqlバックアップを取得してCentOSでAipo環境を整えたらバックアップから復元するという方法でもいいかと思います。

    返信削除