exCampus meets MacOSX

 exCampusというソフトウェアがある。学習環境デザイン研究の若手で有名な中原淳さん(あれぇ,気がついたらブログ化してるね!栄転おめでとう!)が率いて開発されたeラーニング構築運営プログラムである。大学などで実利用され実績もあるし,有難いことにソースコードは無償公開されている。

 授業者として,授業リソースの提供をしたり,管理するツールが欲しくなった時があって,このexCampusリリースはとてもわくわくするものだった。早々にソースコードを手に入れて,時間が空き次第,挑戦してみようと考えていたが,今日の今日まで埃をかぶせた状態にしてしまった。その間にもexCampusのバージョン2が出たりもした。
 なぜ放置していたかというと,exCampusの動作環境を満たす作業が,実は結構面倒だということだった。何しろ素人に優しくない。必要最低限の手引きがあるだけで,「eラーニングシステムを構築してみたい」という強い気持ちはあれど,「Linuxは少し取っ付きづらいかなぁ‥‥」という層の人たちにはハードルが高いのである。

 それにね,Linuxの環境を新規構築する場合,マシンの選択からして選択肢が多すぎて「迷い」コストも高すぎなのだ。パソコン大好きな人は自作パソコンとかショップブランドとかメーカー製とかの選択肢を楽しみ,そこから目的に合致した部材を調達できることが良いと考える人が多い。けれども,それは不慣れな者には,結構大変な手間なのである。
 というわけで,高等教育機関でも導入事例が増えてきたMacOS X環境でexCampusを動かしてみようと考えた。exCampus自体はオープンソフトウェアの資源を利用する汎用性の高いプログラムなので,条件さえ揃えればMacOS Xでも動くはずだ。そうなれば,あなたはお店で「Mac mini」をさっと購入して,少々退屈だが手順通りに作業すれば,すぐにexCampusシステムが出来上がるというわけだ。


 とはいえ,MacOS XでexCampusシステムを構築するには,いくつかのルートがあるし,課題もある。Mac miniを購入する場合と,企業や教育機関で導入しているOS Xサーバで実現する場合とで,手順は少し変わる。また無償提供されている開発環境(Xcode)をあらかじめインストールしなければならない。これはマシン添付のCD(DVD)かアップル社開発者サイトから入手して欲しい。
 とにかく今回はMasOS X Server 10.3環境で導入する事例を紹介してみたい。まだ導入するところまでなので,動くとはいえ実利用の保証はないからあしからず。
○環境を整備する
 exCampusを動かすために大事な環境条件は,「PHP」と「Perl」というプログラム言語環境,そして「PostgreSQL」というフリーのデータベース環境である。もちろんwebサーバソフトapacheも必要だ。
 
 OS X Serverでは,このうちPHPとPerlとapacheは標準で用意されている。動作させるのも簡単だ。必要なら「postfix」と「sendmail」いう二大mailサーバソフトも付いているのでメール環境もOKだろう。データベースソフトとしては「MySQL」が標準添付だ。本当ならばこのMySQLが動作条件ならば話が早いが,残念ながらexCampusはPostgreSQLが条件。そのためOS X ServerにPosrgreSQLをインストールしなければならない。さらに,PostgreSQLを使うためには,もう2つソフトが要る。PHPとPostgreSQL同士を橋渡しする役目のプログラム「BDI」と「DBD」だ。さらに加えて悲しいことに,PHPを再コンパイルしなければならない。
 相変わらず前口上が長いが,exCampusに添付された「構築の手引き」は,必要な情報のみ記載しているだけだし,頼りになるはずのexCampus書籍『eラーニング・マネジメント』(オーム社2003/2600円+税)はプログラムについてwebサイト以上のことは書いてないから,補うつもりで‥‥。
 さて,では何から取りかかろうか。必要なファイルのダウンロードから始めようか。
