Help us understand the problem. What is going on with this article?

Linux(CentOS7)で、Minecraftマルチサーバを立ち上げる手順

More than 3 years have passed since last update.

CentOS7にて、Minecraftのマルチサーバを構築する手順を記載。

はじめに

常時稼働を目的としていることと、常時稼働による電気代や夏場の排熱問題が懸念されるため、サーバは仮想化サーバを安価で提供しているDTIさんのServersMan@VPS(Standard)を使用。
http://dream.jp/vps/

レンタル料で月額1,000円弱かかるが、自宅サーバ常時稼働での電気代等を考えれば、
トントンもしくはお安くなるはず。

本手順の前提

 ・OSはCentOS 7を使用。
 ・作業はrootにて実施。
 ・使用しているサーバは、DTIさんのServersMan@VPS(Standardプラン・シンプルセット)。

OpenJDKのインストール

まずは、以下のコマンドで利用可能な"openjdk"をチェック。

[root@dti-vps-srv707 ~]# yum search openjdk

[root@dti-vps-srv707 ~]# yum search openjdk

Loaded plugins: fastestmirror
base                                                                                                                                      | 3.6 kB  00:00:00
extras

(中略)

========== N/S matched: openjdk ==========
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility-debug.x86_64 : OpenJDK accessibility connector for packages with debug on
java-1.8.0-openjdk-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel-debug.i686 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-headless.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK API Documentation compressed in single archive
java-1.8.0-openjdk-javadoc-zip-debug.noarch : OpenJDK API Documentation compressed in single archive for packages with debug on
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation

"java-1.8.0"が最新のようなので、以下のコマンドでインストール

[root@dti-vps-srv707 ~]# yum install -y java-1.8.0-openjdk

最後に"Complete!"と表示されればOK。

Minecraft用のディレクトリを作成

今回は、"/var/mainecraft"とするので、以下のコマンドを実行。

[root@dti-vps-srv707 ~]# mkdir /var/minecraft

作成したディレクトリに移動。

[root@dti-vps-srv707 ~]# cd /var/minecraft/

Minecraftの最新版をダウンロード

最新版は、以下のURL先にアクセスして確認。

https://minecraft.net/ja-jp/download/server

確認した最新版をダウンロードする。
 
 ※wgetとURLは、半角スペースを1つ空け続けて記載する。
 ※別Ver.をダウンロードするときは、"1.12"の数字のところだけダウンロードしたVer.のものに変える。

[root@dti-vps-srv707 minecraft]# wget  https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar

ちゃんとダウンロードできたか"ll"コマンド等で確認する。

[root@dti-vps-srv707 minecraft]# ll

[root@dti-vps-srv707 minecraft]# ll
total 29532
-rw-r--r-- 1 root root 30202458 Jun 13 16:00 minecraft_server.1.12.jar

起動スクリプトを作成

"vi"コマンド等で"minecraft.sh"ファイルを作成し、中身を記述する。

[root@dti-vps-srv707 minecraft]# vi minecraft.sh

#!/bin/sh
java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.jar nogui

