グループウェア「Aipo」を別サーバーに移行
移行作業をしたときの覚書。ちなみにAipoのインストール・導入は初めて。
環境
移行元: CentOS 5.10, Aipo 7.0.2.0
移行先: CentOS 6.7, Aipo 7.0.2.0
参考
目次
- 移行先に必要なライブラリをインストール
- 同じバージョンのAipoを移行先にインストール
- 移行元からデータを移行
- 移行先サーバーでリストア
- nginxにリバースプロキシの設定
1.移行先に必要なライブラリをインストール
移行先のサーバーで必要なライブラリをインストールする。
# yum install gcc nmap lsof unzip readline-devel zlib-devel sudo
2.同じバージョンのAipoを移行先にインストール
公式サイトのダウンロードから移行元と同じバージョンをダウンロードしてくる。
解凍して/usr/localに配置
# tar -xzvf aipo7020aja_linux64.tar.gz
# cd aipo7020aja_linux
# tar -xzvf aipo7020.tar.gz
# mv aipo /usr/local/
インストール実行
# cd /usr/local/aipo
# sh ./bin/installer.sh
ファイヤーウォール設定
# system-config-firewall-tui
ポート番号: 81
プロトコル: tcp
スタートしてみる
# ./bin/startup.sh
found temp directory
Using CATALINA_BASE: /usr/local/aipo/tomcat
Using CATALINA_HOME: /usr/local/aipo/tomcat
Using CATALINA_TMPDIR: /usr/local/aipo/tomcat/temp
Using JRE_HOME: /usr/local/aipo/./jre
Using CLASSPATH: /usr/local/aipo/tomcat/bin/bootstrap.jar
Starting Aipo Version 7.0.2.0
Aipo URL: http://192.168.1.86:81/aipo/
http://192.168.1.86:81/aipo/にアクセスすると、ログイン画面が表示された。
3.移行元からデータを移行
移行元でバックアップ処理
# cd /usr/local/aipo
# ./bin/backup_handler.sh
確認
# ls backup
バックアップファイルを移行先に移動させる
# cd backup/
# tar -czvf aipo_data.tgz 2015092919360/
# mv aipo_data.tgz ~/
4.移行先サーバーでリストア
バックアップデータを移行先へ置いて解凍。
# mv aipo_data.tgz /usr/local/aipo/backup/
# cd /usr/local/aipo/backup/
# tar -xzvf aipo_data.tgz
# rm aipo_data.tgz
リストア実行
# cd /usr/local/aipo/bin/
# ./restore_handler.sh
pg_restore: [archiver (db)] could not execute query: ERROR: role "aipo_postgres0" does not exist
Command was: GRANT ALL ON SCHEMA public TO aipo_postgres0;
PostgreSQLに接続して確認する
パスワードの確認
# cd /usr/local/aipo/
# less tomcat/webapps/aipo/WEB-INF/datasource/dbcp-org001.properties
データベース名も「org001」というのが判明。
接続
# ./postgres/bin/psql --username=aipo_postgres org001
Role(ユーザー)の確認
org001=# \du
List of roles
Role name | Attributes | Member of
---------------+-------------+-----------
aipo_postgres | Superuser | {}
: Create role
: Create DB
「aipo_postgres0」というRoleは確かにいない。
作ることにした。
org001=# CREATE ROLE aipo_postgres0 WITH SUPERUSER PASSWORD 'hogehoge';
確認
org001=# \du
org001=# \q
Aipoの設定ファイルを編集。「aipo_postgres0」にする。
# less tomcat/webapps/aipo/WEB-INF/datasource/dbcp-org001.properties
# less tomcat/webapps/ROOT/WEB-INF/datasource/dbcp-org001.properties
Aipoを再起動してリストアを実行
# ./bin/shutdown.sh
# ./bin/startup.sh
# ./bin/restore_handler.sh
ブラウザでアクセスしてみるとエラー
セッションがタイムアウトしました。
ブラウザが切り替わらない場合は、再読み込みをお願いいたします。
timeout
ログを確認する
# less tomcat/logs/aipo.log
2015-09-30 12:29:15,090 <ERROR> (http-81-1) [JetspeedLogger.java:157]- [org001] Failed to retrieve user 'anon'
org.apache.cayenne.CayenneRuntimeException: [v.2.0.4 October 12 2007] Error detecting database type
権限周りが怪しい感じ。さっきは「aipo_postgres0」を作っただけなので、権限を設定してみる。
# ./postgres/bin/psql --username=aipo_postgres org001
org001=# ALTER ROLE aipo_postgres0 WITH CREATEROLE CREATEDB LOGIN;
org001=# \du
org001-# \q
Aipoを再起動
# ./bin/shutdown.sh
# ./bin/startup.sh
ブラウザでアクセスすると無事ログイン画面が表示された。
5.nginxにリバースプロキシの設定
URLにポート番号が付いているのはカッコ悪いのでリバースプロキシの設定をする。
# cd /etc/nginx/conf.d/
# vi aipo.conf
#
# Aipo
#
server {
listen 80;
server_name gw.hoge.co.jp;access_log /var/log/nginx/aipo.access.log;
error_log /var/log/nginx/aipo.error.log;location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:81;
client_max_body_size 20M;
}
}
nginx設定読み込み
# /etc/rc.d/init.d/nginx configtest
# /etc/rc.d/init.d/nginx reload
< Related Posts >