○ダウンロード
 まずはダウンロード先を列記してみよう。この期に及んで順不同だ。ちなみにこれらのURLは20050410現在だ。ちなみにexCampusについてはホームページからアクセスして使用許諾契約に合意した上で手順通りにダウンロードすることを守っていただきたい。ここに示すURLは,どうしてもコマンドラインから「curl」コマンドでダウンロードしたい場合のみ使うべきだ。
コマンド例:
sudo curl -O http://jp2.php.net/distributions/php-4.3.11.tar.gz
exCampus
http://www.excampus.org/download/archive/excampus_2.0.0.tar.gz
PHP
http://jp2.php.net/distributions/php-4.3.11.tar.gz
PostgreSQL
ftp://ftp.jp.postgresql.org/source/v8.0.1/postgresql-8.0.1.tar.gz
PostgreX (PostgreSQL for OS X)
http://www.magic3.org/postgrex/PostgreX-8.0.1.zip
Magic Postgre (OS X用PostgreSQLフロントエンドプログラム)
http://www.magic3.org/postgrex/MagicPostgre0.42.sit
DBI
http://ftp.cpan.jp/authors/id/T/TI/TIMB/DBI-1.48.tar.gz
DBD
http://ftp.cpan.jp/authors/id/D/DB/DBDPG/DBD-Pg-1.41.tar.gz
 PostgreSQLに関しては,OS X用インストーラーPostgreXとデータベースやユーザー設定を容易にしてくれるMagic Postgre(関連記事)を平田直毅さんが用意してくれているので,それを利用すると楽だ。ただし,その場合,サーバ上で直接インストール作業をする必要が出てくる。遠隔操作派の皆さんはソースコードから頑張って下さい。(私は直接操作で楽しました。)
○手引きを見ながら作業
 exCampusの圧縮ファイルをダウンロードして解凍したら,manualフォルダの「システム構築の手引き(Ver2.0)」を見よう。さっそく5ページ分をすっ飛ばして,6ページ目から本題。
【課題1) PHPを自分でインストールし直す】
 「※注意1」と「※注意2」が最初の関門だ。まず※注意1のPostgreSQLは,すでに8.01(近日中に8.02)がリリースされているので自動的にクリアされている。問題は※注意2である。PHPのconfigure optionとして「–with-pgsql」が必要だ。OS X Serverの標準添付のPHPでは,そのオプションだけ付けられていない。これが面倒な点だ。そんなわけで,PHP最新版を自分で入手して一からセッティングをしてみよう。
コマンド例:
cd /usr/local
sudo curl -O http://jp2.php.net/distributions/php-4.3.11.tar.gz
sudo tar zxvf php-4.3.11.tar.gz
cd php-4.3.11
sudo ./configure –with-pgsql –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –with-apxs –with-ldap=/usr –with-kerberos=/usr –enable-cli –with-zlib-dir=/usr –enable-trans-sid –with-xml –enable-exif –enable-ftp –enable-mbstring –enable-mbregex –enable-dbx –enable-sockets –with-iodbc=/usr –with-curl=/usr –with-config-file-path=/etc –sysconfdir=/private/etc
sudo make
sudo make install
という感じだろうか。「./configure」コマンドのオプションがやたら長いけれども,これはOS X Serverの標準状態のオプションを追加したためで,その方が安心だと思うから。とりあえずこれで問題なし。
【課題2) PostgreSQL関連のユーザー登録】
 手引きの続きを見てみよう。「◆データベースの準備」だ。手引きだと「仮にPostgreSQLのユーザー名をpostgres,databaseのユーザー名をwwwとする。」って書いてある。ユーザー管理はunix系の環境において基本知識にあたるけれども,初めてだと分かり難い。なにしろ自分一人が使うパソコンにもかかわらず,いろんなレベルのユーザー名とパスワードを設定するのは感覚として掴みにくいからだ。
 とにかく,PostgreSQLをインストールする際に,自分のOS Xに「postgres」という架空(?)のユーザを登録する必要があり,さらにPostgreSQL内に独自にユーザー名とパスワードを管理する機能があって,そこにデータベースを扱うユーザとして「www」を登録する必要があるって事が手引きの前提なのだ。
 平田さんのPostgreXを使えば,OS Xに「postgres」というユーザーを登録することは自動的にしてくれる。それからPostgreSQL内のユーザー登録にも「postgres」が登録される。あとは「www」(あるいは自分の好きなユーザー名)をPostgreSQL内に登録をすればいい。PostgreXを使用した場合,手引きの次項目「・postmasterの起動(起動していなければ)」はいらない。起動してるから。
 
【課題3) データベースの作成とスキーマ構築】
 問題は作成するデータベースの「・スキーマの構築」ってやつだ。インストールしたPostgreSQLはディレクトリ「/usr/local/pgsql/bin」にインストールされている。なので,「cd /usr/local/pgsql/bin」で移動してから,作業をしていく。
 ちなみに,この時点で皆さんはOS Xにどうやってログインしているのだろうか。私は管理者アカウントを使い,OS X付属プログラム「ターミナル(Terminal)」でサーバにログインする。サーバーで直接作業しているならログイン済みということになる。作業の途中で場合によっては権限がなくて拒否(Permission Denied)されることもある。その場合は「sudo」コマンドを組み合わせよう。打ち込むコマンドの頭に「sudo」とスペースを入れてやれば,パスワードを求められるものの強い権限で作業できる。もっとも,このデータベース作成とスキーマ構築の部分では使わずにいけそうだ。
 さて,スキーマの構築。ここで必要なのは「exCampus.sql」と「Exc1toExc2.sql」というファイル。これは解凍したexCampus2フォルダに入っている。問題は,遠隔操作している場合,サーバ上にないと困ることだ。直接操作しているしているなら,自分のデスクトップフォルダ「/Users/(ユーザー名)/Desktop」から利用すればいいが,遠隔操作の場合はあらかじめ転送しなければならない。これはPostgreXを利用する場合にも同じ問題としてあったし,Magic Postgreを使いたい場合にも困る。楽をしたいものの,遠隔操作の場合はサーバーを直接操作しにいく手間がかかるというジレンマ。うーむ,いまいちスッキリしない。ああ,そうそう,それからPosrgreSQL内のユーザー名を「www」以外に設定した場合は,「exCampus.sql」の始め1箇所を変更しなければならない。
コマンド例:
cat /Users/(ユーザー名)/Desktop/exCampus2/exCampus.sql | ./psql -U (PostgreSQLユーザー名) excampus
cat /Users/(ユーザー名)/Desktop/exCampus2/Exc1toExc2.sql | ./psql -U (PostgreSQLユーザー名) excampus
【課題4) PHPファイルの設定・転送とディレクトリの設定】
 手引きは「◆PHPファイルの配置と設定」に続く。これは簡単。exCampus2フォルダ内の「exCampus」フォルダを自分のwebサイトにアップロードすればいい。OS Xの場合は標準で「/Library/WebServer/Documents」フォルダが設定されているので,そこにそのまま転送するか,任意の名前のフォルダ(ディレクトリ)をつくって「exCampus」フォルダの中身を転送すればいい。
 のだが,ちょっとたんま!転送する前に,手引き7ページ下の部分(〜8ページまで)の「◆exCampusの基本設定」をしておこう。「exCampus」フォルダ内の「config」フォルダに「dbconfig.phps」「siteconfig.phps」「permmailbody.txt」があるので,「JeditX」など使って文字コードを保ちながら編集してやろう。
 7ページに戻り,「・いくつかのディレクトリの所有者変更」の説明で,「web server設定ファイルのUserディレクティブで指定されたユーザ」と表現されているところのものは,OS Xの場合「www」なので,コマンドの例をまねて「sudo chown www bbs_attach」以下,順に繰り返していく。ご覧のように「sudo」コマンドを頭につけたので,最初の1回だけパスワードを聞かれる。(それにしてもディレクティブなんて言葉が出てくるだけでも初めての人にはわからないもの。本当にこの分野は学習コストがかかる。)
