オープンのグループウェアのLa!cooda WIZを、お客様に頼まれましてインストールしました。今回は、Joe’sウェブホスティングのレンタルサーバーにインストールします。
La!cooda WIZをダウンロードしてインストールページを読んでみましたら、インストールスクリプトでPostgreSQLの管理者権限が必要であることが書いてありました。しかし、今回のインストール先はレンタルサーバーですので、スクリプト(postgres.sh)を解析して、手作業でインストールしました。これが苦難のはじまりです。DBの dropを5回以上繰り返して、ようやくインストールできました。ここにその記録を参考までに載せておきます。
まずは、La!cooda WIZ用のデータベースを作成しておきます。これは、レンタルサーバーのコントロールパネルから行いました。そして、アクセス用のPostgreSQLのIDを作って、データベースにアサインしておきます。ここまでは、コントロールパネルで簡単です。
次に、La!cooda WIZのインストールファイルから、wiz.tar.gzを取り出して、Webで公開されているディレクトリに展開します。そのままDocumentRootに/wizで展開します。そのとき、/wiz/filesは書き込み権限が必要です。
Joe’sウェブホスティングのサーバーは、WebサーバーからはPostgreSQLサーバーにTCP/IP経由では接続できないので、UNIXドメインソケット経由で接続するように、La!cooda WIZのデータベース接続処理を変更します。
/wiz/class/DBConnectPgsql.phpを
<div style="margin-left: 40px;">
<p>$connectionString = “host=$this->hostName port=$this->portNo dbname=$this->dbName user=$this->userName password=$this->password”;</p>
</div>
となっているところ(実際は1行)を、
<div style="margin-left: 40px;">
<p>$connectionString = “dbname=$this->dbName user=$this->userName password=$this->password”;</p>
</div>
のように修正します。
DBのアクセスするための定義ファイルを設定します。/wiz/gw.phpを次の通りに修正します。
<div style="margin-left: 40px;">
<p>$masterdb = “DB名”;<br>$db_user = “DBユーザーID”;<br>$db_password = “DBパスワード”;<br>$_ROOT_DIR_ = “インストールしたディレクトリ”;<br>$_ROOT_URL_ = “アクセスするURL”;</p>
</div>
最後にテーブルの生成と初期データの投入です。テーブル生成スクリプトcreateDbForPgSQL.sqlの1行目の
<div style="margin-left: 40px;">
<p>connect - postgres</p>
</div>
を
<div style="margin-left: 40px;">
<p>– connect - postgres</p>
</div>
にしてコメントにします。それから、次のようにスクリプトを動かします。
<div style="margin-left: 40px;">
<p>sed “s/nobody/<DBユーザーID>/g” <ルートからのディレクトリ>/createDbForPgSQL.sql | psql -U <DBユーザーID> -e <DB名></p>
</div>
ここで、DBユーザーに対するパスワードを聞いてきます。
以上のコマンドは、createDbForPgSQL.sql内のnobodyと定義している部分を、DBにアクセスするユーザーIDに置換して、そのスクリプトをDBユーザーでアクセスしたDBにテーブルを生成して、初期データを作成しています。これはインストールスクリプトを抜粋して修正したものです。
以上で、La!cooda WIZにアクセスできます。