↑これが書き込む内容。書き込んだら保存。
 ※Ver.により書き込む内容がちょっと異なる。なにを書き込むかは最新版を確認したURL先に記述してあるはず。
  (#!/bin/sh は必ず記載。)

 script.png

作成したシェルスクリプトに実行権限を付与。

[root@dti-vps-srv707 minecraft]# chmod o+x minecraft.sh

[root@dti-vps-srv707 minecraft]# chmod o+x minecraft.sh

ちゃんと付与できたか"ll"コマンド等で確認。
("minecraft.sh"の権限部分の末尾に"x"が入っていればOK。)

[root@dti-vps-srv707 minecraft]# ll

[root@dti-vps-srv707 minecraft]# ll
total 29536
-rw-r--r-x 1 root root       72 Jul 11 22:32 minecraft.sh
-rw-r--r-- 1 root root 30202458 Jun 13 16:00 minecraft_server.1.12.jar

起動

シェルスクリプトを実行してMinecraftを起動する。

[root@dti-vps-srv707 minecraft]# ./minecraft.sh

[root@dti-vps-srv707 minecraft]# ./minecraft.sh
[13:34:47] [Server thread/INFO]: Starting minecraft server version 1.12
[13:34:47] [Server thread/INFO]: Loading properties
[13:34:47] [Server thread/WARN]: server.properties does not exist
[13:34:47] [Server thread/INFO]: Generating new properties file
[13:34:47] [Server thread/WARN]: Failed to load eula.txt
[13:34:47] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[13:34:47] [Server thread/INFO]: Stopping server

起動に失敗するが、絶対に初回は失敗するので問題無し。
EULAへの同意が必要なので、続けて以下の手順を実施。

EULAへの同意

"ll"コマンド等でファイルを確認。

[root@dti-vps-srv707 minecraft]# ll

[root@dti-vps-srv707 minecraft]# ll
total 29548
-rw-r--r-- 1 root root      181 Jul 11 22:34 eula.txt
drwxr-xr-x 2 root root     4096 Jul 11 22:34 logs
-rw-r--r-x 1 root root       72 Jul 11 22:32 minecraft.sh
-rw-r--r-- 1 root root 30202458 Jun 13 16:00 minecraft_server.1.12.jar
-rw-r--r-- 1 root root       59 Jul 11 22:34 server.properties

"eula.txt"というファイルが出来ているので、viコマンドで内容を一部書き換え。

[root@dti-vps-srv707 minecraft]# vi eula.txt

\#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
\#Tue Jul 11 13:34:47 GMT 2017
eula=false

↑これが"eula.txt"の内容。末尾の"eula=false"を↓のように"eula=true"に書き換えて内容を保存。

\#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
\#Tue Jul 11 13:34:47 GMT 2017
eula=true

再度、作成したスクリプトを実行したら、今度は正常にMinecraftが起動できる。

[root@dti-vps-srv707 minecraft]# ./minecraft.sh

あとは、各端末からサーバにアクセスするだけ。(方法は後日記載。)

minecraftサーバの自動起動手順

さて、上記までの手順でMinecraftをCentOS7上で稼働させ、そのまま常時稼働させることができますが、「サーバを定期的に再起動したい!でも、その度に再度CentOS7へアクセスしてMinecraftを起動させるのは面倒臭い!」とかその他諸々の理由でMinecraftをサーバの起動時に自動起動させたいという人向けの追加設定を以下に。

参考サイト

以下のコマンドにてMinecraft自動起動用のUnitファイルを作成。

[root@dti-vps-srv707 minecraft]# vi /etc/systemd/system/minecraft_server.service

[root@dti-vps-srv707 minecraft]# vi /etc/systemd/system/minecraft_server.service

[Unit]
Description=Minecraft Server
After=network-online.target

[Service]
ExecStart=/bin/bash /var/minecraft/minecraft.sh
WorkingDirectory=/var/minecraft/
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

※"minecraft.sh"の階層等がこのページの手順と違う階層の場合は、その内容に合わせて上記の内容を

上記ファイルを作成・保存後、systemdでこのファイルを読み込みする。

[root@dti-vps-srv707 minecraft]# systemctl daemon-reload

[root@localhost minecraft]# systemctl daemon-reload

続いて、サーバ起動時に自動起動するように以下のコマンドを実行する。

[root@dti-vps-srv707 minecraft]# systemctl enable minecraft_server

[root@dti-vps-srv707 minecraft]# systemctl enable minecraft_server

Minecraftを起動する。

[root@dti-vps-srv707 minecraft]# systemctl start minecraft_server

[root@dti-vps-srv707 minecraft]# systemctl start minecraft_server

サービスのステータスが見たいときは以下のコマンド。

[root@dti-vps-srv707 minecraft]# systemctl status minecraft_server

[root@dti-vps-srv707 minecraft]# systemctl status minecraft_server

● minecraft_server.service - Minecraft Server
   Loaded: loaded (/etc/systemd/system/minecraft_server.service; enabled; vendor preset: disabled)
   Active: active (running) since 月 2017-07-24 00:07:12 JST; 39min ago
 Main PID: 1113 (bash)
   CGroup: /system.slice/minecraft_server.service
           tq1113 /bin/bash /var/minecraft/minecraft.sh
           mq1141 java -Xmx1024M -Xms1024M -jar minecraft_server.1.12.jar nogui

 7月 24 00:07:30 localhost.localdomain bash[1113]: [00:07:30] [Server thread/INFO]: Default game type: SURVIVAL
 7月 24 00:07:30 localhost.localdomain bash[1113]: [00:07:30] [Server thread/INFO]: Generating keypair
 7月 24 00:07:30 localhost.localdomain bash[1113]: [00:07:30] [Server thread/INFO]: Starting Minecraft server on *:25565
 7月 24 00:07:30 localhost.localdomain bash[1113]: [00:07:30] [Server thread/INFO]: Using epoll channel type
 7月 24 00:07:31 localhost.localdomain bash[1113]: [00:07:31] [Server thread/INFO]: Preparing level "world"
 7月 24 00:07:31 localhost.localdomain bash[1113]: [00:07:31] [Server thread/INFO]: Loaded 488 advancements
 7月 24 00:07:31 localhost.localdomain bash[1113]: [00:07:31] [Server thread/INFO]: Preparing start region for level 0
 7月 24 00:07:33 localhost.localdomain bash[1113]: [00:07:33] [Server thread/INFO]: Preparing spawn area: 0%
 7月 24 00:07:34 localhost.localdomain bash[1113]: [00:07:34] [Server thread/INFO]: Preparing spawn area: 40%
 7月 24 00:07:35 localhost.localdomain bash[1113]: [00:07:35] [Server thread/INFO]: Done (4.000s)! For help, type "help" or "?"

最後に停止コマンドは以下。

[root@dti-vps-srv707 minecraft]# systemctl stop minecraft_server

[root@dti-vps-srv707 minecraft]# systemctl stop minecraft_server

最後に

またなにか追記があったり修正が必要な個所が出てきたら随時更新していきます。

t-morisoba
自分が忘れないため、今後、流用できるためのメモとして利用。 他の誰の役にも立たないどころか、邪魔となる可能性もあるかも。すまぬぬぬです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away