【課題5) automailerディレクトリの準備とcronへの登録】
 問題は手引きの9ページ「◆自動配信メールの設定」か。実は解凍した「exCampus2」フォルダの直下に「automailer」というフォルダがある。これがexCampusのメール部分を司るプログラムらしいのだが,どこに置けばいいのかさっぱり説明がない。
 おみゃあさんね,それは無責任というものだがね。まあ,とりあえずどこでもいいらしいのだが,一例を示しても良かったんではなかろうか。正直,いまでもどこが正しいかわからないが,exCampusのPHPファイル達を入れたディレクトリに放り込むことにしよう。その前に「automailer.cong」を編集してから転送することにしよう。まずデータベース関連の項目を変更したら,メールサーバソフトの場所を設定する「$sendmail」項目についてsendmailではなくposrfixを使う場合は変更が必要だ。メール送信元アドレス設定の「$mailfrom」項目があるけれど,そこの見本に「shin」の後ろのバックスラッシュ記号は消さないように注意。では転送。ちなみに私が愛用しているFTPクライアントはpanic社の「Transmit」だ。
 頭痛のタネが「・automailerをcronに登録」だ。cronもわからんのに,「crontab -e」だぁ?どうやらこのコマンドを打つと設定を書き込むための画面が登場するらしい(というか画面がそうなるんだ)。
そこに(一行に続けて,ただし後半の/Libraryの前には半角スペースを)
0 * * * * /Library/WebServer/Documents/exCampus/automailer/automailer.pl /Library/WebServer/Documents/exCampus/automailer
 とでも入力してあげればいいらしい。実は今回のご紹介で私が一番怪しいところである。ははは。上の例はあくまでもディレクトリの一例なので,実際の環境にあわせて入力して欲しい。ところが,この文字を入力するためには「vi」というunixのエディタに関する知識がちょっとだけ必要なのだ。exCampusの手引きドキュメントがいかに端折って楽したかがわかってくる,う〜む。
 文字を入れるためには文字の「i」キーを押し,入力後は「esc」キー,そして「:」キーを押して,「wq」と左下に入力したらEnterキーで終了する。「cronに登録された」という意味の英語が出てくると思う。実行時のことはまた後で考えよう。
○やったぁ!完了だ!‥‥‥‥本当か?
 まだまだ先は長いです。残念。まだPHP(とPerl)がPostgreSQLとやりとりする橋渡しプログラム「DBI」と「DBD」が準備されていない。しかし,ご安心を,これは意外とスムーズにいくはずだ。
【課題6) DBIとDBDのインストールも忘れずに】
 まずは一番最初にダウンロードした‥‥え?まだしてない?あら,そうですか。ではダウンロードを改めて。
コマンド例:
cd /usr/local
sudo curl -O http://ftp.cpan.jp/authors/id/T/TI/TIMB/DBI-1.48.tar.gz
sudo curl -O http://ftp.cpan.jp/authors/id/D/DB/DBDPG/DBD-Pg-1.41.tar.gz
sudo tar zxvf DBI-1.48.tar.gz
sudo tar zxvf DBD-Pg-1.41.tar.gz
 ここまで下ごしらえしておきましょう(料理番組みたいになってきたな‥‥)。まずは「DBI」の方から取りかかります。
コマンド例:
cd DBI-1.48
perl Makefile.PL
make
make test
make install
 そして次は「DBD」のほう。
コマンド例:
cd /usr/local
cd DBD-Pg-1.41
以下同文
という感じでインストールが完了する。お疲れ様ぁ。
○お待ちどう様でした。
 というわけで,MacOS X Server上にexCampusを導入する基本ラインはこれで済んだ。メールが動くかどうかはまだ未確認だし,まだ細かい動作確認はできていない。それに目玉であるストリーミングは,当然QuickTime Streamingサーバを利用する予定なのだが,これは別にストリーミングサーバでなくちゃいけないというわけでもなさそうだけど,どうだろう。これから確認。もし何か間違いがあったらコメントお願い。
