Code:
****NOTE: Sphere is 32bit so you must install on a 32bit or a multi-lib system.
1) As root, create a sphere user:
useradd sphere
(Answer the questions)
chmod 700 /home/sphere
2) Log in as user sphere create these directories:
mkdir -p spheresvr/accounts
mkdir -p spheresvr/logs
mkdir -p spheresvr/muls
mkdir -p spheresvr/save
mkdir -p spheresvr/scripts
3) Download and uncompress the sphere server files and move them into the correct directories:
wget http://prerelease.sphere.torfo.org/build56/SphereServer-0.56c-201604102807-Linux.tgz
tar -xvf SphereServer-0.56c-201604102807-Linux.tgz -C spheresvr/
rm SphereServer-0.56c-201604102807-Linux.tgz (OPTIONAL)
mv spheresvr/src/Sphere.ini spheresvr/sphere.ini
mv spheresvr/src/sphereCrypt.ini spheresvr/sphereCrypt.ini
mv spheresvr/src/sphere.dic spheresvr/sphere.dic
4) Download and uncompress the scripts into the spheresrv/scripts directory:
wget http://prerelease.sphere.torfo.org/build56/SphereServer-0.56c-201604102807-Scripts.zip
unzip SphereServer-0.56c-201604102807-Scripts.zip
mv Scripts-master/* spheresvr/scripts/
rm -rf Scripts-master
rm SphereServer-0.56c-201604102807-Scripts.zip (OPTIONAL)
5) Fix file permissions:
find ./spheresvr -type d | xargs chmod 0700
find ./spheresvr -type f | xargs chmod 0600
chmod 700 ./spheresvr/spheresvr
chmod 4700 ./spheresvr
6) Change into the spheresvr directory and continue:
cd spheresvr
7) Check for library dependencies:
ldd spheresvr
See below- "ERROR: Missing libs"
8) Fix the broken windows naming convention:
ln -s sphere.ini sphere.INI
9) Edit sphere.ini:
vi sphere.ini
In the [SPHERE] section add:
AGREE=1
CHANGE THE FOLLOWING TO WHATEVER IS CORRECT for you:
ServName=MyAwesomeShard
OPTIONAL:
AdminEmail=me@MyAwesomeSphereServer.com
URL=www.MyAwesomeSphereServer.com
TimeZone=-4
CHANGE THE FOLLOWING TO:
FROM: //MulFiles=mul/ TO: MulFiles=muls/ (You're on linux, it won't auto-detect correctly)
FROM: AccApp=0 TO: AccApp=2 (This allows you to create your first account by just logging in)
FROM: UseNoCrypt=0 TO: UseNoCrypt=1` (This stops the OSI encryption headaches)
(at the very end of the ini:)
FROM: [SERVERS] TO: [SERVERS]
MyShard MyAwesomeShard
10) Copy the UO data files from your client. Copy the files from your windows client and put them in the spheresvr/muls folder.
For Old installations (client less than 7.0.20) this need: map0.mul, statics0.mul, staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul.
Optional files: verdata.mul, mapX.mul, staticsX.mul, staidxX.mul for higher maps support (Malas, etc).
For newer installs (client 7.0.20 and higher) this need the same files in .uop format
11) Create blank save and accounts files.
NOTE: The save files HAVE TO HAVE "[EOF]" in them.
echo "[EOF]" > save/sphereworld.scp
echo "[EOF]" > save/spheredata.scp
echo "[EOF]" > save/spherechars.scp
echo "[EOF]" > save/spheremultis.scp
echo "[EOF]" > save/spherestatics.scp
touch accounts/sphereaccu.scp
12) Start the server
./spheresrv
NOTE: To stop the server:
shutdown 1 (This will shutdown the server after 1 minute, when you hit enter, no message will appear in your console but will appear in the game clients connected).
You should now have a BLANK world, fire off your client with RAZOR and walk around. You will need to add all spawns and mobiles.
==================================================================
ERROR:
Missing libs
FIX:
As root run "locate LIB_NAME" (e.g. locate libstdc++.so.6 )
Install missing libs.
HINTS:
libmysqlclient is part of MySQL, grab your distro's package and install. You don't need to setup MySQL, you just need to have the package installed for the lib.
libboost is part of Boost C++ (http://www.boost.org/). Your distro probably has a package for it.
libstdc++.so.6 - My machine had libstdc++.so.6.0.18 installed but sphere could not detect it so, I made a symbolic link to it and it worked fine.
ln -s /usr/lib/libstdc++.so.6.0.18 /usr/lib/libstdc++.so.6
--------------------
ERROR:
FATAL:The sphere.INI file is corrupt or missing
FATAL:MUL File 'multi.idx' not found...
FATAL:Server terminated by error -3!
FIX 1:
ln -s sphere.ini sphere.INI
FIX 2:
1) vi sphere.ini
Change line:
\\MulFiles=mul/
To:
MulFiles=muls/
2) copy map0.mul, statics0.mul, staidx0.mul, multi.mul, multi.idx, hues.mul, tiledata.mul from your client into muls/
Optional files: verdata.mul, mapX.mul/staticsX.mul/staidxX.mul for higher maps support (Malas, etc).
--------------------
ERROR:
ERROR:Can't Load save/sphereworld
FATAL:No previous backup available ?
FATAL:Server terminated by error -8!
FIX:
You will need to create a folder called save.
Inside this folder you will need to create and save 5 files
echo "[EOF]" > save/sphereworld.scp
echo "[EOF]" > save/spheredata.scp
echo "[EOF]" > save/spherechars.scp
echo "[EOF]" > save/spheremultis.scp
echo "[EOF]" > save/spherestatics.scp
Each of these files should be empty except for the text [eof]
These files MUST be saved as a .scp file in order to work, if saved as .txt you will receive errors from sphere saying that they were not found.
--------------------
ERROR:
16:30:1:ERR Login NO Account 'joebob'
16:30:WARNING:1:Bad Login 0 (Account does not exist)
16:30:1:Client disconnected [Total:0] ('192.168.1.11')
FIX 1:
Next you will need to create a folder called accounts and inside this folder you will need to create and save a file called sphereaccu.scp.
mkdir accounts
touch accounts/sphereaccu.scp
The same rules apply as to the files you previously created, though this one does not require the [eof] text.
FIX 2:
Edit sphere.ini and change:
//Code for servers account application process
// 0=Closed, // Closed. Not accepting more.
// 2=Free, // Anyone can just log in and create a full account.
// 3=GuestAuto, // You get to be a guest and are automatically sent email with u're new password.
// 4=GuestTrial, // You get to be a guest til u're accepted for full by an Admin.
// 6=Unspecified, // Not specified.
// To enable auto account you must set this to 2
AccApp=2
--------------------
ERROR:
WARNING:1:Bad Login 13 (Unencrypted client not permitted. See the USENOCRYPT setting in sphere.ini)
FIX:
Edit sphere.ini and set:
// Set this to 1 to allow login to unencrypted clients
UseNoCrypt=1
--------------------
ERROR:
16:31:FATAL:Secure Mode prevents CTRL+C
FIX 1:
From the blank CLI, run "shutdown 1". This will cause the server to shutdown in 1 minute.
FIX 2:
Edit sphere.ini and change the following line to:
// Secure mode attempts to ignore errors, protect from accidently shutdowns
Secure=0