Posted by at

2014年07月04日

OpenSimとWebの連携 (その4)

【modlos】

東京情報大学ネットワークシステム研究室ページからmodlos-1.5.5をダウンロードします。

まえのページにも書きましたが,2014年10月現在,東京情報大学ネットワークシステム研究室のサイトでmoodle2.×に対応したmodlosの最新バージョンが公開されています。

追記: modlos2.6.0moodle2.7(moodle-latest-27)の組合せを試してみました。たしかに動きます。
ただわたしのubuntu(KAGOYA-VPSの12.04 64bit版)だけかもしれませんがPHPのバージョンが古いよ,と文句を言われてしまうので以下のMT-Systemsさんのサイトを参考にしてアップグレードする必要がありました。
http://web.mt-systems.jp/archives/889


Modlos 1.5.5: OpenSim Web Interface for Moodle
↑これをクリック。

WinSCPなどで/tmpへアップ。Tera Termなどで解凍し/var/www/moodle/blocksのディレクトリ内に置きます。

ブラウザでhttp://localhost/moodleつまりmoodleのポータルページをひらいて--
ページ左側「サイト管理」のいちばん上「通知」をクリック。

ブロックテーブル設定画面が開いてすべて問題なければ
Moodle OpenSim テーブルが正常に設定されました
という表示がでるのでその下の「続ける」をクリック。


するとこういう新規設定画面が開くので

グリッド名 → 適当な名前
OpenSIm SQLサーバ名 → localhost (OpenSim-ROBUSTとMoodleがおなじサーバーで動いている場合です。違うときはROBUSTのあるサーバーのIPアドレスになります)
OpenSim SQLデータベース → opensim (OpenSImのハイパーグリッドモードでデータベースopensimを作ったときのデータベース名)
OpenSim SQLデータベースのユーザー名 → opensim (同じくOpenSim用データベースユーザー名)
OpenSim SQLデータベースのパスワード → ****** (おなじくOpenSIm用データベースパスワード)
User(ROBUST)サーバのURL → これはOpenSImのROBUSTがあるサーバーのIPアドレスです。OpenSImサーバーとWebサーバーが同じ場所であるならWebサーバーのアドレスになります。

以下の設定は変更なしでそのままでも大丈夫ですが,「画像処理プログラム」については別個に処理することが必要です。*

すべての設定が完了したら「変更を保存する」ボタンで保存します。

(なおmodlosの設定変更はMoodleトップページ左側にある「サイト管理」から「プラグイン」→「ブロック」→「Moodle OpenSim」で先程の設定画面が開くのでいつでも行えます。)

cron.phpメンテナンススクリプトが、少なくとも24時間稼動していません。

このボタンを消すにはあなたのサイトを登録してください。

Moodle登録


というページが開きますがいまはとりあえず無視して「Home

再度ホームページにもどったら画面右上にある「編集モードの開始」ボタンをクリックしてください。

開いた画面の右側「ブロック追加」メニューのなかの「Moodle OpenSim」選択。

編集モード終了



そうするとトップページ右側のカレンダーの下にMoodle Open Simという名前のブロックができているはずです。
その下に各ページのリストもできるのでクリックするとそれぞれOSgridのサイトなどでおなじみのページが開きます。



Modlosホーム



ワールドマップ



念願の自前アバター作成画面もあります。


なおWeb(Apache)ROBUSTをべつべつのサーバー上で動かしている場合は,ひょっとしたらグリッドのブロックに表示されている「データベース:」が「OFFLINE」になっている可能性があります。これはファイヤーウォールがROBUSTデータベースへのアクセスを妨げているのかも知れません。そのときはROBUSTサーバー側のiptablesを編集して「3306」(MySQLのデフォールトポート*)を開くようにしてください。



* 注1: Webページで画像をとりあつかえるようImageMagickをリモートターミナルからインストールします。

$ sudo apt-get install imagemagick

$ sudo apt-get install php5-imagick


再度Apacheをリスタートさせます。

$ sudo /etc/init.d/apache2 restart



設定のチェック」をクリックして下のような画像がでればOKです。





これで例えばmolods設定画面のスタートページに画像を取り込むことなどが可能になります。



設定画面に適当な画像を取り込みます。



あとはふつうにhtmlページとして編集します。




* 注2: MySQLのポートを調べるにはコンソールからmysql -u root -pでログインし

mysql> show variables like ‘port’;
+——————–+———+
|Variable_name | Value |
+——————–+———+
| port | 3306 |
+——————–+———+
1 row in set (0.00 sec)
mysql>