【おまけ: 基本設定の怪】
 さて,システムのインストールは完了したので,いざ自分色に設定を変更しようと思ってexCampus管理ツールにログインし,「サイト情報」の「基本情報」を設定しようとすると「更新に失敗しました」という悲しいメッセージが出てくる。これはすでに既知の問題で,どうやら「ゲスト部「このサイトについて」の利用環境欄のHTML」欄を空っぽにしてから入力し直すと無事更新される。
 以上,ながながとexCampusをMacOS X Serverに入れるお話を書きました。Mac miniに入れる方法(つまり「ふつ〜のMacOS Xに入れる方法」)はまた改めて挑戦してご報告。とりあえず中原さんへの栄転祝いにはなったでしょうか?(ははは)
 それにしても教育工学や情報教育の世界には,exCampusを始めとして質の高い教材やツールがたくさん蓄積されているのだが,つくづく教育工学の人々は「使ってもらう」ことまでエネルギーがいかない。つくる人にそこまで求めてはいけないというのもわかるが,だったら誰かにちゃんとお願いしないと。技術力のない私みたいなのが,ひ〜こらへ〜こらインストールする様子をドキュメントにするのばかりに期待してもいい結果は望めない。せめてインストーラー開発力をもった人間に出てきてもらわねば。私もちょっと勉強してみます(おいおい,本業はどうする)。
 とにかく,誰もがプチeラーニングサイトのオーナーになり,自分の勉強を公開するとか,自分が受講した授業の記録も兼ねて公開するとか,そういう「自分なりの使い方しちゃおう」的な雰囲気を生み出せる程度に敷居を低くすることが必要だ。教育工学がその努力をしていないとは思わないけれど,実のところ,まだまだ私たちにまで届いていない。そう思わない?

exCampus meets MacOSX」への6件のフィードバック

  1. りん

     あれこれ動作確認をしてみると,どうやらexCampusが採用しているEUC_JP文字コードだと,メンバー登録の承認確認メールが文字化けしてしまう。
     それからCSVデータのダウンロードもうまく動作(完了)しない。PHPの設定が問題なのだろうか。細かいバージョンの違いが問題を生じさせることもあるので,難しい。その辺が,こうしたプログラムの敷居を高くしていると思う。
     少し時間を置いてから,インストール手順や活用についてまとめ直してみたい。

  2. plauderton

    e-learningのex-campusの話

    まずトラックバックありきのエントリーです。
    トラックバックさせていただいたこのサイトでex-campusについて触れていたので
    筆者としても忘備録というか、とりあえず、エントリーで触れておけば
    どこかで話題になった時に思い出せるだろうなぁという試み。
    先日、別の業界畑の友人との話題でe-learningが出て来た際に
    要するにコンピューター使って勉強すればe-learningでしょ?とか
    そんな事言われて、世間一般ではそういう認識なのかとorzした記憶があります。…

  3. ひさまつしんいち

    exCampusの開発者の久松と申します。
    OSXでの詳細な構築解説、ありがとうございます。
    実は、と言うほどのこともないのですが exCampusはOSX上で開発されています。
    ひとえに開発者である私のメインの生活環境がOSXだ、というだけの理由ですが・・・。
    今見ると、だいぶコードも古くさくなってきてしまいました。
    いつか、もっとカスタマイズのしやすいソフトウエアに書き直したいと思っております。
    まずはお礼まで。

  4. りん

    久松さん,コメントありがとうございます。
    好き勝手なことを書いておりますが,携わられた皆さんのご尽力には尊敬の念を抱いていることも,本当のことです。ものは言い様かも知れませんが,期待の裏返しということで。
    開発者ご本人の環境がOSXとは‥‥。いよいよOSX上で使い倒す必要があるといった感じが増しました。ブログの続編もご期待ください。

  5. なかはらじゅん

    exCampusをお使いいただき、またこのような手順を公開して下さり、ありがとうございました!

  6. りん

    中原さん,ありがとうございます!
    なんかごめんなさい,ちゃんとご挨拶もせずに書き散らしておりました。以前から「なんとかコンタクトを‥‥」と片想い続けて幾年月。結局,ご本人に見つけていただく格好になっちゃいました。今度はこちらからご挨拶しにいきます。

コメントは停止中です。