Brazil's biggest MU Online portal — since 2003
Tutorial Advanced Website

How to install WebEngine CMS for your MU Online server

Install and configure WebEngine CMS from scratch for your MU Online server site, connecting to the emulator's database securely and enabling essential modules like rankings, downloads, and account registration.

GA Gabriel · Updated on Jun 14, 2024 · ⏱ 18 min read
Quick answer

The site is the first thing a player sees before entering your MU Online server. It's where they create the account, check the ranking, download the client, and follow events. Building that site manually in plain PHP is possible, but laborious and risky from a security standpoint. WebEngine CMS solv

The site is the first thing a player sees before entering your MU Online server. It's where they create the account, check the ranking, download the client, and follow events. Building that site manually in plain PHP is possible, but laborious and risky from a security standpoint. WebEngine CMS solves this: it's a content management system made specifically for MU Online servers, already shipping with account registration, rankings, a user panel, a credits system, downloads, and direct integration with the emulator's database. This tutorial shows, at an advanced level, how to install WebEngine from scratch, connect it securely to the server's database, and get it production-ready.

Before starting, understand the overall design. WebEngine is a PHP application that reads and writes to the same tables the game emulator uses (the account, character, and warehouse tables). The game server traditionally runs on Windows with SQL Server; the site can run on the same Windows (via IIS or XAMPP) or on a separate Linux host, as long as it can reach the SQL Server over the network. All the installation work revolves around three axes: uploading the PHP files, making sure PHP can talk to SQL Server, and configuring the correct credentials and table names.

Prerequisites

Before touching any file, make sure you have everything below. Skipping this stage is the number-one reason for installations that "don't work."

  • A MU server already installed and with a working database on SQL Server. If you haven't reached that stage yet, start with the guide on how to create a MU Online server, which covers the base before the site.
  • A web server with PHP. It can be IIS or Apache (XAMPP/WAMP) on Windows, or Apache/Nginx on Linux. The required PHP version varies by version of WebEngine; recent builds require PHP 7.4 or 8.x.
  • A SQL Server driver extension for PHP (sqlsrv and pdo_sqlsrv on Windows, or pdo_dblib/FreeTDS on Linux). Without it the site won't connect to the database.
  • SQL Server credentials: ideally a dedicated low-privilege user, not sa.
  • FTP or filesystem access to upload the CMS files.
  • A domain or, for testing, access via IP/localhost.
ComponentRoleWhere it runs (example)
Game emulatorMU logic, GameServer/ConnectServerWindows VPS
SQL ServerDatabase of accounts, characters, itemsWindows VPS
PHP + WebEngineSite, registration, ranking, panelLinux host or the same Windows
sqlsrv/PDO driverBridge between PHP and SQL ServerAlongside PHP

> Warning: the table and column names mentioned below (MEMB_INFO, Character, AccountCharacter) are common examples from the Season 6 line. The real schema varies by emulator and by version. Always check the mapping in the CMS configuration panel.

Step 1: Download the correct WebEngine version

WebEngine is distributed as a package of PHP files. Always download the latest stable version from the project's official source, not from random repositories that may contain backdoors. An essential security practice in the MU scene: never use a "modified" CMS offered on a forum without auditing the code, as it's a classic shell-injection vector.

After downloading, unzip it into a local folder. You'll see a structure similar to this (varies by version):

webengine/
├── index.php
├── includes/
│   └── config/          # configuration files
├── modules/             # modules: rankings, downloads, etc.
├── themes/              # site themes
├── admincp/             # admin panel
└── install/             # installation wizard (delete afterward!)

Step 2: Prepare PHP and the SQL Server driver

This is the step that causes the most headaches. PHP, by default, does not talk to SQL Server. You need to install and enable the driver.

On Windows with PHP, download Microsoft's sqlsrv drivers compatible with your exact PHP version (compatibility varies by version: thread-safe vs non-thread-safe, x64 vs x86). Copy the .dll files into PHP's ext/ folder and add them to php.ini:

extension=php_sqlsrv_81_ts_x64.dll
extension=php_pdo_sqlsrv_81_ts_x64.dll

On Linux, the path is usually via pecl install sqlsrv pdo_sqlsrv with Microsoft's msodbcsql package, or using FreeTDS/pdo_dblib as an alternative. Restart the web server and validate with a temporary file:

<?php
// teste-driver.php — delete after use
phpinfo();
// Look for "sqlsrv" or "pdo_dblib" on the generated page.

Open teste-driver.php in the browser and confirm the driver appears. If it doesn't, PHP didn't load the extension and nothing else will work. Fix this before continuing.

Step 3: Create a low-privilege SQL user

Never connect the site with the sa user. If the site is compromised, the attacker inherits full control of the database. Create a dedicated user with permission only on the tables the site needs:

-- Run on SQL Server, adjusting the database name
USE [master];
CREATE LOGIN web_mu WITH PASSWORD = 'SenhaForteAqui#2024', CHECK_POLICY = ON;
GO
USE [MuOnline];  -- database name varies by emulator
CREATE USER web_mu FOR LOGIN web_mu;
-- Grant only read/write on the game tables
ALTER ROLE db_datareader ADD MEMBER web_mu;
ALTER ROLE db_datawriter ADD MEMBER web_mu;
GO

This way, even in the event of a breach, the damage is limited to reading/writing data, without being able to drop tables or create logins.

Step 4: Upload the files to the web server

Send the contents of the webengine/ folder to your web server's public directory (for example htdocs/, www/, or wwwroot/) via FTP or a direct copy. Make sure the write permissions are correct on the folders the CMS needs to write to (cache, uploads, config), typically something like 755 for folders and 644 for files on Linux. Avoid 777: it's a common and unnecessary security flaw.

Step 5: Run the installation wizard

With the files in place, go to http://yourdomain.com/install/ in the browser. The WebEngine wizard will guide you through stages (the exact flow varies by version):

  1. Requirements check — the installer checks the PHP version, extensions, and folder permissions. Fix any item flagged in red before proceeding.
  2. Database connection details — enter the SQL Server host/IP, port (1433 by default), database name, user (web_mu), and password.
  3. Table mapping — confirm the account and character table names of your emulator.
  4. Administrator creation — set the CMS panel admin user.
  5. Completion — the installer writes the configuration file.

Example of what the final config usually looks like (names vary by version):

<?php
// includes/config/config.database.php
$config_database_host   = '203.0.113.10';   // SQL Server IP
$config_database_port   = '1433';
$config_database_name   = 'MuOnline';
$config_database_user   = 'web_mu';
$config_database_pass   = 'SenhaForteAqui#2024';
$config_database_driver = 'sqlsrv';          // or dblib on Linux

Step 6: Delete the installation folder

This step is mandatory and often forgotten. The install/ folder allows the entire site to be reconfigured, including the database credentials. Leaving it accessible is handing your server over on a plate.

# On the server, after completing the installation
rm -rf /path/to/webengine/install/

If the CMS still detects the folder and refuses to work, that's exactly the security mechanism forcing you to remove it. Confirm the deletion.

Step 7: Configure essential modules

Log into the admin panel (/admincp/) with the admin user you created. From there, enable and configure the modules that bring the site to life:

  • Account registration — defines password rules, email verification, and bot protection. Registration security is critical; passwords must be stored hashed, never in plain text (WebEngine already handles this, but confirm in the options).
  • Rankings — top resets, PK, guilds. Configure caching so it doesn't hit the database on every access.
  • Downloads — game client links. Host on a CDN or your own storage.
  • Credits/donation system — optional; if you're going to charge, handle payments with prepared statements and validate every gateway callback.

Step 8: Adjust theme and SEO

Choose a theme in themes/ and activate it in the panel. Customize the logo, colors, and text. Configure the title, meta description, and friendly URLs so the site shows up well on Google. A clean, fast site converts far more visitors into players.

Common errors and fixes

SymptomLikely causeFix
Blank screen when opening the siteHidden fatal PHP error (missing driver, incompatible version)Enable display_errors or read the PHP error log; fix the sqlsrv extension
"Could not connect to database"Wrong credentials, port 1433 closed, SQL Server without TCP/IPTest the connection, open the firewall, enable TCP/IP in SQL Server Configuration Manager
Empty ranking even with playersWrong table/column names in the mappingAdjust the mapping to your emulator's schema
Registration creates account but game login failsPassword format mismatch between site and emulatorConfirm the hash algorithm the emulator expects; varies by version
Admin panel accessible by anyoneInstall folder not deleted / weak passwordDelete install/, change the admin password, restrict admincp by IP if possible
500 error when writing cacheInsufficient folder permissionsAdjust write permissions on the cache/upload folders (don't use 777)

Launch checklist

  • Game server and SQL Server working before the site
  • PHP at the version required by your WebEngine build
  • sqlsrv/PDO driver loaded and confirmed in phpinfo
  • Dedicated low-privilege SQL user created (not sa)
  • Port 1433 opened only to the site's IP
  • Files uploaded with correct permissions (no 777)
  • Installation wizard completed successfully
  • install/ folder deleted
  • Panel admin password strong and unique
  • Registration, ranking, and download modules tested
  • Registration validated: an account created on the site logs into the game
  • display_errors turned off in production
  • Database and site file backup scheduled

With WebEngine installed and hardened, you have a professional site that talks directly to the server, reduces manual work, and offers a reliable entry point for new players. The secret to success isn't just installing, but maintaining: apply security updates, monitor the logs, and review permissions periodically. A well-maintained site is as important as a well-balanced server.

Frequently asked questions

Is WebEngine CMS free?

The WebEngine CMS core is open source and free to use. There are paid plugins and themes created by the community, but the CMS core and the ranking, registration, and account modules cost nothing. You only pay for hosting and, if you want, for premium themes.

Which PHP version does WebEngine require?

It depends on the CMS version. Old builds ran on PHP 5.6, while more recent revisions require PHP 7.4 or 8.x with the sqlsrv or pdo_sqlsrv extension. Check your version's README, since the requirement varies by version and using incompatible PHP is the most common cause of a blank screen.

Do I need the database on the same server as the site?

No. The PHP site can sit on a Linux host and the emulator's SQL Server on a separate Windows VPS. You just open port 1433 only to the site's IP and use a low-privilege SQL user. Keeping web and database separate is actually more secure.

Why does a blank screen appear after uploading the files?

A blank screen is almost always a hidden fatal PHP error. The most common causes are a missing sqlsrv extension, an incompatible PHP version, or wrong credentials in the config. Enable display_errors temporarily or read the PHP error log to see the real message before anything else.

Does WebEngine work with any MU emulator?

It was designed for the line of emulators based on SQL Server (Season 6 and derivatives, as the community standard). The expected account and character table structure varies by emulator, so adjust the table and column names in the CMS configuration panel to match your server.

GA
Guides & builds editor

Gabriel covers gameplay, class builds, PvP and progression. He tests every strategy on a live server before publishing.

Keep reading

Related articles