とやるとわかります。  

Posted by もとちゃ at 16:18Comments(2)OpenSim(オープンシム)

2014年07月04日

OpenSimとWebの連携 (その3)

【Moodle】
Moodleを導入します。

2014年7月現在最新バージョンは2.7です。しかし前に説明したようにこれは東京情報大学ネットワークシステム研究室によるMoodle 用 OpenSim Webインターフェイスmodlosとうまく協働してくれません。そのため過去のバージョンを入手しなければなりません。

現在,東京情報大学ネットワークシステム研究室のサイトでmoodle2.×に対応したmodlosの最新バージョンが公開されています。したがって以下の「moodle-latest-19.tgz」についての説明はすべて「moodle-latest-27.tgz」で置き換えることが可能です。 (2014.10.12)

まずこのアーカイブスへ行ってください。

ページの左にある項目のうち「All Files」のすぐ下のMoodleとでているフォルダアイコンのリンクを押すと以前のリリースリストが現れるはずです。
その中の

moodle-latest-19.tgz

というのをダウンロードしてください。

これをWinSCPなどでサーバーのたとえば/tmpあたりへアップします。

つづいてTera Termなどリモートターミナルでサーバーにログインしてルート権限をとり(sudoでもいいです)/tmpなどにアップしておいたmoodle1.9の圧縮データを/var/wwwへ移動/展開します。(直接WinSCPでアップするにはルート権限の設定が必要だからです))
で最終的に/var/www/moodleというディレクトリができていればいいわけです。

リモートターミナルを開いたついでに事前にすませておくべき作業をやっておきましょう。
/var/wwwのひとつ上のディレクトリ/varに「moodledata」という名前のディレクトリをつくります。(このディレクトリはブラウザで開けないので安全なのです)

$ sudo mkdir /var/moodledata

つぎにこれをApacheから使えるように権限を設定します。Apacheのユーザーとそのグループを知るためには普通は/etc/apache2/htttpd.conf
を見るのですがUbuntuの場合はどうやら/etc/apache2/apache2.confが設定書類になっておりなおかつユーザーは/etc/apache2/envvarsという書類で参照されているようです。

$ sudo cat envvars

とすると最初のほうに

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data


と書かれている箇所があります。つまりユーザーとユーザーグループはwww-data,www-dataであるとわかります。
再度/varにもどって

$ sudo chown www-data.www-data moodledata
$ sudo chmod 700 moodledata

とやってApacheに所有の権限を与えmoodleに対してあらゆる操作が可能であるようにしておきます。

以上の準備をしてから今度はブラウザでhttp://localhost/moodleにアクセスします。


こんな画面がひらくので言語の選択で日本語を選びます。



次へ」をクリックするとMoodleのインストール設定が開始されます。



PHPの設定確認は自動的に行われます。すべて「パス」なら設定には問題ないということです。



あらかじめmoodledataの作業をやっておいたのでつぎのページもとくに入力するところはないはずです。



moodle用のデータベースの設定です。データベース名,ユーザー,パスワードは最初のMySQL導入のときに設定したものを入れてください。



環境の確認も自動で行われます。すべて「ok」であれば問題ありません。



日本語言語パックのインストールを選びます。



設定の完了とともに赤文字でエラーが出るでしょう。

これはMoodleが自身のディレクトリへ書き込む権限をもっていないからです。前もって書き込みの権限を許可しておけばこのエラーは防げるんですが,そうするとのちのちセキュリティのために再度それをとりけさなければなりません。
権限の設定はLinuxに慣れていないと少し煩雑なのでここだけは手動で設定を保存したほうが簡単でいいと思います。

書かれているconfig.phpの内容をコピーしてからリモートターミナルでログインし
$ sudo vi /var/www/html/moodle/config.php
とやって中身をまるごとペースト。保存します。



著作権に関する表示。読んで理解したら「yes」^^



バージョンリリース情報のページ。
無人オペレーション」はチェックをしたほうがいいでしょう。(そうしないとしばらくの間いちいち入力をもとめられます)

無人オペレーション」にするとテーブル設定画面がしばらくつづき自動的につきのアカウント設定画面になります。


Moodle管理者アカウントの設定です。適当なユーザ名とパスワード,その他の赤字の部分にそれぞれ情報をいれてください。
メール公開」の範囲はどういう性格のグリッドを作るつもりなのか考え方次第です。



適当なサイト名を長短ふたついれて「変更を保存する



moodleのトップページが開いたら設定はすべて完了です。  

Posted by もとちゃ at 16:17Comments(0)OpenSim(オープンシム)

