今、夜勤の間で密かなブームとなっているMinecraft
一部界隈では「既にオワコン」と噂が流れている様ですが、私自体既にオワコンなので気にしません。
とりあえずMinecraftについての説明はここでは省きます。
サーバを建てて皆でプレイできたらいいね、という趣旨の元、覚書として残しておきます。
サーバーについて
そもそもどうやってサーバを立てるの?
サーバーを立てるといっても立て方はたくさんあります。
実際にどんなものがあるかあげてみます。
- PCとサーバーソフトを使ったサーバー(pmmpやNukkit、Jupiter、MiNETなど)を使ったもの
- Androidのアプリ(BlueLight Appなど)を使ったもの
- 代行
- MiRm
- InstantMCPE
- LEET
うーん、さっぱりよくわからんけど
職業柄、自分でイチから構築できたほうがいいと思うので、1番目の方法をとることに
サーバーを立てるのに必要なもの
- Windows、Linux、MacOSなどを搭載したPC
- サーバーソフト(PMMPやNukkit、Jupiter、MiNETなど)
- 有線または無線LAN環境
- ある程度のPCの知識
- 根気
- (英語も読めたほうがいい)
サーバーソフトの選び方
・プラグインをたくさん使ってみたい!
⇒PocketMine-MP(PMMP)
・とにかく早く設定してサーバーを立ててみたい!
⇒Nukkit/Jupiter (Java)
・C#を使ったことがあるから高度な鯖立てにチャレンジしてみたい!
⇒MiNET
なんか色々種類があるんでやんすね…
PocketMine-MPとやらを使って建ててみる
Googleとかで検索結果上位に出るのがこのPocketMine-MPというやつだったので
まぁまずはこちらで鯖建てしてみる
手順
今回はテストを兼ねて自宅サーバで構築。
- 1 vCPU
- RAM:512 MB
- SSD:20GB
- OS:AmazonLinux
- 回線:100M共有 ダイナミックGIP持ち
とりあえずyum update
# sudo su - # yum -y update && reboot
新規ユーザ作成&パスワード設定、最後にスイッチ
# useradd pmmp # passwd pmmp Changing password for user pmmp. New password: Retype new password: passwd: all authentication tokens updated successfully. # su - pmmp $
PocketMine-MPをインストール。以下コマンドで自動的に入っちゃうみたい。
いい時代になったもんだ。
$ wget -q -O - https://get.pmmp.io | bash -s -
$ wget -q -O - https://get.pmmp.io | bash -s - [*] Retrieving latest build data for channel "alpha" [*] Found PocketMine-MP 3.9.4 (build 1775) for Minecraft: PE v1.12.0 (PHP 7.3) [*] This alpha build was released on Fri Aug 16 16:58:54 UTC 2019 [*] Installing/updating PocketMine-MP on directory ./ [1/3] Cleaning... [2/3] Downloading PocketMine-MP phar... done! [3/3] Obtaining PHP: detecting if build is available... Linux PHP build available... downloading 7.3 ... updating php.ini... checking... downloaded PHP build doesn't work on this platform! [3/3] No prebuilt PHP found, compiling PHP automatically. This might take a while. [PocketMine] PHP compiler for Linux, MacOS and Android [INFO] Checking dependencies [ERROR] Please install "autoconf" [ERROR] Please install "automake" [ERROR] Please install "m4" [ERROR] Please install "bison" [ERROR] Please install "g++" [ERROR] Please install "cmake" [ERROR] Please install "libtool" or "libtool-bin"
おっほ、いきなりエラー。
なんか色々足りないみたいなのでyumでぶちこんでおく。
# yum install autoconf automake m4 bison cmake libtool gcc-c++
リトライ
$ wget -q -O - https://get.pmmp.io | bash -s - [*] Retrieving latest build data for channel "alpha" [*] Found PocketMine-MP 3.9.4 (build 1775) for Minecraft: PE v1.12.0 (PHP 7.3) [*] This alpha build was released on Fri Aug 16 16:58:54 UTC 2019 [*] Installing/updating PocketMine-MP on directory ./ [1/3] Cleaning... [2/3] Downloading PocketMine-MP phar... done! [3/3] Obtaining PHP: detecting if build is available... Linux PHP build available... downloading 7.3 ... updating php.ini... checking... downloaded PHP build doesn't work on this platform! [3/3] No prebuilt PHP found, compiling PHP automatically. This might take a while. [PocketMine] PHP compiler for Linux, MacOS and Android [INFO] Checking dependencies [INFO] Compiling for current machine using 64-bit [PHP] downloading 7.3.8... done! [zlib] downloading 1.2.11... checking... compiling... installing... done! [GMP] downloading 6.1.2... checking... compiling... installing... done! [OpenSSL] downloading 1.1.0k... checking... compiling... installing... done! [cURL] downloading curl-7_65_3... checking... compiling... installing... done! [YAML] downloading 0.2.2... checking... compiling... installing... done! [libzip] downloading 1.5.2... checking... $
お、インストール終わったみたいですね。結構時間かかりました。
では、起動してみましょう。
$ ./start.sh ./start.sh: line 26: type: php: not found Couldn't find a working PHP 7 binary, please use the installer.
$ ll /home/pmmp/bin/php7/bin/ total 3156 -rwxr-xr-x 1 pmmp pmmp 6214 Sep 1 14:58 c_rehash -rwxr-xr-x 1 pmmp pmmp 344880 Sep 1 14:59 curl -rwxr-xr-x 1 pmmp pmmp 6146 Sep 1 14:59 curl-config -rwxr-xr-x 1 pmmp pmmp 2864136 Sep 1 14:58 openssl
確かにbin配下にphp見当たらないな…
もっかいイチからインストール試してみるか。
結論からいうとインストールできませんでした
正確には、AmazonLinuxでは対応していない、という話です。
この後、再インストールしたり、別途php7をyumやソースで手動で入れてみましたが
どうやってもうまく動いてくれませんでした。
実はこの答えは最初にインストールした時に既に出ていました。
[3/3] Obtaining PHP: detecting if build is available... Linux PHP build available... downloading 7.3 ... updating php.ini... checking... downloaded PHP build doesn't work on this platform!
最後の行
PHP build doesn't work on this platform!
この環境ではPHPは動きません、ってはっきり書いてありますね。
読んでませんでした。
もちろん色々テストすれば動くのでしょうが
私は命をかけてまでインストールしたい訳ではありません。
ぶっちゃけサッと入れられればええねん。
というわけでAmazonLinuxでのインストールは断念することに。
Ubuntuにインストールしてみる
先に行っちゃいますね。
Debian系OSなら一瞬ですぐインストールできます。
$ wget -q -O - https://get.pmmp.io | bash -s - [*] Retrieving latest build data for channel "alpha" [*] Found PocketMine-MP 3.9.4 (build 1775) for Minecraft: PE v1.12.0 (PHP 7.3) [*] This alpha build was released on Fri Aug 16 16:58:54 UTC 2019 [*] Installing/updating PocketMine-MP on directory ./ [1/3] Cleaning... [2/3] Downloading PocketMine-MP phar... done! [3/3] Obtaining PHP: detecting if build is available... Linux PHP build available... downloading 7.3 ... updating php.ini... checking... done [*] Everything done! Run ./start.sh to start PocketMine-MP $ ./start.sh [*] PocketMine-MP set-up wizard [*] Please select a language العربية => ara Английски => bul Čeština => ces 中文 (简体) => chs Deutsch => deu Ελληνικά => ell English => eng Eesti => est Suomi => fin Français => fra Gaeilge => gle עברית => heb Engleski => hrv Magyar => hun Bahasa Indonesia => ind Italiano => ita 日本語 => jpn 한국어 => kor Latviešu => lav Malti => mlt Bahasa Melayu => msa Nederlands => nld Norsk => nor Polski => pol Português => por Pyccĸий => rus Español => spa Svenska => swe Tagalog => tgl ภาษาอังกฤษ => tha tlhIngan => tlh Türkçe => tur Українська => ukr Tiếng Việt => vie 中文(繁體) => zho [?] Language (eng): jpn [*] 日本語が正しく選択されました。 [*] PocketMine-MP にようこそ! サーバーのセットアップを開始する前に、ライセンスに同意する必要があります。 PocketMine-MP は LGPL ライセンスのもとで許諾されており、 このフォルダーで LICENSE ファイルを読むことができます。 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. [?] ライセンスに同意しますか? (y/N): y [?] セットアップウィザードをスキップしますか? (y/N): y [15:15:12] [Server thread/INFO]: Loading pocketmine.yml... [15:15:12] [Server thread/INFO]: Loading server properties... [15:15:12] [Server thread/INFO]: 日本語(jpn)を基本言語として選択しました [15:15:12] [Server thread/INFO]: Minecraft: Bedrock Edition サーバーバージョン v1.12.0 を開始しています [15:15:12] [Server thread/NOTICE]: オンラインモードが有効になっています。サーバーは、プレイヤーが Xbox Live に認証されていることを確認します。 [15:15:12] [Server thread/NOTICE]: 認証を無効にするには、server.properties で「xbox-auth」を「false」に設定してください。 [15:15:12] [Server thread/INFO]: サーバーを 0.0.0.0:19132 で開始しています [15:15:12] [Server thread/INFO]: このサーバーは PocketMine-MP バージョン 3.9.4 を実行しています [15:15:12] [Server thread/INFO]: PocketMine-MP は LGPL ライセンスのもとで配布されています [15:15:12] [Server thread/INFO]: Loading resource packs... [15:15:12] [Server thread/NOTICE]: ワールド「world」が見つかりませんでした [15:15:12] [Server thread/INFO]: ワールド「world」を準備しています [15:15:12] [Server thread/NOTICE]: ワールド「world」のスポーン地形がバックグラウンドで生成されています [15:15:12] [Server thread/INFO]: GS4 ステータスリスナーを開始しています [15:15:12] [Server thread/INFO]: Query ポートを 19132 に設定しています [15:15:12] [Server thread/INFO]: Query は 0.0.0.0:19132 で動作しています [15:15:12] [Server thread/INFO]: デフォルトのゲームタイプ:サバイバルモード [15:15:12] [Server thread/INFO]: 完了(0.268 秒)!ヘルプについては「help」または「?」を入力してください
所要時間およそ1分。なんだこれは、たまげたなぁ…
最初に苦戦したセットアップはなんだっんだ。。
というか、ネットの記事を見ると、ほとんどがプラットフォームに
Ubuntuを採用していることが判明。うーむ悔しい。
というわけで、今後Minecraftのサーバ構築についてはDebian系のOSを推奨いたします。
起動
start.shを実行した段階でサーバが起動します。
停止する際はCtrl+Cを入力するか、stopと打ち込めば止まります。
stop [15:20:07] [Server thread/INFO]: ワールド「world」をアンロードしています [15:20:07] [Server thread/INFO]: Stopping other threads
バージョン情報
version [15:20:01] [Server thread/INFO]: このサーバーは Minecraft: Bedrock Edition v1.12.0(プロトコルバージョン 361)用 PocketMine-MP 3.9.4 を実行しています
細かい設定はserver.propertiesというファイルで編集可能です
ポートを開ける
開け方はiptables、FW、ルータなど環境によって異なるので
ここでは一概に説明が難しいですが、自宅で構築してるのでルータ側でポート開放を行いました。
ちなみにiptablesを利用している場合は下記コマンドで
$ sudo iptables -A INPUT -p udp -m udp --dport 19132 -j ACCEPT
開けるポートはUDP:19132です。UDPです、TCPじゃありません。
一瞬ここでハマりました。お気をつけを。
アプリから接続
- アプリ起動
- 一番右のサーバータブを選択
- サーバを追加を選択
- サーバ名は適当に、サーバーアドレスは自宅のGIPもしくはドメイン
- ポートはそのままで保存
- 保存したサーバに接続
これでうまく行けば接続できるはず…
繋がったッー!!!
やったー!!
今は初期状態でほぼ何もありません。
ゲーム内の設定は先述した通り、server.propertiesというファイルでカスタム可能です。
あとはプラグインなども入れたり、pmmpをバックグラウンドで動かす設定入れたり
色々できますが、ここでは端折ります。好きにしてください。
おわり
最後になりますが、実はこのPocketMine-MP。もう使ってません。
というのも、デフォルトの状態で何もなさすぎて困ったのです。
正直サクッと入れてワイワイ遊ぶ趣旨だったのですが
全然遊び要素が少なすぎたので、現在はNukkitというソフトを使ってます。
こちらはPMMPと違いjavaで動かしてるので非常に動作が安定してます。
いつか余裕があればこちらも解説したいと思います。