Minecraft Bukkit Server unter Linux - Tutorial
In diesem Tutorial zum Thema "Unter Linux (Debian, Ubuntu, ...) einen Minecraft Bukkit Server aufsetzen" zeige ich euch, wie ihr euren eigenen Bukkit-Server erstellen könnt.
Die Vorteile eines Bukkit Server's zu einem normalen Minecraft Server liegen darin, dass man viel einfacher Plugins und Erweiterungen hinzufügen kann.
Ein Bukkit Server ist fast das gleiche wie ein Mojang Minecraft Server, der einzige große Unterschied liegt wie eben genannt in den Plugins.
Dieses Tutorial ist für Linux - Debian gedacht, lässt sich aber auf andere Linux Betriebssysteme z.B. Ubuntu übertragen.
Ihr könnt euch heraussuchen, ob ihr ein Video Tutorial sehen möchtet, oder ob ihr das Tutorial lesen möchtet:
Grundlagen/Vorbereitung
Benötigte Programme:
Putty
(SSH Windows Client) auf eurem Windows Rechner, damit ihr auf eurem Root/VServer Zugreifen/Befehle eingeben könntScreen
auf dem Linux Server (Wird erklärt)
Minecraft bringt keinen eigenen Daemon mit, das heißt keinen Dienst bei dem der Minecraft Server im Hintergrund weiter laufen kann.
Dies kann man aber mit Hilfe von Screen machen. Screen ist eine Art Fenstermanager für die SSH-Shell.
Screen richtet sozusagen eine weitere im Hintergrund laufende Shell ein, eine sogenannte Screen Session.
Genau in dieser Session können wir den Minecraft Server im Hintergrund laufen lassen.
Das heißt, wenn man Screen nicht benutzt, schließt sich der Minecraft Server automatisch, nachdem man Putty schließt, weil der Prozess dann nicht weiter läuft, sondern beendet wird.
Sollte Screen auf eurem Linux Server nicht installiert sein:
- Bei Debian sowie Ubuntu
linux:~# apt-get install screen
- bei Suse mittels
yast
im Menü "Software"- bei CentOS z.B.
linux:~# yum install screen
- (ggf. noch die Anwendungen zum entpacken der Archive installieren:)
linux:~# apt-get install bzip2
(Wird benötigt um .bz2 Archive und andere zu entpacken)
linux:~# apt-get install tar
(Wird benötigt um .tar Archive und andere zu entpacken)
Zur Installation müssen wir uns mittels Putty eine Verbindung zum Server herrstellen und als root-Benutzer einloggen.
Hinweis: Es ist aus Sicherheitsgründen ratsam für Minecraft & andere Server einen eigenen Benutzer zu erstellen und ihn nicht als root-Benutzer laufen zu lassen, dies machen wir wie folgt:
Nach meiner Empfehlung erstellt man einen Ordner z.B. namens "Programme" unter dem Verzeichnis /home.
Dann erstellt man einen Benutzer "programme" und setzt das Standardverzeichnis auf das eben erstellte Verzeichnis.
Wenn dieser Schritt getan ist installiert man alles, was zu diesem Benutzer gehört in diesem Verzeichnis und startet z.B. den Minecraft Server über diesen Benutzer.
Dies hat den Vorteil, das der Server nicht mit root Rechten gestartet wird und somit nur im Verzeichnis "programme" Zugriff hat.
Dazu erstellen wir einen Ordner, eine Gruppe und einen Benutzer namens programme:
linux:~# mkdir /home/programme
linux:~# addgroup programme
linux:~# useradd -g programme -d /home/programme -s /bin/bash programme
Jetzt haben wir eine Gruppe und einen Benutzer namens programme erstellt.
Der Benutzer gehört der Gruppe "programme" an (-g <Gruppe>), hat den Homepfad /home/programme (-d <Homepfad>)
und läuft in der Shell /bin/bash (-s <Shellpfad>).
Installation vom Minecraft Server:
Jetzt erstellen wir zunächst einen Ordner, in dem später der Minecraft Server eingerichtet werden soll. Das machen wir wie folgt:
linux:~# mkdir /home/programme/minecraft_server
(auf euren Pfad anpassen)
Dannach wechseln wir in das Verzeichnis /home/programme/minecraft_server und downloaden die Serverdatei:
linux:~# cd /home/programme/minecraft_server
linux:~# wget http://ci.bukkit.org/job/dev-CraftBukkit/733/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
Aktuelle Version: Bukkit Server
Jetzt haben wir eine Datei namens craftbukkit-0.0.1-SNAPSHOT.jar, diese benennen wir wie folgt um und erstellen ein Start - und Stopscript:
linux:~# mv craftbukkit-0.0.1-SNAPSHOT.jar minecraft_server.jar
linux:~# vi start.sh
[i] Taste drücken, um in den Schreibmodus zu wechseln
Jetzt folgendes einfügen:
#!/bin/bash
cd /home/programme/minecraft_server/
screen -A -m -d -S minecraft_server java -Xms512M -Xmx1024M -jar minecraft_server.jar
mit [esc] den Schreibmodus beenden und mit :wq abspeichern & beenden.
linux:~# vi stop.sh
[i] Taste drücken, um in den Schreibmodus zu wechseln
Jetzt folgendes einfügen:
#!/bin/bash
screen -S minecraft_server -X quit
mit [esc] den Schreibmodus beenden und mit :wq abspeichern & beenden.
Bei diesem Start - und Stopscript verwenden wir das oben installierte Screen.
Parameter und Bedeutung:
- -A setzt den Fenstermodus auf die aktuelle Fenstergröße
- -m -d Startet den Screen Prozess im Hintergrund (detached). Das heißt ihr landet nicht im Prozessfenster, wo ihr seht was in der Session passiert.
- -S gibt den Namen der Session an (hier: minecraft_server)
Der Command java gibt an, das die Aktion mit java gestartet werden soll.
Parameter und Bedeutung:
- -Xms512M gibt an wie viel Arbeitsspeicher (RAM) der Server mindestens zur Verfügung hat (512M = 0,5GB)
- -Xmx1024M gibt an wie viel RAM der Server maximal verwenden darf (1024M = 1GB). Das Maximum sollte je nach Serverleistung erhöht werden.
Sollte auf eurem Server noch kein Java installiert sein, müsst ihr es zuerst installieren.
Unter Debian, Ubuntu:
linux:~# apt-cache search openjdk
Durchsucht den Paketmanager nach Java und listet alle Versionen auf:
- openjdk-6-doc - OpenJDK Development Kit (JDK) documentation
- openjdk-6-jdk - OpenJDK Development Kit (JDK)
- openjdk-6-jre - OpenJDK Java runtime, using Hotspot JIT
- openjdk-6-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
Wir verwenden das Paket openjdk-6-jre-headless. Wer dieses nicht besitzt kann auch das normale jre verwenden.
In diesem Tutorial ist Java 6 die neuste Version. Wer die Möglichkeit hat sollte gleich Java 7 bzw. Java 8 installieren (openjdk-7).
linux:~# apt-get install openjdk-6-jre-headless
(Installiert Java 6)
Jetzt vergeben wir noch die Ausführungs-Rechte und starten zum ersten Mal den Server (hier noch nicht mit der start.sh Datei):
linux:~# chmod 770 -R /home/programme/minecraft_server
linux:~# screen -S minecraft java -Xms1024M -Xmx1024M -jar minecraft_server.ja
Wir erhalten folgende Nachricht (In neueren Version etwas anders):
gf3ae4c3-b733jnks (MC: 1.5_02)
09:38:05 [WARNING] Failed to load ban list: java.io.FileNotFoundException: banned-players.txt (No such file or directory)
09:38:05 [WARNING] Failed to load ip ban list: java.io.FileNotFoundException: banned-ips.txt (No such file or directory)
09:38:05 [WARNING] Failed to load ops: java.io.FileNotFoundException: ops.txt (No such file or directory)
09:38:05 [WARNING] Failed to load white-list: java.io.FileNotFoundException: white-list.txt (No such file or directory)
09:38:05 [INFO] Preparing level "world"
09:38:05 [INFO] Preparing start region
09:38:06 [INFO] Preparing spawn area: 4%
09:38:07 [INFO] Preparing spawn area: 12%
09:38:08 [INFO] Preparing spawn area: 24%
09:38:09 [INFO] Preparing spawn area: 36%
09:38:10 [INFO] Preparing spawn area: 44%
09:38:11 [INFO] Preparing spawn area: 56%
09:38:12 [INFO] Preparing spawn area: 65%
09:38:13 [INFO] Preparing spawn area: 73%
09:38:14 [INFO] Preparing spawn area: 81%
09:38:15 [INFO] Preparing spawn area: 89%
09:38:16 [INFO] Preparing spawn area: 97%
09:38:17 [INFO] Done (1.168s)! For help, type "help" or "?"
jetzt geben wir wiederstop
ein, damit der Prozess beendet wird.
Hier haben wir den Server mittels Screen gestartet. Vielleicht ist euch aufgefallen,
dass die Parameter -m -d gefehlt haben.
Dadurch hat sich der Server nicht im Hintergrund gestartet, sondern wir haben das Prozessfenster gesehen und konnten mit verfolgen, was unser Server gerade macht.
Beim Erststart erstellt der Server eine Welt und sämtliche Minecraft Dateien, die benötigt werden um Einstellungen vor zu nehmen.
Mit dem Command ls
listen wir auf, welche Dateien in unserem Ordner vorhanden sind.
Danach nehmen wir uns die Servereinstellungen vor.
linux:~# ls
Auflistung der Dateien:
banned-ips.json help.yml server.properties world bukkit.yml, und noch viele mehr...
linux:~# vi server.properties
Hier könnt ihr euren Server einstellen. Was die einzelnen Punkte bedeuten erfahrt ihr hier
Anschließend gebt ihr euch noch Adminrechte:
linux:~# vi ops.txt
(tragt hier euren Spielernamen ein)
Vermutlich hat euer Linux Server eine Firewall installiert.
Um auch auf den Server connecten zu können, muss noch der Port für Minecraft freigegeben werden.
In den Servereinstellungen kann man diesen Port setzen (Standard-Port: 25565).
Bei den meisten Linux Servern habt ihr ein Power Panel bei eurem Provider.
Bei Server4You oder einem VServer geht ihr im ControlPanel auf Firewall und erstellt eine neue Regel mit den Einstellungen TCP und dem Port 25565 (Standard Minecraft Port).
Zu guter letzt müssen wir noch die Rechte für den Benutzer programme vergeben, den Server mit diesem Benutzer starten
und können dann mit der Server-Ip Minecraft Client auf den Server connecten:
linux:~# chmod 777 -R /home/programme/minecraft_server
linux:~# chown programme:programme -R /home/programme/minecraft_server
Dann wechseln wir noch den Benutezr auf programme und starten den Server:
linux:~# su programme
linux:~# ./start.sh
Nun sind wir auch schon am Ende mit unserem Tutorial zum Thema Minecraft Bukkit Server unter Linux - Debian erstellen.
Habt ihr Fragen, Fehler oder Ergänzungen lasst es uns gerne wissen! Weiter unten findet ihr unser Feedback-System.
Nützliches
Um zu überprüfen ob der Server gestartet ist und auch funktioniert führt ihr folgenden Commandaus:
linux:~# screen -ls
There are screens on:
11370.minecraft_server (03.08.2014 22:37:04) (Detached)
1 Socket in /var/run/screen/S-root.
Mit diesem befehl listet ihr die aktuell laufenden Prozesse in screen auf. Vorsicht! Es werden immer nur die Screens angezeigt, die auch von diesem Benutzer gestartet wurden.
Startet ihr einen Screen Prozess mit dem Benutzer "programme" seht ihr diesen mit dem Benutzer "root" nicht.
Falls ihr den Screen Prozess aufrufen wollt - wie zuvor als ihr die ganzen Server Meldungen gesehen habt - müsst ihr den Befehl screen -r <name> eingeben:
linux:~# screen -r minecraft
oder
linux:~# screen -r 11370
(Die Nummer, die vor dem Screen Namen steht)
Mit diesem Befehl gelangt ihr in den aktuellen Prozess.
Wollt ihr diese Ansicht wieder beenden, müsst ihr folgende Tastenkombination drücken:
STRG + A + D
Wollt ihr den Server beenden, gebt einfach den Commandstop
ein
oder drücktSTRG + C
um den Prozess zu killen (Vorsicht nicht gespeicherte Inhalte gehen verloren)
Plugins
Momentan ist euer Server noch ziemlich ohne Features. Um das zu ändern gibt es sogenannte Plugins. Diese könnt ihr von Bukkit.org herunterladen:
Ihr geht auf die Homepage Bukkit.org - Plugins,
ladet euch die Plugins runter, die ihr möchtet und fügt sie einfach in den Plugins Ordner (in eurem Minecraft Ordner) ein
(z.B. mit FileZilla hochladen oder direkt im Verzeichnis mit wget herunterladen).
Habt ihr Plugins hinzugefügt müsst ihr euren Server neustarten.
Dann befindet sich in der Regel ein neuer Ordner im Plugins Ordner mit dem Plugin-Namen, wo ihr das Plugin einstellen könnt.
Wer es so noch nicht verstanden hat oder an einer bestimmten Stelle ncht mitgekommen ist, kann noch das ganze Tutorial zusammengefasst im folgenden Video-Turoial anschauen.
In dem 2. Video wird gegen Ende auch noch gezeigt, wie man Plugins hinzufügt!
Bekannte Fehlerquellen
Sehr oft haben User schon den fehler Screen is terminating genannt.
Hierfür gibt es mehrere Gründe:
- Der Server wurde mehrfach gestartet aber nie beendet (Mittels "screen -ls" prüfbar. Falls mehrere aktiv sind mit
screen -S <id> -X quit
beenden) - Dem Server wurde zu viel Arbeitsspeicher zugewiesen (Parameter -Xmx oder -Xms) obwohl der VServer gar nicht so viel zur Verfügung hat
- Es ist ein Fehler aufgetreten (server.log des Server nachsehen)
Videoanleitung
Commands/Codeschnipsel:
www.Bukkit.org
apt-get install openjdk-6-jre-headless
screen -S minecraft java -Xms512M -Xmx1024M -jar minecraft_server.ja
start.sh:
#!/bin/bash
cd /home/programme/minecraft_server/
screen -A -m -d -S minecraft_server java -Xms512M -Xmx1024M -jar minecraft_server.jar
stop.sh:
#!/bin/bash
screen -S minecraft_server -X quit
Falls bei euch irgentetwas nicht funktionieren sollte, schreibt mir unten im Gästebuch.
Sollte bei der Installation alles funktioniert haben, aber es stimmt etwas mit eurem Server nicht,
dann öffnet bitte die Datei server.log und postet hier die genaue Fehlermeldung.
Edit:
Hier noch ein erweitertes Start bzw. Stopscript, um den Server richtig herunter zu fahren.
Es werden vor dem Beenden alle Daten gespeichert und der Server wird freundlich herunterfährt:
Minecraft erweitertes Startscript
Anzahl Downloads:
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /var/www/html/include/function.php:187
Stack trace:
#0 /var/www/html/include/function.php(187): PDO->__construct('mysql:host=loca...', 'schweinbenz', 'sosatt8696')
#1 /var/www/html/content/tutorial/minecraft-server-linux.php(308): getCount('minecraft_start...')
#2 /var/www/html/include/class.page.php(11): require_once('/var/www/html/c...')
#3 /var/www/html/index.php(109): page->generateContent()
#4 {main}
thrown in /var/www/html/include/function.php on line 187