レンタルサーバーでminecraftサーバーを立てる際にひっかかった話【1.10.2】【ConoHa】

概要

  • The Unusual SkyblockをマルチプレイしたくなったのでConoHaのレンタルVPSを借りて建ててみた
  • 他のブログ等を参考にしたが上手くいかなかった。知り合いと色々試して解決できたのでまとめる

わかる人向けの結論

  • 古いバージョンのminecraftサーバーが動かない場合はJavaのバージョンを古いものに切り替える
  • サーバーのjarや配布ワールドの所有権・グループを適切に設定する
  • (配布ワールドの場合)"server.properties"の"enable-command-block=true"を設定する

前提

手順

前提

  • ConoHaのレンタルサーバーは契約済みでサーバーもMinecraft Java Editionで作成済みとする
  • セキュリティグループに"IPv4v6-SSH"が追加済みであり、WinSCPからサーバーに接続できる状態とする

サーバーへのjarファイルの導入

  1. WinSCPでサーバーへ接続する
  2. "/opt/minecraft_server"ディレクトリに移動する
  3. minecraftサーバーのjarファイルをサーバーに転送する(下記画像)
    1.10.2のjarファイルを入れた直後
  4. 転送したjarファイルを右クリックしてプロパティを開く
    jarファイルのプロパティを開いた直後
  5. 所有者、グループを"minecraft"に変更する
    jarファイルのプロパティ変更後
  6. OKを押下してプロパティを閉じる

※補足:既に存在しているjarファイルは消しても消さなくても問題ない。

systemdの編集(起動するバージョンを変更する)

  1. "/etc/systemd/system"ディレクトリに移動する
  2. "minecraft-server.service"を右クリックして『編集』→『編集』でエディタを開く
    編集するファイル(minecraft-server.service)
  3. 転送したjarファイルの名前に変更(今回は"minecraft_server.1.10.2.jar")
    minecraft-server.serviceの編集後(青ハイライトの箇所)
  4. 左上の保存(フロッピーディスクアイコン)をクリックした後、エディタを閉じる

(配布ワールドを利用する場合)ワールドの導入

配布ワールドを使用しない場合は読み飛ばして下さい。

  1. "/opt/minecraft_server"ディレクトリに移動する
  2. "world"ディレクトリをすべて削除する
  3. 配布ワールドのディレクトリ名を"world"に変更する(worldディレクトリの直下にlevel.dat等のファイルが並ぶ形)
  4. 配布ワールドが格納されている"world"ディレクトリをサーバーに転送する
  5. 転送した"world"ディレクトリを右クリックしてプロパティを開く
  6. 下記画像のように所有者・グループを"minecraft"に変更し、"所有者・グループ・パーミッション再帰的に設定する"にチェックを入れた状態でOKを押下する
    配布ワールドの所有者設定
  7. WinSCPを閉じる

参照するjavaのバージョン変更

本題になる部分。

  1. PowerShellを起動(WindowsメニューからW列の"Windows PowerShell"フォルダ内の"Windows PowerShell"、あるいは直接検索して起動しても構わない)
  2. 下記を入力({IPアドレス}としている箇所には借りているサーバーのIPアドレスを入力。{}のカッコは要りません。)
    ssh {IPアドレス} -l root
  3. 下記のように表示されるので、rootのパスワードを入力(サーバー作成時に設定したパスワード)
    root@{IPアドレス}'s password: 4 . (初回の接続時の場合)"ECDSA key fingerprint~"といった表示が出た場合は"yes"を入力
  4. ログインに成功した場合は"Welcome to Ubuntu~"とか表示が出る(出ないかも)。入力するところがroot@{なんか文字列}:~#に変わっていれば問題ない。
  5. 下記を入力する
    update-alternatives --config java
  6. 画像のような表示が出るので、使用するjavaに対応しているSelection列の番号を入力(今回はjava-8を使うのでこの例では3)
    update-alternativesの出力

※補足:使用すべきjavaのバージョンを調べてみたが、公式の動作確認した表などを見つけられなかったので、古そうなバージョンは古いやつで動かしてみて試すのが結局は早く済むかも

サーバーの再起動

Webから見れるサーバーのコントロールパネルから再起動してもいいけどこの手順のほうが変更の反映は手早いです
ワールドの入れ替えや設定の変更を行ったらこの手順で変更を反映させてください

  1. PowerShellssh接続後の状態で下記を入力する
    systemctl restart minecraft-server.service
  2. 起動を確認するには下記を入力する。起動できていれば下記の画像のように "Active: active(running)"になる
    systemctl status minecraft-server.service
    systemctl status
  3. minecraftのクライアントを立ち上げて接続できるか確認する

※補足:サーバーを停止する場合は下記を入力する。立ち上げる場合はrestartでよい。
systemctl stop minecraft-server.service

あとがき

  • 古いminecraftってそういえばJava8で動かしてたな・・・
  • それはそうとConoHaがゲームの種類選んで環境構築やってくれるのは便利だった。コントロールパネルが異常なまでに重いのとか再構築かけたら8時間くらい待たされたのだけうーん
  • 再構築中に削除かけようとしたりしたらなんかおかしくなったのでその辺の解決策は後で気が向いたら書いておきます