Maharaのインストール
ポート鮒ぉ利を作成用ソフト Mahara のインストールで嵌ったのでメモ
Mahara(https://mahara.org/)のデータベースには MySQL と PostgreSQL が使用できるが、インストールしてみるとその両方でエラーが発生し正常にインストールできないとう現象があった。
MySQLの場合
MySQL を使用した場合、初回に Mahara のURLを開いたときにセットアップスクリプトが実行されるが、そのスクリプトの中で
CREATE TRIGGER "testtrigger" BEFORE INSERT ON "testtable" FOR EACH ROW BEGIN END;
というSQL文が発行される。
ところがこの時点で testtable がないために
Maharaれuires permission to create database triggers, but is unable to do so. Please ensure that the trigger privilege has been granted to the appropriate user in your MySQL installation. For instructions on how to do this, see https://wiki.mahara.org/index.php/System_Administrator's_Guide/Granting_Trigger_Privilege
と言うメッセージが表示されて止まる。
配布されているファイルを見ても、testtable を作っているスクリプトはないし、テーブルレイアウトも分からないので詰む。
PostgreSQL の場合
CentOS の場合なので、もしかしたら他のOSなら問題ないのかもしれないが、CentOS 6.4 + PostgreSQL 8.4.13 の場合、Mahara のURLを開くと、以下のようなエラーが表示される
postgres7 error: [-1: Database connection failed] in CONNECT
httpd の error ログを見ると、pg_connect でエラーがでて PstgreSQL のサーバに接続できないのが分かる
[WAR] 54 (lib/adodb/drivers/adodb-postgres64.inc.php:691) pg_connect(): Unable to connect to PostgreSQL server: FATAL: \xe3\x83\xa6\xe3\x83\xbc\xe3\x82\xb6"mahara"\xe3\x81\xae\xe3\x83\x91\xe3\x82\xb9\xe3\x83\xaf\xe3\x83\xbc\xe3\x83\x89\xe8\xaa\x8d\xe8\xa8\xbc\xe3\x81\xab\xe5\xa4\xb1\xe6\x95\x97\xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f
これは PostgreSQL の設定で Linux 上のアカウントと PostgreSQL のアカウントが一致しないと発生するようで、/var/lib/pgsql/data/pg_hba.conf の最後にあるログインメソッドを ident から password に変更すればいい。
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
↓
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all password # IPv4 local connections: host all all 127.0.0.1/32 password # IPv6 local connections: host all all ::1/128 password
最近 PostgreSQL を使うプログラムが増えてきたような感じがするので、また勉強しとこう