//////////////////////////////////////////////////////////////////////////////////////////// // // OpenSim DTL/NSL Secure Money Server for Linux/Unix // by Fumi.Iseki and NSL '11 5/7 // http://www.nsl.tuis.ac.jp 0. はじめに  これは DTL Currency Processing Project (http://forge.opensimulator.org/gf/project/currency/) から Web Monitor を取り外して,いくつかのバグフィックスと 0.7.xで動作するようにパッチを充てた物 です.また幾つかの機能拡張も行っています.Web Monitor を取り外したのは,我々のターゲットが主に Linuxであるのに対して,この機能 ASP.NETで作動しており,Linux上で動作させるのが困難だったためです.  従って,セキュリティ的には本来の DTL Money Serverよりも低下していると思われます.実際,この Money Serverを誤魔化すことも不可能ではありません.つまり,このシステムについては厳密に仮想通貨 を取り扱いたい環境での使用はお勧めできません.本システムを使用する場合は,あくまでも自己責任で お使いください. 1. インストール # cd opensim-0.7.x-source # tar xzfv opensim.currency-0.7.x.tar.gz # mv bin/HttpServer_OpenSim.dll HttpServer_OpenSim.dll.orig # cp opensim.currency-0.7.x/HttpServer_OpenSim/bin/HttpServer_OpenSim.dll bin # patch -p1 < opensim.currency-0.7.x/opensim.patch # ./runprebuild.sh && nant clean && nant # cd opensim.currency-0.7.x # ./build.sh 2. 設定 2-1. Money Server bin/MoneyServer.ini の [MySql] に MySQLサーバにアクセスするための情報を追加する # cd opensim-0.7.x-source # vi bin/MoneyServer.ini 1. [MySql]セクションの hostname, database, username, password を設定する. OpenSim のMySQLの設定と同じものを指定すれば良い. 2. バンカーアバター(システムから対価無しにMoneyを購入することが可能なアバター)を有効にするには [MoneyServer]セクションの "BankerAvatar" にバンカーアバターとなるアバターのUUIDを指定する. UUIDとして 00000000-0000-0000-0000-000000000000を指定した場合は,全てのアバターがバンカーアバターとなる. 3. 支払い者がログインしていない状態でも,llGiveMoney()を正常に動かす場合は [MoneyServer]セクションの "enableForceTransfer" を trueにする. 4. PHPスクリプトの send_money() を使用して,お金をアバターに振り込む場合は "enableScriptSendMoney" を trueにする. また,"MoneyScriptAccessKey", "MoneyScriptIPaddress" も設定が必要である. "MoneyScriptAccessKey" はスクリプトへのアクセスキーであり,include/config.php または WI(XoopenSim/Modlos) と同じものを設定する. "MoneyScriptIPaddress" にはスクリプトが動作するサーバのIPアドレスを記述する.127.0.0.1は使用しないこと. 5. 所持金のアップデートのメッセージ(青いダイアログ)を変更することが可能である.メッセージを変更したい場合は各 "BalanceMessage..." を有効にし内容を書き換える. 参考: http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer%2FMoneyServer.ini 2-2. Region Server bin/OpenSim.ini に MoneyServerに接続するための設定を行う.Money Serverには HTTPS を使用して接続を行う.この際に使用するポート番号は 8008である. # cd opensim-0.7.x-source # vi bin/OpenSim.ini [Economy] SellEnabled = "true" CurrencyServer = "https://(MoneyServer's Name or IP):8008/" UserServer = "http://(UserServer's Name or IP):8002" EconomyModule = DTLNSLMoneyModule ;; Money Unit fee to upload textures, animations etc PriceUpload = 10 ;; テクスチャなどのアップロードのコスト ;; Money Unit fee to create groups PriceGroupCreate = 100 ;; グループ作成のコスト 注)モジュールの名前が DTLNSLMoneyModule に変更になりました. なお,UserServer と CurrencyServer のアドレスに localhost (127.0.0.1)を使用しないこと. これは,アドレスが,Monet Server内でのユーザのアカウント識別に利用されるためである. 参考: http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer%2FOpenSim.ini 2-3. Helper スクリプト Webインターフェイスの XoopenSimまたは Modlosを使用しない場合,ヘルパースクリプトを手動で設置 なければならない.ヘルパースクリプトは Scriptsディレクトリにあるので,これを適当なディレクトリ にコピーし,inculde/helper.php の内容(主に ENV_HELPER_URL, ENV_HELPER_PATH, DB関連)をシステム に合わせて変更する. コマンド例) # mkdir /var/www/currency # cp -Rpd Scripts/* /var/www/currency # cd /var/www/currency # ./setup_scripts.sh # chown -R www-data.www-data . # vi include/config.php Viewerは "-helperuri [ENV_HELPER_URL/]" オプション付きで起動しなければならない.ここで ENV_HELPER_URL ヘルパースクリプトの helperディレクトリのURLである. 例) -helperuri http://localhost/currency/helper/ 最後の / は必ず必要!! 参考: http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer%2FHelper%20Script 3. 起動 3-1. Robust Server # cd opensim-0.7.x-source # cd bin # mono Robust.exe 3-2. Money Server # cd opensim-0.7.x-source # cd bin # mono MoneyServer.exe 3-2. Region Server Region Server は通常と同様に起動する. # cd opensim-0.7.x-source # cd bin # mono OpenSim.exe 4. ライセンス DTL Currency Processing のライセンスに準拠します. http://forge.opensimulator.org/gf/project/currency/ もご覧ください. 5. 注意事項  このソフトウェアはNSLで改造された非公式のソフトウェアです.このソフトウェアに関して OpenSimの開発チームや  DTL Currency Processingの開発チームへのお問い合わせは行わないでください. 6. 免責  このソフトウェアは全くの無保証です.このソフトウェアの使用・改造・再配布に伴い発生する問題に関して,作者は一切の 責任を負いません.全て自己責任でご使用ください. 7. 謝辞 このプログラムは DTL Curremcy Processing を改造したものです. http://forge.opensimulator.org/gf/project/currency/ もご覧ください. このプロジェクトに関して,Miloから沢山のアドバイスと寄付をいただきました. ありがとうございました.