2012年05月26日
CentOS6でOpenSim MySQL編
前回のメガリージョン編に引き続き データベースを SQLite からMySQLに変更します
ただし、SQLiteでのデータが継承されません。
地形データも丸い初期島に^^;
バックアップが必要な場合は
バックアップしたいSIM(ここでは rika_island)に移り
change region rika_island
save oar rika_island として oar形式でバックアップします^^
MySQL移行後
change region rika_island
load oar rika_island で移行できると思います。
MySQLへの移行手順をメモします
ユーザーrootになります
$ su -
パスワード:
MySQLサーバーをyumでインストールします。
# yum -y install mysql-server
MySQLサーバーを起動します
# /etc/rc.d/init.d/mysqld start
自動起動の設定します。
# chkconfig mysqld on
自動起動設定の確認をします
# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL rootパスワードを設定します(例:パスワードhogehoge)
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=password('hogehoge');
Query OK, 0 rows affected (0.00 sec)
いったん終了し、MySQL rootパスワードで起動
mysql> quit
# mysql -u root -p
Enter password:hogehoge
登録ユーザーを見る
mysql> select host,user,password from mysql.user;
ユーザー名のないものは削除する
mysql> DELETE FROM mysql.user WHERE user='';
ユーザーrootでパスワードの無いホストにルートパスワードを設定
mysql> grant all on *.* to root@127.0.0.1 identified by 'hogehoge';
mysql> grant all on *.* to root@pengin.centos.com identified by 'hogehoge';
変更内容を確認します
mysql> select host,user,password from mysql.user;
データテーブルを確認します
mysql> SHOW DATABASES;
データベースtestは不要なので削除
mysql> DROP DATABASE test;
OpenSimのデータベース作成(文字コードをutf8で設定)
ここでは
OpenSim用のデータベース名を opensim
ユーザー名をopensim_user
パスワードをhogehoge_opensim
として設定
データベース作成
mysql> create database opensim default character set utf8;
ユーザーとパスワード設定
mysql> grant all on opensim.* to opensim_user identified by 'hogehoge_opensim';
データテーブルを確認します
mysql> SHOW DATABASES;
MySQLデータベースの権限再読み込み
mysql> flush privileges;
終了します
mysql> quit
ユーザーに戻ります
# exit
logout
OpenSimのbin/config-includeに移動します
$ cd bin/config-include
StandaloneCommon.iniの設定で SQLiteからMySQLに設定変更します
$ vi StandaloneCommon.ini
Include-Storage = "config-include/storage/SQLiteStandalone.ini";
コメントアウトします。先頭に;を追加
;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
;StorageProvider = "OpenSim.Data.MySQL.dll"
先頭のコメント ; をはずします。
StorageProvider = "OpenSim.Data.MySQL.dll"
;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
先頭のコメント ; をはずします
MySQLで設定した データベース名、ユーザー名、パスワードを設定します
ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim_user;Password=hogehoge_opensim;Old Guids=true;"
保存します
binに戻り OpenSimを起動します。
途中で質問されます
・
New estate name [My Estate]: rika_sim ここでは rika_simとしました
・
・
Estate owner first name [Test]: rika ここでは rika
Estate owner last name [User]: kayama ここでは kayama
Password: ここではrika.kayamaのパスワード設定しました
Email []: 単にEnter
・
・
Region (root) #
これでMySQLへの移行ができました
MySQLで作成されたデータベースをのぞいてみます
# mysql -u root -p
Enter password:
データベースをopensimに切り替えます
mysql> use opensim;
テーブル内容を表示します
mysql> show tables;
ユーザー定義 UserAccountsのテーブル定義を確認します
mysql> desc UserAccounts;
登録されているアバタの名前を確認します
mysql> select FirstName,LastName from opensim.UserAccounts;
いろいろとどんな定義がなされているか調べるのも面白そうです^^
ただし、SQLiteでのデータが継承されません。
地形データも丸い初期島に^^;
バックアップが必要な場合は
バックアップしたいSIM(ここでは rika_island)に移り
change region rika_island
save oar rika_island として oar形式でバックアップします^^
MySQL移行後
change region rika_island
load oar rika_island で移行できると思います。
MySQLへの移行手順をメモします
ユーザーrootになります
$ su -
パスワード:
MySQLサーバーをyumでインストールします。
# yum -y install mysql-server
MySQLサーバーを起動します
# /etc/rc.d/init.d/mysqld start
自動起動の設定します。
# chkconfig mysqld on
自動起動設定の確認をします
# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL rootパスワードを設定します(例:パスワードhogehoge)
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=password('hogehoge');
Query OK, 0 rows affected (0.00 sec)
いったん終了し、MySQL rootパスワードで起動
mysql> quit
# mysql -u root -p
Enter password:hogehoge
登録ユーザーを見る
mysql> select host,user,password from mysql.user;
ユーザー名のないものは削除する
mysql> DELETE FROM mysql.user WHERE user='';
ユーザーrootでパスワードの無いホストにルートパスワードを設定
mysql> grant all on *.* to root@127.0.0.1 identified by 'hogehoge';
mysql> grant all on *.* to root@pengin.centos.com identified by 'hogehoge';
変更内容を確認します
mysql> select host,user,password from mysql.user;
データテーブルを確認します
mysql> SHOW DATABASES;
データベースtestは不要なので削除
mysql> DROP DATABASE test;
OpenSimのデータベース作成(文字コードをutf8で設定)
ここでは
OpenSim用のデータベース名を opensim
ユーザー名をopensim_user
パスワードをhogehoge_opensim
として設定
データベース作成
mysql> create database opensim default character set utf8;
ユーザーとパスワード設定
mysql> grant all on opensim.* to opensim_user identified by 'hogehoge_opensim';
データテーブルを確認します
mysql> SHOW DATABASES;
MySQLデータベースの権限再読み込み
mysql> flush privileges;
終了します
mysql> quit
ユーザーに戻ります
# exit
logout
OpenSimのbin/config-includeに移動します
$ cd bin/config-include
StandaloneCommon.iniの設定で SQLiteからMySQLに設定変更します
$ vi StandaloneCommon.ini
Include-Storage = "config-include/storage/SQLiteStandalone.ini";
コメントアウトします。先頭に;を追加
;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
;StorageProvider = "OpenSim.Data.MySQL.dll"
先頭のコメント ; をはずします。
StorageProvider = "OpenSim.Data.MySQL.dll"
;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
先頭のコメント ; をはずします
MySQLで設定した データベース名、ユーザー名、パスワードを設定します
ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim_user;Password=hogehoge_opensim;Old Guids=true;"
保存します
binに戻り OpenSimを起動します。
途中で質問されます
・
New estate name [My Estate]: rika_sim ここでは rika_simとしました
・
・
Estate owner first name [Test]: rika ここでは rika
Estate owner last name [User]: kayama ここでは kayama
Password: ここではrika.kayamaのパスワード設定しました
Email []: 単にEnter
・
・
Region (root) #
これでMySQLへの移行ができました
MySQLで作成されたデータベースをのぞいてみます
# mysql -u root -p
Enter password:
データベースをopensimに切り替えます
mysql> use opensim;
テーブル内容を表示します
mysql> show tables;
ユーザー定義 UserAccountsのテーブル定義を確認します
mysql> desc UserAccounts;
登録されているアバタの名前を確認します
mysql> select FirstName,LastName from opensim.UserAccounts;
いろいろとどんな定義がなされているか調べるのも面白そうです^^
2012年05月21日
CentOS6でOpenSim メガリージョン編
前回に続いて、CentOSでOpenSim、今回はさらに1SIMを追加して、メガリージョンで動作させてみたいとおもいます。
そのまえに、ビュア(SL Viewer)の設定です。
Win7を例に説明します。
まずデスクトップのSL Viewerのアイコンを右クリックして、プルダウンメニューから
ショートカットの作成を選択して、デスクトップ上にショートカットを作成します。
同じ名前だと紛らわしいので、右クリックでプルダウンメニューから名前の変更を
選んで、名前を変更します
名前を変更したアイコンを右クリックして、プロパティを選択します
リンク先の最後尾に 半角スペースを入れて、OpenSimのIPアドレス:ポート番号を追加します。
前回の設定の例ではCentOSサーバーのIP 192.168.1.50 ポートは9000なので
-loginuri http://192.168.1.50:9000/ となります
適用を押して保存します。
OpenSimを起動して、接続します。
ここから、メガリージョンの設定をしてみます
メガリージョンは複数の連続したSIMを1つのSIMみたいにふるまう設定です。(この説明でいいのかな^^;)
ここでは2SIMをメガリージョンとして設定してみます。
まず、SIMのレイアウトを決めます。
現存しているSIM(ここではrika_island)の現在地は、(1000,1000)です
追加するSIM(ここでは oimo_island)を北側に連結します(地図では上部)
現在地(X,Y)で Xは東西、Yは南北の軸を取ります。
追加するSIM(oimo_island)の位置は、北側なので
(1000,1001)となります
rika_island (1000,1000)
oimo_island (1000,1001)
リージョン情報は、Regions.iniファイルに追記します。
$ cd Regions
$ vi Regions.ini
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
このブロックをそのまま コピーをとり、ブロックの下に一行空けて追加します。
1、リージョン名を変更します 例では rika_island → oimo_island
2、リージョンUUIDを変更します(この値は、ユニークでないといけません)
ここでは、先頭2バイトを変更しましたが、実際の運用ではuuidgenコマンドでuuidを生成します。
$ uuidgen
18ee79b4-da71-4613-91b0-1c523673614c ユニークなuuidが生成されます。
生成された uuidをコピー、貼り付けします。
3、リージョンの位置を設定します。 1000,1000 → 1000,1001
4、ポート番号を設定します。 各SIMごと異なるポート番号の設定が必要です
9000 → 9001
変更後はこのようになります。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
次に各リージョンに
ClampPrimSize = False
を追加します。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
保存します。
次にbinに戻り OpenSim.iniを編集します
$ cd ..
$ vi OpenSim.ini
118行 付近の
; CombineContiguousRegions = false を変更します
; CombineContiguousRegions = false 先頭のコメント;を消去して、falseをtrueに変更
CombineContiguousRegions = true
保存します
OpenSimを起動します
$ mono OpenSim.exe
途中に問い合わせがあります
Do you wish to join region oimo_island to an existing estate (yes/no)? [yes]: Enterしました
Name of estate to join. Existing estate names are (rika_sim) [rika_sim]: Enterしました
・
・
Region (root) # OpenSimのコマンド待ち(リージョン名がrootになります)
ファイヤーウォール設定のためいったん終了します
rootになり、 iptables を編集します
新たに追加したリージョンのポート(9001)を追加します。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存します
iptablesサービスを更新します
# service iptables restart
再度ユーザーに戻り opensimを立ち上げます
SIMがもうひとつ見えるでしょうか
SIMの地形を変えてみます
ここでは 以前製作した ハート島のデータを使ってみます。
opensimのbinディレクトリーに地形データをコピーします。
ここでは 地形データは heart_island.png とします
opensimを起動します
コマンド待ちになったら 変更したいSIMに変更します。
rootのままだとすべてのSIMが対象になります。
oimo_islandをハート島にします(change region SIM名(リージョン名))
Region (root) # change region oimo_island
Region (oimo_island) #
対象がoimo_islandになりました
地形データを読み込みます( terrain load 地形ファイル名)
Region (oimo_island) # terrain load heart_island.png
いったんopensimを終了し、再起動します。
あれ、地図には出ない、でもミニマップには表示されている^^;
(SL Viewer)
Imprudence Viewerでは地図の表示も正常です。
Phoenix Viewerでは SL Viewerと同様 地図の表示がでませんでした
Imprudence Viewerがいちばん 相性が良いようです^^
そのまえに、ビュア(SL Viewer)の設定です。
Win7を例に説明します。
まずデスクトップのSL Viewerのアイコンを右クリックして、プルダウンメニューから
ショートカットの作成を選択して、デスクトップ上にショートカットを作成します。
同じ名前だと紛らわしいので、右クリックでプルダウンメニューから名前の変更を
選んで、名前を変更します
名前を変更したアイコンを右クリックして、プロパティを選択します
リンク先の最後尾に 半角スペースを入れて、OpenSimのIPアドレス:ポート番号を追加します。
前回の設定の例ではCentOSサーバーのIP 192.168.1.50 ポートは9000なので
-loginuri http://192.168.1.50:9000/ となります
適用を押して保存します。
OpenSimを起動して、接続します。
ここから、メガリージョンの設定をしてみます
メガリージョンは複数の連続したSIMを1つのSIMみたいにふるまう設定です。(この説明でいいのかな^^;)
ここでは2SIMをメガリージョンとして設定してみます。
まず、SIMのレイアウトを決めます。
現存しているSIM(ここではrika_island)の現在地は、(1000,1000)です
追加するSIM(ここでは oimo_island)を北側に連結します(地図では上部)
現在地(X,Y)で Xは東西、Yは南北の軸を取ります。
追加するSIM(oimo_island)の位置は、北側なので
(1000,1001)となります
rika_island (1000,1000)
oimo_island (1000,1001)
リージョン情報は、Regions.iniファイルに追記します。
$ cd Regions
$ vi Regions.ini
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
このブロックをそのまま コピーをとり、ブロックの下に一行空けて追加します。
1、リージョン名を変更します 例では rika_island → oimo_island
2、リージョンUUIDを変更します(この値は、ユニークでないといけません)
ここでは、先頭2バイトを変更しましたが、実際の運用ではuuidgenコマンドでuuidを生成します。
$ uuidgen
18ee79b4-da71-4613-91b0-1c523673614c ユニークなuuidが生成されます。
生成された uuidをコピー、貼り付けします。
3、リージョンの位置を設定します。 1000,1000 → 1000,1001
4、ポート番号を設定します。 各SIMごと異なるポート番号の設定が必要です
9000 → 9001
変更後はこのようになります。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
次に各リージョンに
ClampPrimSize = False
を追加します。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
保存します。
次にbinに戻り OpenSim.iniを編集します
$ cd ..
$ vi OpenSim.ini
118行 付近の
; CombineContiguousRegions = false を変更します
; CombineContiguousRegions = false 先頭のコメント;を消去して、falseをtrueに変更
CombineContiguousRegions = true
保存します
OpenSimを起動します
$ mono OpenSim.exe
途中に問い合わせがあります
Do you wish to join region oimo_island to an existing estate (yes/no)? [yes]: Enterしました
Name of estate to join. Existing estate names are (rika_sim) [rika_sim]: Enterしました
・
・
Region (root) # OpenSimのコマンド待ち(リージョン名がrootになります)
ファイヤーウォール設定のためいったん終了します
rootになり、 iptables を編集します
新たに追加したリージョンのポート(9001)を追加します。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存します
iptablesサービスを更新します
# service iptables restart
再度ユーザーに戻り opensimを立ち上げます
SIMがもうひとつ見えるでしょうか
SIMの地形を変えてみます
ここでは 以前製作した ハート島のデータを使ってみます。
opensimのbinディレクトリーに地形データをコピーします。
ここでは 地形データは heart_island.png とします
opensimを起動します
コマンド待ちになったら 変更したいSIMに変更します。
rootのままだとすべてのSIMが対象になります。
oimo_islandをハート島にします(change region SIM名(リージョン名))
Region (root) # change region oimo_island
Region (oimo_island) #
対象がoimo_islandになりました
地形データを読み込みます( terrain load 地形ファイル名)
Region (oimo_island) # terrain load heart_island.png
いったんopensimを終了し、再起動します。
あれ、地図には出ない、でもミニマップには表示されている^^;
(SL Viewer)
Imprudence Viewerでは地図の表示も正常です。
Phoenix Viewerでは SL Viewerと同様 地図の表示がでませんでした
Imprudence Viewerがいちばん 相性が良いようです^^
2012年05月20日
CentOS6でOpenSim 導入編
OpenSimのコンパイルの準備が整いましたので(まだって方は、導入編参考にしてね^^)早速、ソースを
取りに行きましょう
OpenSimulatorのwikiのダウンロードからソースをダウンロードします
今回は
opensim-0.7.3.1-source.tar.gz を選択しました
コンパイルはユーザーの権限で行います。
ユーザー homeにディレクトリー作成
$ mkdir opensim
$ cd opensim
ここに opensim-0.7.3.1-source.tar.gzを移動
$ tar zxvf opensim-0.7.3.1-source.tar.gz
$ cd opensim-0.7.3.1-source
$ ./runprebuild.sh
いつもはNantでビルドしてましたが、今回はmono実行環境にあるxbuildを使用しました
(xbuildはmonoをコンパイルした際に生成されています)
$ xbuild
・
・
201 Warning(s)
0 Error(s)
Time Elapsed 00:06:22.5528780
ワーニングは出ますがエラーは無いようです。
$ cd bin
OpenSim.iniはすでに用意されていますので、実行してます
$ mono OpenSim.exe
問い合わせに応答します(例です)
New region name []: rika_island simの名前
RegionUUID [e4386b33-d66e-4021-99de-530f09158805]: 値は変えないのでそのまま Enter
Region Location [1000,1000]: 値は変えないのでそのまま Enter
Internal IP address [0.0.0.0]: 値は変えないのでそのまま Enter
Internal port [9000]: 値は変えないのでそのまま Enter
Allow alternate ports [False]: 値は変えないのでそのまま Enter
External host name [SYSTEMIP]: 192.168.1.50 サーバーのIPかサーバーネーム
・
・
New estate name [My Estate]: rika_sim 土地の管理名(たぶん^^)
・
・
Estate owner first name [Test]: rika アバター名
Estate owner last name [User]: kayama アバター姓
Password: パスワードを入力
Email []: 公開しないので そのままEnter
User ID [8f664132-cfd7-469a-b009-81a64c2a73ec]: 値は変えないのでそのまま Enter
・
・
Region (rika_island) # OpenSimコマンド待ち
コマンド待ちの表示がでたら 正常に起動できたみたいです。
※途中で”System.DllNotFoundException: gdiplus.dll”というエラーがでるかもしれません
ライブラリーが登録されていないようです。
次のコマンドをrootで実行し、何も帰ってこなかったらライブラリーの登録の設定ができていません
#/sbin/ldconfig -p | grep libgdiplus
設定ファイル"ld.so.conf"に”/usr/local/lib”を追加します
# vi /etc/ld.so.conf
/usr/local/lib 追加します
ldconfigを実行します
# /sbin/ldconfig
先ほどの確認用コマンド実行し、次のような返事がかえればOKです(例)
# /sbin/ldconfig -p | grep libgdiplus
libgdiplus.so.0 (libc6,x86-64) => /usr/local/lib/libgdiplus.so.0
libgdiplus.so (libc6,x86-64) => /usr/local/lib/libgdiplus.so
ファイヤウォールの設定のためにいったん終了します。
Region (rika_island) # shutdown quitでも終了します。
rootになってiptablesファイルにopensim用のポートをアクセス許可の追加をします
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptablesサービスの反映をします
# service iptables restart
ユーザーに復帰して再度 opensimを立ち上げます。
接続できれば、丸い小島が確認できると思います
あつ、ビャアの設定がありました・・・・・ 次回に^^;
取りに行きましょう
OpenSimulatorのwikiのダウンロードからソースをダウンロードします
今回は
opensim-0.7.3.1-source.tar.gz を選択しました
コンパイルはユーザーの権限で行います。
ユーザー homeにディレクトリー作成
$ mkdir opensim
$ cd opensim
ここに opensim-0.7.3.1-source.tar.gzを移動
$ tar zxvf opensim-0.7.3.1-source.tar.gz
$ cd opensim-0.7.3.1-source
$ ./runprebuild.sh
いつもはNantでビルドしてましたが、今回はmono実行環境にあるxbuildを使用しました
(xbuildはmonoをコンパイルした際に生成されています)
$ xbuild
・
・
201 Warning(s)
0 Error(s)
Time Elapsed 00:06:22.5528780
ワーニングは出ますがエラーは無いようです。
$ cd bin
OpenSim.iniはすでに用意されていますので、実行してます
$ mono OpenSim.exe
問い合わせに応答します(例です)
New region name []: rika_island simの名前
RegionUUID [e4386b33-d66e-4021-99de-530f09158805]: 値は変えないのでそのまま Enter
Region Location [1000,1000]: 値は変えないのでそのまま Enter
Internal IP address [0.0.0.0]: 値は変えないのでそのまま Enter
Internal port [9000]: 値は変えないのでそのまま Enter
Allow alternate ports [False]: 値は変えないのでそのまま Enter
External host name [SYSTEMIP]: 192.168.1.50 サーバーのIPかサーバーネーム
・
・
New estate name [My Estate]: rika_sim 土地の管理名(たぶん^^)
・
・
Estate owner first name [Test]: rika アバター名
Estate owner last name [User]: kayama アバター姓
Password: パスワードを入力
Email []: 公開しないので そのままEnter
User ID [8f664132-cfd7-469a-b009-81a64c2a73ec]: 値は変えないのでそのまま Enter
・
・
Region (rika_island) # OpenSimコマンド待ち
コマンド待ちの表示がでたら 正常に起動できたみたいです。
※途中で”System.DllNotFoundException: gdiplus.dll”というエラーがでるかもしれません
ライブラリーが登録されていないようです。
次のコマンドをrootで実行し、何も帰ってこなかったらライブラリーの登録の設定ができていません
#/sbin/ldconfig -p | grep libgdiplus
設定ファイル"ld.so.conf"に”/usr/local/lib”を追加します
# vi /etc/ld.so.conf
/usr/local/lib 追加します
ldconfigを実行します
# /sbin/ldconfig
先ほどの確認用コマンド実行し、次のような返事がかえればOKです(例)
# /sbin/ldconfig -p | grep libgdiplus
libgdiplus.so.0 (libc6,x86-64) => /usr/local/lib/libgdiplus.so.0
libgdiplus.so (libc6,x86-64) => /usr/local/lib/libgdiplus.so
ファイヤウォールの設定のためにいったん終了します。
Region (rika_island) # shutdown quitでも終了します。
rootになってiptablesファイルにopensim用のポートをアクセス許可の追加をします
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptablesサービスの反映をします
# service iptables restart
ユーザーに復帰して再度 opensimを立ち上げます。
接続できれば、丸い小島が確認できると思います
あつ、ビャアの設定がありました・・・・・ 次回に^^;
2012年05月19日
CentOS6でOpenSim 準備編
CentOS6でOpenSimを構築しましたのでメモをします。
今回導入したCentOS6はインストール時に、最小ディスクトップ、開発で開発ツールを選択しています。
ハードはIntel Atomプロセッサー 2Gメモリです。
インストールされたCentOSのバージョンは
$ cat /etc/redhat-release
CentOS release 6.2 (Final)
インストール後の初期設定は 「CentOSサーバー構築マニュアル」さんのマニュアルを参考にしました
・yumによるアップデート
・SELinux無効化
・リポジトリインストール
等を実施しました
OpenSimは「opensim-0.7.3.1」です。 ソースからインストールします。
インストール後の実行結果はメガリージョンまで確認できました。(設定は次回に^^;)
(2SIMをメガリージョンとしました)
OpenSimの実行環境としてmonoが必要になりますが、簡単な方法として、バイナリーを入手して
展開するのが近道です。
CentOS6で下記のように、バイナリをyumよりダウンロードして展開し、実行することにしましたが
エラーが発生してしまします。
OpenSimのwikiで記載されている「Mono のリポジトリからインストールする 」方法では、
rpmファイルを解凍する時エラーとなりました。
解決方法が見つからないので、mono実行環境をソースからコンパイルしてみました
libgdiplus拡張ライブラリーのコンパイル
Mono実行環境のコンパイル
となります。
まず最初にmonoのコンパイルに必要なライブラリー、ツールを事前にyumでインストールします
こちらのPhonicUK Wikiさんのwikiを参考にインストールしてみました
(すでにインストール済みのものもあります)
# yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* /
libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wg
libgdiplus拡張ライブラリーのインストール
mono-projectのダウンロードよりソースを入手します。
今回は libgdiplus-2.10.9.tar.bz2 を選択
/usr/local/src で展開
# tar jxvf libgdiplus-2.10.9.tar.bz2
# cd libgdiplus-2.10.9
# ./configure
# make
# make install
# ldconfig
monoのインストール
mono-projectのダウンロードよりソースを入手します。
今回は mono-2.10.9.tar.bz2 を選択
/usr/local/src で展開
# tar jxvf mono-2.10.9.tar.bz2
# cd mono-2.10.9
# ./configure --with-libgdiplus=/usr/local/lib/libgdiplus.la --prefix=/usr/local
# make
# make install
*コンパイルには1時間30分程度かかりました^^
バージョンを確認します
$ mono --version
Mono JIT compiler version 2.10.9 (tarball 2012年 5月 19日 土曜日 17:22:46 JST)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
無事インストールできたみたいです。
次回 OpenSimのソースをコンパイルして実行してみます。
今回導入したCentOS6はインストール時に、最小ディスクトップ、開発で開発ツールを選択しています。
ハードはIntel Atomプロセッサー 2Gメモリです。
インストールされたCentOSのバージョンは
$ cat /etc/redhat-release
CentOS release 6.2 (Final)
インストール後の初期設定は 「CentOSサーバー構築マニュアル」さんのマニュアルを参考にしました
・yumによるアップデート
・SELinux無効化
・リポジトリインストール
等を実施しました
OpenSimは「opensim-0.7.3.1」です。 ソースからインストールします。
インストール後の実行結果はメガリージョンまで確認できました。(設定は次回に^^;)
(2SIMをメガリージョンとしました)
OpenSimの実行環境としてmonoが必要になりますが、簡単な方法として、バイナリーを入手して
展開するのが近道です。
CentOS6で下記のように、バイナリをyumよりダウンロードして展開し、実行することにしましたが
エラーが発生してしまします。
OpenSimのwikiで記載されている「Mono のリポジトリからインストールする 」方法では、
rpmファイルを解凍する時エラーとなりました。
解決方法が見つからないので、mono実行環境をソースからコンパイルしてみました
libgdiplus拡張ライブラリーのコンパイル
Mono実行環境のコンパイル
となります。
まず最初にmonoのコンパイルに必要なライブラリー、ツールを事前にyumでインストールします
こちらのPhonicUK Wikiさんのwikiを参考にインストールしてみました
(すでにインストール済みのものもあります)
# yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* /
libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wg
libgdiplus拡張ライブラリーのインストール
mono-projectのダウンロードよりソースを入手します。
今回は libgdiplus-2.10.9.tar.bz2 を選択
/usr/local/src で展開
# tar jxvf libgdiplus-2.10.9.tar.bz2
# cd libgdiplus-2.10.9
# ./configure
# make
# make install
# ldconfig
monoのインストール
mono-projectのダウンロードよりソースを入手します。
今回は mono-2.10.9.tar.bz2 を選択
/usr/local/src で展開
# tar jxvf mono-2.10.9.tar.bz2
# cd mono-2.10.9
# ./configure --with-libgdiplus=/usr/local/lib/libgdiplus.la --prefix=/usr/local
# make
# make install
*コンパイルには1時間30分程度かかりました^^
バージョンを確認します
$ mono --version
Mono JIT compiler version 2.10.9 (tarball 2012年 5月 19日 土曜日 17:22:46 JST)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
無事インストールできたみたいです。
次回 OpenSimのソースをコンパイルして実行してみます。