FizSoft

Minecraft サーバ再構築(Bukkit編) ���̃G���g����͂Ăȃu�b�N�}�[�N�ɓo�^

2012 年 3 月 31 日 by Pulsar

半年以上振りの更新がまたもやマイクラ鯖ネタな件。。。

さくらのVPSがリニューアルし、VPS512が1Gとなったので、
再度マイクラサーバを立ててみました。
今度は公開、長期的運用を考えて、CraftBukkitベースで行います。
本家のminecraft_server.jarを使ったシンプルな構成は以前のエントリへどうぞ。

レシピ
・サーバー
 この記事ではさくらのVPS 1G+CentOS release 6.2(x86_64)の環境です。
 環境はJavaが動けば何でもいいと思いますが、グローバルアクセスできるIPやドメイン、DDNS等を持ったサーバが前提です。

・JRE
 言うにおよばず、Java Runtime Environment (Java仮想マシン、JVM)です。
 こちらから環境にあったものを入手してインストールしておきます。
 特に制約とかが無ければ現時点の最新版でOKです。

CraftBukkit
 本家のminecraft_server.jarをベースに機能拡張したのがCraftBukkitと呼ばれるサーバアプリです。
 基本的には英語圏で作られているアプリのため、義務教育レベルの英語力とGoogle翻訳を使う程度の能力は必要です。
 本家サーバの拡張のため、バージョンアップが発生するとクライアントと互換性が取れず、
 サーバーに接続できなくなることが多いです。
 アップデートは比較的早いようですが、私もこれから運用なのでまだなんとも。。。
 本家にはないメリットとしては、豊富なプラグインにあります。
 管理機能系ではワールドバックアップ、ユーザ権限、グループ設定など、
 保護機能系ではチェストの権限や爆発で建物が壊れないようにするなど、
 サーバ運用に必要な基本機能を一通り揃えているのが魅力です。

bukkitをダウンロードしたら設置作業を行います。
一応、今後過去バージョンのバイナリを取っておくこと考えて、
以下のようにシンボリックリンクを作成しておきます。

ln -s ./craftbukkit-1.2.4-R1.0.jar craftbukkit.jar

そして、サーバとして起動させておくために、以下のようなシェルスクリプトを作成します。


# vi craftbukkit.sh
#!/bin/sh
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
java -Xmx1024M -Xms1024M -jar craftbukkit.jar

BINDIRと起動コマンドのjava~は環境により変更してください。
-jar はシンボリックリンクを指すようにしておきます。
こうすることで、今後新バージョンを試してみる時に、
過去バージョンを残しておいてシンボリックリンクの張替え&再起動で対応できますね。
動作に問題があれば旧バージョンに戻すという事も想定しての対応です。

作成したら実行権を付与して実行します。


chmod +x craftbukkit.sh
./craftbukkit.sh

成功すれば初期データの作成が行われます。
一先ずstopコマンドでサーバを停止して終了しましょう。

このあとは公式サーバと同じく、ワールドの設定などを行います。
server.properties が各種設定です。
bukkitを利用すると、このファイルで設定可能な項目も増えていたり、
plugins というサーバMOD用のディレクトリも作成されます。
サーバMODはbukkitフォーラムなどに沢山公開されていますので、
自分のサーバ運用に欲しい機能を探して導入しましょう。
導入は簡単で、プラグインファイル(jar形式で配布されています)をpluginsに置くだけです。

サーバ設定やMOD導入が終わったら、再度サーバを起動して、
minecraftからアクセスしてワールドを確認してみてください。

追記:サーバをバックグラウンドで実行させる
バックグラウンド実行機能がデフォルトで存在しないので、
外部ツールscreenを使ってバックグラウンド実行を実現します。
screenは仮想端末を起動するアプリで、この仮想端末内でマイクラサーバを実行、
バックグラウンドに回して(detouchして)動かし続けるという寸法です。

導入されていない場合、yumでインストールできます。

# yum install screen

インストールしたらscreenを起動し、新しいセッションを張ります。

# screen

これで新しいセッションを張ることができますので、マイクラサーバをセッションで実行します。
実行後、セッションをデタッチすればOKです。
「Ctrl+a を押してから Ctrl+d」でデタッチできます。
(シェルにより操作方法は微妙に変わるかもしれませんのでご注意を)
デタッチしていればサーバからログアウトしても問題ありません。そのまま動いています。
逆にアタッチする場合は以下のコマンドで行います。

screen -r

サーバを終了するときなどはこれでアタッチしてstopしましょう。

次回はMODを色々導入してみて、レビューしてみたいと思います。