Mahoodle (Mahara Moodle Integration) の構築

要領が分かっていれば正味1時間でした。ここまで無償で、色々な仕事や講義の間を縫って、こんなに早くできました。さて、あなたの選択は?

概要: Moodle の認証は Shibboleth、Mahara の IdP を Moodle にすることでSSOとMoodleへのポートフォリオ機能を追加。

  • MaharaMoodle は同じ apache httpd で共存し、VirtualHost を切る
  • ただし HTTPS 化するのは Moodle だけ (IPアドレスを追加すると課金されるため)

目的

  • Mahara で Secure Login を実現
  • ID管理が不要

手法

環境

  • RHEL 6.4
  • PHP 5.3
  • Apache httpd 2.2.15
  • MySQL 5.1.69

結果

  • まずは Moodle にログイン
    mahoodle1
  • その後「ネットワークサーバ Home – Mahara」をクリックすると…
    mahoodle2
  • ちゃんとSSOできています。
 

Mahara のインストール

私の所属している研究室は「情報フルーエンシー教育講座」である。「情報フルーエンシー」とは何かというのを説明し始めると長くなるので割愛しますが興味がある方は GGR(ry。いずれにしても ICT の活用について進んでいるはずなのだが、ゼミは今だに紙配布で私はその資料をスキャンして貯めているという有様である。
そこで今はやりつつある「eポートフォリオ」をインストールし活用することを思いついた。事実上のデファクトスタンダードであり、Moodle との親和性が高い Mahara を選んだ。インストールの際にハマったので備忘録ていどに記述する。

  • サーバの準備: Moodle が動作すれば問題ないはず
  • 残念ながらこんなワーニングが…maharaerror
  • 何度 config.php を見直しても間違いはない。データベースをドロップして同様に試すと「コネクションできない」というメッセージに変わるので、接続の問題ではない。
  • MySQLのログを眺めると、
    130123 19:59:28 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
    130222 10:17:30 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
    130222 10:17:30 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
    130222 10:17:36 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
    130222 10:17:36 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
    130222 10:20:41 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
    130222 10:20:41 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
    130222 10:22:56 [ERROR] Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50077, now running 50529. Please use mysql_upgrade to fix this error.
    130222 13:14:56 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
    130222 13:14:56 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
    
  • そうかMySQLバージョンを上げた部分と整合性が取れてないのか…
  • mysql_upgrade と flush privileges; でどや! maharainst
  • おめでとうございます! あとは「Install Mahara」を押すだけでOK。

参考