当環境は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 | ファイル名を指定。 |
SCNAME | screenの仮想端末に名前を付ける。 |
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ユーザでログインする必要があります。