VPSでMinecraftマルチサーバーを構築しよう!

当環境はCentOS7です。これであなたもMinecraftマルチサーバー24時間鯖の構築ができる!

javaのインストール

# yum install -y java

バージョンを確認しましょう。

# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

screenのインストール

screenを入れることによって、仮想端末を作りバックグラウンドで動作するように出来ます。

# yum install -y screen

 

wgetのインストール

Minecraft公式ページよりダウンロードするために必要なものです。

# yum install -y wget

 

実行ユーザの追加

サーバーを実行するためのユーザを追加しましょう。

# adduser minecraft
# passwd minecraft
ユーザー minecraft のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:

 

Minecraftマルチサーバーをダウンロード、設置

ユーザを切り替え、フォルダを作り、ダウンロードをして名前を変更しましょう。

最新のバージョンは公式のダウンロードから確認してください。

# su - minecraft
# mkdir minecraft
# cd minecraft
# wget https://s3.amazonaws.com/Minecraft.Download/versions/1.9.4/minecraft_server.1.9.4.jar
# mv minecraft_server.1.9.4.jar minecraft_server.jar

 

Minecraftマルチサーバーの初回起動

EULA(使用許諾契約)に同意する必要が有るので、初回起動でeula.txtを生成し同意しましょう。

#  java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
[00:00:00] [Server thread/INFO]: Starting minecraft server version 1.9.4
[00:00:00] [Server thread/INFO]: Loading properties
[00:00:00] [Server thread/WARN]: server.properties does not exist
[00:00:00] [Server thread/INFO]: Generating new properties file
[00:00:00] [Server thread/WARN]: Failed to load eula.txt
[00:00:00] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[00:00:00] [Server thread/INFO]: Stopping server
[00:00:00] [Server Shutdown Thread/INFO]: Stopping server

eula.txtを開き、falseをtrueに変更をし保存しましょう。

# vi eula.txt
  eula=false

  eula=true

 

ポートの開放をする

これは使用しているVPSによるのですが、基本的には自分でポートを解放する必要があります。

# firewall-cmd --add-port=25565/tcp --zone=public --permanent
success
# firewall-cmd --reload
success

successと表示されれば大丈夫です。解放が出来ました。

 

起動・停止のスクリプト作成

こちらを参考にし、スクリプトを作ります。

起動スクリプト

# vi start.sh
変数
説明
USERNAME実行ユーザを指定。
SERVICEファイル名を指定。
SCNAMEscreenの仮想端末に名前を付ける。
MC_PATHファイルのある場所を指定。
XMX最大メモリを指定。
XMS最小メモリを指定。
#!/bin/bash

USERNAME='minecraft'
SERVICE='minecraft_server.jar'
SCNAME='minecraft'
MC_PATH='/home/minecraft/minecraft'

XMX="1024M"
XMS="1024M"

cd $MC_PATH

ME=`whoami`

if [ $ME == $USERNAME ] ; then
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "※サーバーは既に起動しています。"
else
echo "Starting $SERVICE..."
screen -AmdS $SCNAME java -Xmx$XMX -Xms$XMS -jar $SERVICE nogui
fi
else
echo

 

停止スクリプト

# vi stop.sh

10秒後にサーバーが停止するように書かれています。

#!/bin/bash

USERNAME='minecraft'
SERVICE='minecraft_server.jar'
SCNAME='minecraft'
MC_PATH='/home/minecraft/minecraft'

cd $MC_PATH

ME=`whoami`

if [ $ME == $USERNAME ] ; then
  if pgrep -u $USERNAME -f $SERVICE > /dev/null
    then
      echo "Stopping $SERVICE"
      screen -p 0 -S $SCNAME -X eval 'stuff "say 10秒後、サーバーが停止されます>。"5'
      screen -p 0 -S $SCNAME -X eval 'stuff "save-all"5'
      sleep 10
      screen -p 0 -S $SCNAME -X eval 'stuff "stop"5'
      sleep 10
    else
      echo "※サーバーは既に停止されています。"
  fi

 

起動・停止スクリプトのパーミッション変更

変更することで、minecraftユーザのみが実行できるようになる。

# chmod 744 start.sh
# chmod 744 stop.sh

 

仮想端末への接続

screenから仮想端末へ接続します。

# screen -r minecraft

screenから抜ける場合は [Ctrl]+a+d で抜けることが出来ます。

 

楽しむ

お疲れ様でした。後はサーバーを起動して楽しみましょう。

--起動--
# /minecraft/start.sh

--停止--
# /minecraft/stop.sh

※起動・停止は毎回minecraftユーザでログインする必要があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください