A modern Ultima Online server written in PHP
UltimaPHP is a modern Ultima Online server written in PHP 7.0.
This server was created for those who ever wanted to create different adaptations on the core of your shard.
I decided to build this project for study propose I've re-scripted the entire socket server to understand how it works and after that i decided to create a lightweight standalone version of the server that runs in any OS easily.
Note: The server only works with the last updated Ultima Online client (7.0.74.28) and we will not spend time with older clients for now.
First of all, you will need to install PHP 7.0 or greater and MongoDB 3.4+, I recommend you to use PHP 7.1 it's ultra-fast and lightweight, for that:
After installing PHP and MongoDB on the machine, edit the file ultimaphp.ini
as you wish, create a MongoDB database named "ultimaphp" (or anyone, just need to change at the ultimaphp.ini) and create/import all collections from tools/Mongo Database/*.json
(file name is the collection name) and follow the next steps to start the server:
Note 1: You can use some program to visualize and work with MongoDB like: RoboMongo or MongoChef
Note 2: The default owner account/password in the database is: test/test
Note 3: The default player account/password in the database is: test2/test
Note 4: Passwords is always stored in MD5 encryption both in the database and in server variables
Note 5: UltimaPHP only works (till now) with no-encrypted clients.
php7.0 startserver.php
cmd
then runcd c:\php\installation\folder\
php.exe c:\ultimaphp\instalation\folder\startserver.php
./configure --prefix=/usr --with-config-file-path=/etc --enable-sockets --enable-bcmath --enable-mbstring --enable-zip --enable-pcntl --enable-ftp --enable-exif --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-mcrypt --with-iconv --with-zlib-dir=/usr --with-xpm-dir=/usr --with-openssl --with-gettext=/usr --with-zlib=/usr --with-bz2=/usr
make
make install
Feel free to join us and help this project grow in whatever you can! We always like to hear new ideas and feedbacks, so why don't you create an issue to tell us what can you do to help us grow?
<?php
and end without ?>