Un nouveau monde parfumé

香り立つ備忘録

VPSにAipo7を導入した

この記事はklis Advent Calendarの4日目(12/18で2本目)の記事です。

はじめまして。かみかみです。

まったくもってお前誰だという感じだと思いますので自己紹介します。 かみかみです。普通のklis14です。以上です。

さて、故あって先日Aipoというグループウェアのインストールをすることになり、それが意外と手間だったのでブログ記事にしようと思い立ち、下書き状態で放置していた記事をついでにklis Advent Calendarの一つにしてしまえと思った次第です。

Aipoとは

共有Todoやスケジュール管理といった機能を持つグループウェアです。www.aipo.comで利用できるクラウド版と、free.aipo.comで配布されているオープンソース版があります。後者はgithubでAGPLv3で公開されているので原理主義者の方でも安心して使えるのではないでしょうか。 別にクラウド版でもよかったのですが無料プランだとTodoが使えないみたいだったのでオープンソース版を導入しました。

基本的な手順

今回はCentOS6.5上にAipo7.0.2.0をインストールしました。基本的な手順はこのページにある通り、

yum install -y make gcc readline-devel zlib-devel nmap
wget https://code.google.com/p/aipo/downloads/detail?name=aipo7020ja_linux64.tar.gz
tar -xvzf aipo7020aja_linux32.tar.gz
tar -xvzf aipo7000/aipo7000.tar.gz
cp ~/aipo7020aja_linux/aipo /usr/local/
cd /usr/local/aipo/bin/
sh installer.sh
(インストール後)
./startup.sh で起動
./shutdown.sh で終了

で基本的にはOKですが、自分の環境ではすんなりとはいきませんでした。

インストール前にする設定

/usr/local/aipo/bin/ に install.confという意味深なファイルがありますね。installer.shを実行する前に編集しておきしましょう。

netitf=eth0
dest_str=linux
check_pass=false
enc_str=utf8
def_addr=127.0.0.1

自分の場合OpenVZのVPSだったためnetitfをeth0ではなくvenet0に変更しました。def_addrは変更なしでも問題なく動いていますが変更してもいいかも知れません。

インストール後にする設定

installer.shを実行するとゴリゴリmakeが走った後

...
==Aipo7.0.2.0インストール終了==
user:aipo_postgres1
pass:XXXX
directory:/usr/local/aipo/postgres
port:5432
Aipo URL: http://127.0.0.1:80/aipo/

のように出力されインストールが終了します。 が、サーバーに次のようなソフトが入っていた場合、競合を解決する必要がある場合があります。

Apacheとの連携

自分の環境では既に動いているApacheがあるにも拘らず正常に検知されず上記のようなインストール結果となったのでポート80が競合してしまいました。 解決法としては、

  • AipoとApacheのポートをずらす
  • mod_proxy_ajpを用いてTomcat連携を行う

があります。今回は後者の方法を用いました。 まず/usr/local/aipo/tomcat/conf/server.conf の92行目付近の、

<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
--

コメントアウトを外します。既に動いているTomcatがあれば適宜変更して下さい。 続いて /etc/httpd/conf/httpd.conf に以下の内容を追記します。

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

これで http://hostname/aipo/ からアクセスすることが可能となります。

PostgreSQLの競合解決

トップページにアクセスしようとして「セッションがタイムアウトしました。 」という画面が表示される場合、PostgreSQLへの接続に失敗している場合があります。 ポートが競合している場合

  • /usr/local/aipo/postgres/data/postgresql.conf の63行目
  • /usr/local/aipo/bin/startup.sh の5行目
  • /usr/local/aipo/tomcat/webapps/ROOT/WEB-INF/datasource/dbcp-org001. properties の21行目
  • /usr/local/aipo/tomcat/webapps/aipo/datasource/dbcp-org001. properties の21行目

を変更することでAipoの持つPostgreSQLのポートを変更できます。

Tomcatとの競合解決

システムでTomcatが既に実行されている状態でAipoを起動すると、それまで起動していたTomcatに接続できなくなります。逆もまた然り。 /usr/local/aipo/bin/startup.sh の6行目以降に

export CATALINA_BASE=$AIPO_HOME/tomcat
export CATALINA_HOME=$AIPO_HOME/tomcat
export CATALINA_TMPDIR=$AIPO_HOME/tomcat/temp
export CLASSPATH=$AIPO_HOME/tomcat/bin/bootstrap.jar
export JRE_HOME=$AIPO_HOME/jre

を書き足せばOKです。

自動起動の設定

init.dスクリプトやcronを使って自動起動する際は、/etc/sudoers の

Defaults requiretty

コメントアウトする必要があります。

自分が行った手順は以上で終わりとなります。

本当はVimSublime使いを粉砕する記事とか書きたかったですがいろいろ余裕がありませんでした。お疲れ様でした。