2014年07月04日

OpenSimとWebの連携 (その2)

【MySQL】


UbuntuにMySQLをインストールするのは前に書いたように


$ sudo apt-get update

$ sudo apt-get install mysql-server

です。

もしあなたがOpenSimのグリッドモードでROBUSTを立ち上げているのと同じサーバーで同時にWebサーバーを動かすつもりなら,すでにMySQLはインストールされているはずなので上の作業は必要ありません。

ただこれから導入するMoodleのための新しいデータベースとユーザーをそこに付け加えてください。

いちおう念のため書いておきますと,

$ sudo mysql -u root -p



Enter password:

と聞いてくるのでインストール時に設定したパスワードをいれてMySQLをたちあげます。
そして例えば

mysql> create database moodle;

として「moodle」というデータベースを作ります。つづいて

mysql> grant all on moodle.* to moodle@localhost identified by "******";

といれてユーザー「moodle」とそのパスワード「******」を設定します。
(もちろんそれぞれの名前はお好きなものでけっこうです。)

MySQLについての設定は以上です。


【Apache】

Apacheはウェブサーバーです。LinuxはもちろんWindowsでもOSXでもいちばんポピュラーに使われているものです。

UbuntuでのApacheのインストールはMySQLとおなじぐらい簡単です。

$ sudo apt-get insall apache2

コマンドラインで上のようにいれてください。

VPSのようにルート権限を行使できないサーバーではさらにルートディレクトリ管理のために.htaccessなどを有効化しないといけませんが,ここではそのあたりは省略します。

うまくApacheがインストールできたかどうかはつぎのようにして確認します。

localhost = 契約しているレンタルサーバーのIPアドレス(*.*.*.*)としてウェブブラウザでhttp://localhost/にアクセスしてみてください。
それで以下のような画面が見られたら無事インストールは成功です。





【PHP】

PHPとは簡単に言うとプログラミング言語のひとつでWEBページを記述することに特化したサーバー上で動くスクリプトです。
OpenSimとmoodle,そしてmodlosを相互に協働させるためのさまざまなスクリプトはこれによって書かれているわけです。

Ubuntuへのそのインストールはやはり簡単で

$ sudo apt-get install php5

これだけです。

ただしmoodleの連携がうまく動くようにこのあといくつかの専用のモジュールをいっしょにインストールしなければなりません。

まずデータベースとの協働のためのMySQLモジュールが必要です。

$ sudo apt-get install php5-mysql

つぎにcURLモジュールを追加します。これはウェブサーバーがさまざまな形式の通信プロトコルを処理するためのモジュールです。

$ sudo apt-get install php5-curl

画像データを取り扱うためのGDモジュールも必要です。

$ sudo apt-get install php5-gd

念のためウェブサーバーがXMLに対応できるようXML-RPCモジュールも追加しておきます。

$ sudo apt-get install php5-xmlrpc

各モジュールが有効になるようApacheを再スタートします。

$ sudo /etc/init.d/apache2 restart


PHPの動作確認のための手続きはちょっと複雑かもしれません。

まず/var/wwwディレクトリにあるindex.htmlという書類の名前をindex.phpに書き換えます。

$ sudo mv /var/www/index.html /var/www/index.php

viエディターで中身を以下のようにしてwqで保存します。

<?php
phpinfo();



これで以前とおなじようにhttp://localhost/にブラウザでアクセスしてみてください。



こんな画面がでれば成功です。

  

Posted by もとちゃ at 15:29Comments(0)OpenSim(オープンシム)

2014年07月04日

OpenSimとWebの連携

ずいぶん時間があいてしまいましたがまるで何事もなかったかのようにOpenSimの話題を続けますね^^

もとちゃブログではこれまでずっと東京情報大学ネットワークシステム研究室さんの提供されている「OpenSimサーバシステム構築入門」マニュアル
http://www.nsl.tuis.ac.jp/DownLoad/etc/opensim_man_1.1.0.pdf
の詳しい説明をほとんどそのままなぞる形でそのさまざまな設定について解説して来ました。そして前回OpenSImをハイパーグリッドで起動するところまでなんとかたどりついたわけです。

嬉しいことにわたしがこのブログを始めたころに比べるとずいぶんOpenSimあるいはOSgridを日常的に体験している人たちの数が増えたように感じます。(Blender勉強会のメンバーもどんどん人数が増えています^^)

それでもまだまだ自前のグリッド構築となるとさすがに敷居が高いのでしょうか,挑戦しているというお友達の話はあまり聞きません。

