StendhalLocalhostServerOnLinux: Difference between revisions
imported>Ufizavipupu No edit summary |
imported>Kribbel m link for skipping |
||
| (70 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Stendhal Top|Building & Hosting}} |
|||
---- |
|||
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> |
|||
---- |
|||
=[http://osobageqys.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]= |
|||
---- |
|||
=[http://osobageqys.co.cc CLICK HERE]= |
|||
---- |
|||
</div> |
|||
This guide applies to: |
This guide applies to: |
||
*Marauroa |
*Marauroa 3.0 and above |
||
*Stendhal 0. |
*Stendhal 0.95 and above |
||
<br> |
|||
<br> |
|||
= Setting up a localhost server = |
= Setting up a localhost server = |
||
This guide will teach you how to set up a server on your Linux machine |
This guide will teach you how to set up a server on your Linux machine. The required packages are: |
||
*A compiled version of the Stendhal Server, version {{version}} |
*A compiled version of the Stendhal Server, version {{version}} |
||
*GNU/Linux ''(This may be others, the directions should apply almost exactly to any *nix system)'' |
*GNU/Linux ''(This may be others, the directions should apply almost exactly to any *nix system)'' |
||
*Command-line access ''(ask system administrator if it's a problem)'' |
*Command-line access ''(ask system administrator if it's a problem)'' |
||
For '''easy''' H2 database configuration (which is shipped with Stendhal and is installation-free) just skip straight to '''[[StendhalLocalhostServerOnLinux#Choosing_the_Java_Virtual_Machine|Choosing the Java Virtual Machine]]'''. |
|||
'''Optionally''': |
|||
*MySQL ''sudo apt-get install mysql-server'' |
|||
Otherwise you can just use the H2 database which is shipped with Stendhal and is installation-free. |
|||
For '''advanced''' MySQL configuration, keep reading. |
|||
== Getting the materials == |
|||
Download a current version of the Stendhal server, stendhal-server-{{version}}.zip from [http://arianne.sourceforge.net/?arianne_url=games/game_stendhal#downloadsection arianne.sf.net]. |
|||
== Setting up MySQL == |
|||
If you want to compile it yourself from CVS or the source code provided at the downloads link, then see [[HowToBuildStendhal|How to build Stendhal]] for more info. If you run a Linux System, then you have the necessary tools to get everything else. |
|||
Install MySQL: |
|||
Stendhal works with OpenJDK or Sun Java, you will need Java 5 or greater. |
|||
sudo apt-get install mysql-server |
|||
For Sun Java: Use your Package manager to download '''OpenJDK 6''' or Sun Java 1.5 or greater version. At a command line, type |
|||
java -version |
|||
and if you see anything other than the new java you just installed, then you need to update the java used. At a command line, type |
|||
update-java-alternatives --list |
|||
(using sudo if you are an ubuntu user, or as root if you are another linux user) which should give you output something like this: |
|||
Also download the java connector library if necessary (it's called ''MySQL Connector/J'' ), and make sure a symbolic/soft link to it named ''mysql-connector.jar'' is on the classpath (e.g. in the directory called ''libs'' inside the ''stendhal_server'' directory) when running ''maraurorad'' later. |
|||
*java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun |
|||
*java-gcj 1042 /usr/lib/jvm/java-gcj |
|||
*java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk |
|||
For example: |
|||
now, lets say you want to use the java-6-openjdk. Then you type |
|||
update-java-alternatives --set java-6-openjdk |
|||
Now run ''java --version'' again to check it worked. |
|||
ln -s /path/to/file-name/mysql-connector-java-5.1.10.jar mysql-connector.jar |
|||
= Setting up MySQL = |
|||
'''You can skip this whole step if you want the fast installation with an H2 database: Go to Makin' the cake''' |
|||
After you've installed MySQL, make sure you have a database ready for it. |
After you've installed MySQL, make sure you have a database ready for it. |
||
| Line 49: | Line 31: | ||
mysql -u NAME -p |
mysql -u NAME -p |
||
if you need a password for your server (by default, you don't). |
if you need a password for your server (by default, you don't). |
||
If you don't need a password, omit the |
If you don't need a password, omit the "-u NAME -p" part. |
||
At the prompt that appears, type |
At the prompt that appears, type |
||
create database marauroa; |
create database marauroa; |
||
grant all on marauroa.* to 'FOO'@'localhost' identified by 'BAR'; |
grant all on marauroa.* to 'FOO'@'localhost' identified by 'BAR'; |
||
FOO and BAR are the username and password to be used by Marauroa, respectively. Replace them with whatever you want. If the user doesn't exist, it will be created. Remember these values (FOO and BAR)! |
'''FOO and BAR are the username and password to be used by Marauroa''', respectively. Replace them with whatever you want. If the user doesn't exist, it will be created. '''Remember these values (FOO and BAR)!''' |
||
If you get a problem like: |
If you get a problem like: |
||
ERROR 1044 (42000): Access denied for user 'FOO'@'localhost' to database 'marauroa' |
ERROR 1044 (42000): Access denied for user 'FOO'@'localhost' to database 'marauroa' |
||
| Line 60: | Line 42: | ||
again |
again |
||
'''Note''': It is recommended to edit the MySQL configuration file to disallow external access if you are just going to use it for local testing, or simply use a firewall to block external access to the database. |
|||
= Makin' the cake = |
|||
== Choosing the Java Virtual Machine == |
|||
Stendhal works with OpenJDK or Oracle Java, you will need Java 7 or greater. |
|||
For Sun Java: Use your Package manager to download '''OpenJDK 7''' or Oracle Java 7 or greater version. At a command line, type |
|||
java -version |
|||
and if you see anything other than the new java you just installed, then you need to update the java used. At a command line, type |
|||
update-java-alternatives --list |
|||
(using sudo if you are an ubuntu user, or as root if you are another linux user) which should give you output something like this: |
|||
*''java-1.7.0-oracle 53 /usr/lib/jvm/java-1.7.0-oracle'' |
|||
*''java-gcj 1042 /usr/lib/jvm/java-gcj'' |
|||
*''java-7-openjdk 1061 /usr/lib/jvm/java-7-openjdk'' |
|||
now, lets say you want to use the ''java-7-openjdk''. Then you type |
|||
update-java-alternatives --set java-7-openjdk |
|||
Now run |
|||
java -version |
|||
again to check it worked. |
|||
== Get the materials == |
|||
Download a current version of the Stendhal server, ''stendhal-server-{{version}}.zip'' from [http://arianne.sourceforge.net/?arianne_url=games/game_stendhal#downloadsection arianne.sf.net]. |
|||
If you want to compile it yourself from CVS or the source code provided at the downloads link, then see [[HowToBuildStendhal|How to build Stendhal]] for more info. If you run a Linux System, then you have the necessary tools to get everything else. |
|||
== Create the server directory == |
== Create the server directory == |
||
| Line 66: | Line 72: | ||
cd |
cd |
||
mkdir stendhal_server |
mkdir stendhal_server |
||
This will create a directory called |
This will create a directory called "stendhal_server" in your home directory. See how easy that was? And how easy to tell what will be in that directory? That's the beauty of organization. |
||
== Stendhal server files == |
== Stendhal server files == |
||
Unzip the stendhal server zip which you downloaded, into the stendhal_server directory. |
Unzip the stendhal server zip which you downloaded, into the stendhal_server directory. |
||
Now check you have the following files in the stendhal_server directory: |
|||
*stendhal-server-{{version}}.jar |
|||
*stendhal-xmlconf-{{version}}.jar |
|||
*stendhal-maps-{{version}}.jar |
|||
*groovy.jar |
|||
*simple.jar |
|||
*marauroa.jar |
|||
*log4j.jar |
|||
*log4j.properties |
|||
*jython.jar |
|||
*mysql-connector.jar ''optional'' |
|||
*commons-lang.jar |
|||
... or in a directory called ''lib'' or ''libs'' inside the stendhal_server directory. If any are in ''lib'' or ''libs'' please move them up into the main stendhal_server directory. |
|||
<small>If any of the latter jars are missing you can fetch them here: http://arianne.cvs.sourceforge.net/arianne/stendhal/libs/</small> |
|||
Done! |
Done! |
||
== |
== Run the server == |
||
The first time you run the server a configuration file for the server (named ''server.ini'') will be generated. |
|||
Time to configure Marauroa and the database access. In the command-line (not in GUI!), run: |
|||
java -cp stendhal-server-{{version}}.jar games.stendhal.server.core.engine.GenerateINI |
|||
There is a script ''runserver.sh'' in the stendhal_server directory - you may need to make it executable first. |
|||
So |
|||
cd /path/to/stendhal_server |
|||
To make it executable, in a command prompt type |
|||
chmod u+x runserver.sh |
|||
To start it from a command prompt, type |
|||
./runserver.sh |
|||
Now, it will ask you questions. |
Now, it will ask you questions. |
||
===H2=== |
=== H2 database === |
||
For the '''fast''' installation |
For the '''fast''' installation |
||
* hit ''Enter'' to accept the defaults, that you want '''H2''' database |
* hit ''Enter'' to accept the defaults, that you want '''H2''' database |
||
| Line 101: | Line 97: | ||
server.ini has been generated |
server.ini has been generated |
||
'''Warning:''' Any value for the RSA key generation small than 512 may cause the server not to work properly and refuse the client connections. |
|||
===MySQL=== |
|||
=== MySQL database === |
|||
If you want to use MySQL then see below for more details: |
If you want to use MySQL then see below for more details: |
||
When it asks you for... |
When it asks you for... |
||
| Line 107: | Line 105: | ||
*database name, hit enter to use the default (marauroa) |
*database name, hit enter to use the default (marauroa) |
||
*host, hit enter to use the default (localhost) |
*host, hit enter to use the default (localhost) |
||
*user, write the username you used in giving MySQL permissions (FOO) |
*user, '''write the username you used in giving MySQL permissions (FOO)''' |
||
*password, write the password you used giving MySQL permissions (BAR) |
*password, '''write the password you used giving MySQL permissions (BAR)''' |
||
*RSA key size- This is to make sure that the login information is valid and secure. |
|||
*port, anything above 1024. 32160 is the default for stendhal, but it can be anything above 1024 |
|||
'''Warning:''' Any value for the RSA key generation smaller than 512 may cause the server not to work properly and refuse the client connections. |
|||
*game, type "stendhal" (or a number for that, if a multiple-choice menu appears) |
|||
*turn time, or how long the server takes to process each event, choose anything above 200, but below 1000. This is in milliseconds. default is 300 |
|||
*log and stats generation logs, use the default ("./") - it's in the same directory as everything else |
|||
*RSA key size, choose anything smaller than 1024 bits, but greater than 512 (or equal to). This is to make sure that the login information is valid and secure. Like the prompt says, anything greater than 1024 can take a LONG time. But, if you have ~30 minutes to spare (more or less, depending on your comp), you could use the extra security |
|||
Download a recent mysql-connector.jar from the [https://dev.mysql.com/downloads/connector/j/ MySQL site]. |
|||
Well, thats everything! When it's finished, you'll have a new file, "server.ini". Don't lose it, as it contains the information to get your server up & running, as well as the key to do that. If Marauroa won't start, and nor will your server, check to see if that INI file is there (at the same directory! NOWHERE ELSE!) and if it is, try running the GenerateINI command again; the file could have change with updating the RSA keys |
|||
Well, thats everything! When it's finished, you'll have a new file, "server.ini". Don't lose it, as it contains the information to get your server up & running, as well as the key to do that. If Marauroa won't start, and nor will your server, check to see if that INI file is there (at the same directory! NOWHERE ELSE!) and if it is not, try running the runserver.sh script again; the file could have changed when updating the RSA keys |
|||
== Starting Server == |
|||
To start the stendhal server you can just type |
|||
java -jar stendhal-server-{{version}}.jar |
|||
== Stopping the Server == |
|||
Or, there is a script runserver.sh in the stendhal_server directory - you may need to make it executable first. |
|||
In the server window just type '''CTRL+c''' |
|||
So |
|||
cd /path/to/stendhal_server |
|||
== Starting the Server again == |
|||
To make it executable, in a command prompt type |
|||
To start the stendhal server again you can just type from a command prompt: |
|||
chmod u+x runserver.sh |
|||
To start it from a command prompt, type |
|||
./runserver.sh |
./runserver.sh |
||
'''Note:''' Remember that the server configuration file (''server.ini'') is only generated the first time you run the server unless you delete it. |
|||
== Have fun == |
== Have fun == |
||
| Line 133: | Line 127: | ||
= Extras = |
= Extras = |
||
This is the extras section! Here you have trouble shooting, and hints & |
This is the extras section! Here you have trouble shooting, and hints & tips |
||
== Troubleshooting == |
== Troubleshooting == |
||
In general please see [[StendhalServerTroubleShooting]]. |
In general please see [[StendhalServerTroubleShooting]]. |
||
| Line 139: | Line 133: | ||
=== Class not found exceptions === |
=== Class not found exceptions === |
||
For example: |
For example: |
||
<pre> |
|||
Exception in thread |
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger |
||
</pre> |
|||
''<span style="color:red;">DEPRECATED:</span> "log4j.jar" is now intended to be located in "libs" directory'' |
|||
Please open runserver.sh in a text editor. You'll see the classpath defined there, something like |
Please open runserver.sh in a text editor. You'll see the classpath defined there, something like |
||
LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar |
LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar |
||
| Line 147: | Line 144: | ||
In this case the user had his log4j.jar in the folder called ''libs'' but the classpath expects it to be in the main folder where runserver.sh ran from. So you can: edit the classpath, replacing ''log4j.jar'' above with ''libs/log4j.jar'' '''or''' move the file. |
In this case the user had his log4j.jar in the folder called ''libs'' but the classpath expects it to be in the main folder where runserver.sh ran from. So you can: edit the classpath, replacing ''log4j.jar'' above with ''libs/log4j.jar'' '''or''' move the file. |
||
=== MySQL === |
=== MySQL possible error === |
||
If when you try to run the server later, you get this error in the log: |
If when you try to run the server later, you get this error in the log: |
||
| Line 156: | Line 153: | ||
ps xa | grep mysqld |
ps xa | grep mysqld |
||
If it shows that mysqld is running with the option |
If it shows that mysqld is running with the option "--skip-networking" then comment it out in the "my.cnf" file (It has been reported that the line to comment out is actually: SKIP="--skip-networking", found at: /etc/rc.d/rc.mysqld ). |
||
If you have already commented it out then perhaps you have previously started the server with: |
If you have already commented it out then perhaps you have previously started the server with: |
||
| Line 164: | Line 161: | ||
Stop the server and then restart with: |
Stop the server and then restart with: |
||
mysqld_safe & |
mysqld_safe & |
||
Check with: |
Check with: |
||
| Line 170: | Line 167: | ||
ps xa | grep mysqld |
ps xa | grep mysqld |
||
that no |
that no "--skip-networking" is present. |
||
Then run the stendhal server again. |
Then run the stendhal server again. |
||
Latest revision as of 13:30, 25 January 2024
This guide applies to:
- Marauroa 3.0 and above
- Stendhal 0.95 and above
Setting up a localhost server
This guide will teach you how to set up a server on your Linux machine. The required packages are:
- A compiled version of the Stendhal Server, version 1.48
- GNU/Linux (This may be others, the directions should apply almost exactly to any *nix system)
- Command-line access (ask system administrator if it's a problem)
For easy H2 database configuration (which is shipped with Stendhal and is installation-free) just skip straight to Choosing the Java Virtual Machine.
For advanced MySQL configuration, keep reading.
Setting up MySQL
Install MySQL:
sudo apt-get install mysql-server
Also download the java connector library if necessary (it's called MySQL Connector/J ), and make sure a symbolic/soft link to it named mysql-connector.jar is on the classpath (e.g. in the directory called libs inside the stendhal_server directory) when running maraurorad later.
For example:
ln -s /path/to/file-name/mysql-connector-java-5.1.10.jar mysql-connector.jar
After you've installed MySQL, make sure you have a database ready for it. At a command line, type
mysql -u NAME -p
if you need a password for your server (by default, you don't). If you don't need a password, omit the "-u NAME -p" part. At the prompt that appears, type
create database marauroa; grant all on marauroa.* to 'FOO'@'localhost' identified by 'BAR';
FOO and BAR are the username and password to be used by Marauroa, respectively. Replace them with whatever you want. If the user doesn't exist, it will be created. Remember these values (FOO and BAR)! If you get a problem like:
ERROR 1044 (42000): Access denied for user 'FOO'@'localhost' to database 'marauroa'
then you need to login to mysql as the root mysql user, who should have 'grant' access. As root you can then try
grant all on marauroa.* to 'FOO'@'localhost' identified by 'BAR';
again
Note: It is recommended to edit the MySQL configuration file to disallow external access if you are just going to use it for local testing, or simply use a firewall to block external access to the database.
Choosing the Java Virtual Machine
Stendhal works with OpenJDK or Oracle Java, you will need Java 7 or greater.
For Sun Java: Use your Package manager to download OpenJDK 7 or Oracle Java 7 or greater version. At a command line, type
java -version
and if you see anything other than the new java you just installed, then you need to update the java used. At a command line, type
update-java-alternatives --list
(using sudo if you are an ubuntu user, or as root if you are another linux user) which should give you output something like this:
- java-1.7.0-oracle 53 /usr/lib/jvm/java-1.7.0-oracle
- java-gcj 1042 /usr/lib/jvm/java-gcj
- java-7-openjdk 1061 /usr/lib/jvm/java-7-openjdk
now, lets say you want to use the java-7-openjdk. Then you type
update-java-alternatives --set java-7-openjdk
Now run
java -version
again to check it worked.
Get the materials
Download a current version of the Stendhal server, stendhal-server-1.48.zip from arianne.sf.net.
If you want to compile it yourself from CVS or the source code provided at the downloads link, then see How to build Stendhal for more info. If you run a Linux System, then you have the necessary tools to get everything else.
Create the server directory
Let's create your folder to run the server from, in your home directory. NOTE: The commands given are for use in the command-line, but you can take the GUI route as well. For some commands, you must run them from the command-line, and I will tell you
cd mkdir stendhal_server
This will create a directory called "stendhal_server" in your home directory. See how easy that was? And how easy to tell what will be in that directory? That's the beauty of organization.
Stendhal server files
Unzip the stendhal server zip which you downloaded, into the stendhal_server directory. Done!
Run the server
The first time you run the server a configuration file for the server (named server.ini) will be generated.
There is a script runserver.sh in the stendhal_server directory - you may need to make it executable first. So
cd /path/to/stendhal_server
To make it executable, in a command prompt type
chmod u+x runserver.sh
To start it from a command prompt, type
./runserver.sh
Now, it will ask you questions.
H2 database
For the fast installation
- hit Enter to accept the defaults, that you want H2 database
- hit Enter so that to build the key, and wait for it to say:
server.ini has been generated
Warning: Any value for the RSA key generation small than 512 may cause the server not to work properly and refuse the client connections.
MySQL database
If you want to use MySQL then see below for more details: When it asks you for...
- Which database system do you want to use? write mysql (mysql)
- database name, hit enter to use the default (marauroa)
- host, hit enter to use the default (localhost)
- user, write the username you used in giving MySQL permissions (FOO)
- password, write the password you used giving MySQL permissions (BAR)
- RSA key size- This is to make sure that the login information is valid and secure.
Warning: Any value for the RSA key generation smaller than 512 may cause the server not to work properly and refuse the client connections.
Download a recent mysql-connector.jar from the MySQL site.
Well, thats everything! When it's finished, you'll have a new file, "server.ini". Don't lose it, as it contains the information to get your server up & running, as well as the key to do that. If Marauroa won't start, and nor will your server, check to see if that INI file is there (at the same directory! NOWHERE ELSE!) and if it is not, try running the runserver.sh script again; the file could have changed when updating the RSA keys
Stopping the Server
In the server window just type CTRL+c
Starting the Server again
To start the stendhal server again you can just type from a command prompt:
./runserver.sh
Note: Remember that the server configuration file (server.ini) is only generated the first time you run the server unless you delete it.
Have fun
Well, that's it! Remember, when you use a client to connect you will need to create a new account and at server name localhost.
Extras
This is the extras section! Here you have trouble shooting, and hints & tips
Troubleshooting
In general please see StendhalServerTroubleShooting.
Class not found exceptions
For example:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
DEPRECATED: "log4j.jar" is now intended to be located in "libs" directory
Please open runserver.sh in a text editor. You'll see the classpath defined there, something like
LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar
In this case the user had his log4j.jar in the folder called libs but the classpath expects it to be in the main folder where runserver.sh ran from. So you can: edit the classpath, replacing log4j.jar above with libs/log4j.jar or move the file.
MySQL possible error
If when you try to run the server later, you get this error in the log:
Caused by: java.net.ConnectException: Connection refused
Type:
ps xa | grep mysqld
If it shows that mysqld is running with the option "--skip-networking" then comment it out in the "my.cnf" file (It has been reported that the line to comment out is actually: SKIP="--skip-networking", found at: /etc/rc.d/rc.mysqld ).
If you have already commented it out then perhaps you have previously started the server with:
#/etc/rc.d/rc.mysqld start
Stop the server and then restart with:
mysqld_safe &
Check with:
ps xa | grep mysqld
that no "--skip-networking" is present.
Then run the stendhal server again.
(Many thanks to Tam Tam. Original source: http://forums.mysql.com/read.php?39,24742,147169#msg-147169 )
Server bonuses
You are the man!
Want to be an admin? Now you can! It's easy! Go to the directory where you extracted stendhal-server-1.48.zip, and browse to data/conf. Edit admins.txt there, with each admin name on a separate line. The name must be EXACT, or it will not work. The server needs '.' on the classpath, which is already done if you are using runserver.sh.
Finished
Well, that's it. You're done. Finito. Fi. Whatever. You now have your own localhost server! No one can access yet; sign up for a free dynamic dns service at www.dyndns.com and connect a server they host to your IP. Then, all people have to do is go to whatever you set as your domain name with DynDNS. Party time!