確かにスタンドアロンやOSgridへの接続に比べると複雑な設定が多くて面倒なのは確かですし,全部ちゃんとやったはずなのになぜかうまくいかない,というケースもしばしばあるのも事実です。(そういうときのもとちゃの提供できる唯一のアドバイスは--始めにもどって同じことを何度でも繰り返してやってみたら? というものです^^;
ハイパーグリッド成就の道はとにかくどんなに時間がかかろうとできるまでしつこく諦めない,という一言につきるようです^^;)

で今回はいよいよ最終段階としてハイパーグリッドで起動したOpenSimをウェブと連携するやり方について書いてみようと思います。

前にハイパーグリッドモードでOpenSimを立ち上げてもメリットはOSgridにリージョンサーバーだけで接続してるのとあまり変わらないと書いたことがあります。
これはいまでもそのとおりだと思います。ただWebと連携するといままでとは多少違ったハイパーグリッドの利点も出てきます。

それはつまり自前のメタバース世界への正面玄関ができる,ということです。

ハイパーグリッドモードで自分のグリッドを自前サーバーに立ち上げていてもそこに立ち入るためには例えばOSgridのような「他のハイパーグリッド」を経由しなければなりませんでした。

でももしあなたがそれをWebと連携できたら,そのときSecondLifeOSgridAvinationInworldzなどのポータルサイトと同じように自分自身のグリッド専用のアカウント制作画面やアバター選択画面,世界地図などなどの各ページを手にいれることができます。
(逆に言うなら専用の初期アバターの準備やアカウントの管理についてまで責任をもたないといけないわけでもありますけど)

これは(規模はともかくとして)名実ともに「セカンドライフライクなバーチャル世界」をまるごとひとつ所有することを意味します。(あなたの世界はほかの無数のメタバースとインターネット上では完全に対等であり,仮にそれらのサービスがある日とつぜんすべて消滅したとしてもそれらとは無関係に何の支障もなくいままでどおり存続しつづけられる,ということです)

ひょっとしたらその後どんどん人口が増えて数千人,数万人規模のメタバース世界に成長するかもしれません(「可能性だよ。可能性はゼロではない! -吉田新太」^^;)

個人のホームページが無数にネット上に存在してブラウザで自在にそれらにアクセスする,というのと同じように個人のグリッドが無数に存在しビューアーによって自由にインでき相互に行き来できる,というのがOpenSimにかかわる人たちが究極として目指す目標だと思います。そうでなければハイパーグリッドなどというものがそもそも必要ありませんものね。当然もとちゃブログでもウェブとの連携のやり方を最期にとりあげないわけにはいかないでしょう^^

さてじつのところ,このウェブページとの連携のやり方も「OpenSimサーバシステム構築入門」マニュアルにちゃ-んと書かれています。ですからそちらをじっくり読んでいただければわたしがわざわざ解説のまねごとをしなくてもいいはずなんです^^

ただこのマニュアルが書かれた当時とちょっと状況がちがっている部分があって,それが解決しないかぎり上述のマニュアルどおりに設定を行うことがすこしばかり難しくなっています。

しょうじきOpenSimについてのわたしのブログがこれだけ長い期間中断していたのはこの「ちょっとちがっている」部分が改善されるのを待っていたということもあるんです(--まあ,そのほかにそれを言い訳にしてもとちゃが怠けていたという点ももちろんございますけど^^)

その問題点のひとつはOpenSimサーバーを立ち上げるときに使うOSとしての「CentOS」にあります。(「OpenSimサーバシステム構築入門」では終始CentOSを使うことを前提に説明されています)
覚えているでしょうか,OpenSimサーバーを動かすためにはWindlowsでの.Net Framworkにあたるmonoをインストールする必要がありましたね。

ところがいまCentOSmonoを読み込むのに若干困難が生じているんです。


2012年3月ぐらいまではこのもとちゃブログのページのようにリポジトリ追加によってmotoCentOSにインストールすることができました。
しかし、そのあとmono開発チームはNovell社から離れてXamarin社に移ったためにNovellではmonoリポジトリを利用することができなくなったんです。

つまりCentOSmonoを導入するためにはソースを手にいれたうえでビルドしなければなりません。これはたしかにLinuxに慣れた人にとってはなんてことはない日常的かつ簡単な作業ではあります。

ただもともとこの「たこ焼きやさん」ブログではLinuxやレンタルサーバーの予備知識なしに「誰でもできる」ことを目標において解説をさせていただいてきました。
そのためもとちゃが読者として想定しているのはWindlowsに慣れたSL住人の多くのみなさんです。そうした方々にとってはmonoのソースからのビルドはちょっと手が出しにくい作業じゃないでしょうか。

そんなわけなのでここでは「OpenSimサーバシステム構築入門」マニュアルからは離れて,CentOSのかわりにUbuntuを使ったOpenSimハイパーグリッドモードの立ち上げとそれをWebと連携するやり方について何回かにわけて解説していこうと思います。



簡単に言うとOpenSimWebを連携するためにはあなたはふたつのサーバーを同時に立ち上げなくてはなりません。

(まあ正しく言えばROBUSTそのものは複数のサーバーに分割できますし,それとRegionサーバーはべつべつのものと考えることができますけど,ここで言ってるのは今まで解説してきたOpenSimサーバーのほかにまったく別に新たにWebサーバーというものをひとつ作らなければならないということです -- ぶっちゃけた話,世間一般で「サーバーを立ち上げうんぬん」と言うとじつはたいていこっちのほうを意味しています^^;)

いままで説明してきたのはあなたのPCの中であれ,あるいはレンタルサーバーであれOpenSimによってROBUSTRegionサーバーを立ち上げて,そこにビューアーというクライアントでログインする,という形でした。これから新たにはじめるのはOpensSImとは完全に別個にApacheという「ウェブサーバー」を立ち上げて,そこにブラウザという名のクライアントでアクセスする,という構図をつくるための設定です。

いま「Apache」という言葉が出てきました。Webサーバーを立ち上げるのに欠かせないのが--たぶん一度ぐらいは耳にされことがあるかもしれません--AMP(Apache,MySQL,PHP)と呼ばれる環境です。(これにLinuxLを加えて「LAMP」と呼ぶ場合もあります。(AMPはもともとWindlowsやOSXよりもよりLinuxとより親和性が高い環境です。)

話が難しくなってしまうかも知れませんけど,さらに立ち上げたWebサーバーを簡単に管理するためにCMS(コンテンツマネージメントシステム)というものがあります。

今回ウェブOpenSimと連携させるときに使うことができるCMSはふたつあります。ひとつはXOOPSとよばれます。もうひとつはMoodleと呼ばれます。これらのCMSはかなり以前から多くの人たちに利用されているのでネットでぐぐると参考になる情報がたくさん得られるはずです。

http://xoopscube.jp/

http://moodlejapan.org/home/


あとひとふんばりしてください^^

この二種類のCMSOpenSImとをむすびつけて協働して働くようにする専用の Webインターフェイスソフトというものがさらにその上に必要とされます。
これらは東京情報大学のネットワークシステム研究室さんが作ってくださっていて,それぞれXoopensimmodlosと呼ばれています。(惜しむらくは両方ともちょっと古びてきています^^; このバージョンアップを期待してずっと待っていたんですけれどね^^;)

さていままでもとちゃブログで参考にしてきていた「OpenSimサーバシステム構築入門」ではOpenSimWebの連携のために主にXOOPSが使われることを想定して説明がされています。

全回書いたmonoの問題につづいて第二の問題はこのXOOPS(XoopsCube)と(AMP環境のなかの)PHPのうち5.3系以降が相性が悪いことにあります。(マニュアル10.2「PHPのインストールにそう書かれています」)

Apache, MySQL,PHPはお互いに共同するためにできればそれぞれのバージョンが近いもの同士を組み合わせるべきです。そのためXOOPSを使うにはAMPのぜんぶのバージョンをPHPにあわせて古いものでそろえないといけないということを意味します。これはいまとなってはなかなか入手がむずかしくなっているうえにUbuntuに簡単にインストールもできませんからLAMP環境の設定そのものがけっこうやっかいになってきます。

この問題があるのでもとちゃブログではもうひとつべつのCMSであるMoodleのほうを利用することにしました。こちらもModlosとのかねあいでMoodle自身のバージョンが1.9といういささか古いものにならざるをえないのは問題なんですが,LAMP環境そのものは最新に近い入手しやすいもので動くようです(XOOPSのほうは「OpenSimサーバシステム構築入門」のほうに詳しく解説されているのでごらんになれば設定方法はわかるはずです)

Ubuntu上にLAMP環境をつくるのは(それこそ最新バージョンであることにこだわらないかぎりは)比較的簡単です。

そして以前グリッドモードの解説のときすでにMySQLの導入については説明してありますよね。そこで残るのはApachePHPのインストールと設定だけというわけです。^^


  

Posted by もとちゃ at 15:26Comments(0)OpenSim(オープンシム)