Cómo instalar WebEngine CMS para tu servidor de MU Online
Instala y configura WebEngine CMS desde cero para el sitio de tu servidor de MU Online, conectándolo a la base del emulador con seguridad y activando módulos esenciales como rankings, descargas y registro de cuenta.
El sitio es lo primero que ve un jugador antes de entrar a tu servidor de MU Online. Es por él que se crea la cuenta, se consulta el ranking, se descarga el cliente y se siguen los eventos. Armar ese sitio manualmente en PHP puro es posible, pero laborioso y arriesgado desde el punto de vista de la
El sitio es lo primero que ve un jugador antes de entrar a tu servidor de MU Online. Es por él que se crea la cuenta, se consulta el ranking, se descarga el cliente y se siguen los eventos. Armar ese sitio manualmente en PHP puro es posible, pero laborioso y arriesgado desde el punto de vista de la seguridad. WebEngine CMS resuelve eso: es un sistema de gestión de contenido hecho específicamente para servidores de MU Online, que ya trae registro de cuenta, rankings, panel de usuario, sistema de créditos, descargas e integración directa con la base del emulador. Este tutorial muestra, a nivel avanzado, cómo instalar WebEngine desde cero, conectarlo con seguridad a la base del servidor y dejarlo listo para producción.
Antes de empezar, entiende el diseño del asunto. WebEngine es una aplicación PHP que lee y escribe en las mismas tablas que usa el emulador del juego (las tablas de cuenta, personaje, warehouse). El servidor de juego tradicionalmente corre en Windows con SQL Server; el sitio puede correr en el mismo Windows (vía IIS o XAMPP) o en un hosting Linux separado, siempre que logre alcanzar el SQL Server por la red. Todo el trabajo de instalación gira en torno a tres ejes: subir los archivos PHP, garantizar que PHP logre hablar con SQL Server, y configurar las credenciales y nombres de tabla correctos.
Requisitos previos
Antes de tocar cualquier archivo, asegúrate de tener todo lo de abajo. Saltarse esta etapa es el motivo número uno de instalaciones que "no funcionan".
- Servidor de MU ya instalado y con la base funcionando en SQL Server. Si todavía no llegaste a esa fase, empieza por la guía de cómo crear un servidor de MU Online, que cubre la base antes del sitio.
- Servidor web con PHP. Puede ser IIS o Apache (XAMPP/WAMP) en Windows, o Apache/Nginx en Linux. La versión de PHP exigida varía según la versión de WebEngine; las builds recientes piden PHP 7.4 u 8.x.
- Extensión de driver SQL Server para PHP (
sqlsrvypdo_sqlsrven Windows, opdo_dblib/FreeTDSen Linux). Sin eso el sitio no se conecta a la base. - Credenciales del SQL Server: idealmente un usuario dedicado de bajo privilegio, no el
sa. - Acceso FTP o al sistema de archivos para subir los archivos del CMS.
- Un dominio o, para pruebas, acceso vía IP/localhost.
| Componente | Rol | Dónde corre (ejemplo) |
|---|---|---|
| Emulador del juego | Lógica de MU, GameServer/ConnectServer | VPS Windows |
| SQL Server | Base de cuentas, personajes, ítems | VPS Windows |
| PHP + WebEngine | Sitio, registro, ranking, panel | Hosting Linux o el mismo Windows |
| Driver sqlsrv/PDO | Puente entre PHP y SQL Server | Junto con PHP |
> Aviso: los nombres de tabla y columna citados más adelante (MEMB_INFO, Character, AccountCharacter) son ejemplos comunes de la línea Season 6. El esquema real varía según el emulador y la versión. Confirma siempre el mapeo en el panel de configuración del CMS.
Paso 1: Descargar la versión correcta de WebEngine
WebEngine se distribuye como un paquete de archivos PHP. Descarga siempre la versión estable más reciente de la fuente oficial del proyecto, no de repositorios aleatorios que pueden contener backdoors. Una práctica de seguridad esencial en el escenario de MU: nunca uses un CMS "modificado" ofrecido en un foro sin auditar el código, porque es un vector clásico de inyección de shell.
Después de descargar, descomprime en una carpeta local. Verás una estructura parecida a esta (varía según la versión):
webengine/
├── index.php
├── includes/
│ └── config/ # archivos de configuración
├── modules/ # módulos: rankings, downloads, etc.
├── themes/ # temas del sitio
├── admincp/ # panel administrativo
└── install/ # asistente de instalación (¡borrar después!)
Paso 2: Preparar PHP y el driver de SQL Server
Este es el paso que más dolores de cabeza genera. PHP, por defecto, no habla con SQL Server. Hay que instalar y habilitar el driver.
En Windows con PHP, descarga los drivers sqlsrv de Microsoft compatibles con tu versión exacta de PHP (la compatibilidad varía según la versión: thread-safe x non-thread-safe, x64 x x86). Copia los .dll a la carpeta ext/ de PHP y agrégalos en el php.ini:
extension=php_sqlsrv_81_ts_x64.dll
extension=php_pdo_sqlsrv_81_ts_x64.dll
En Linux, el camino suele ser vía pecl install sqlsrv pdo_sqlsrv con el paquete msodbcsql de Microsoft, o usar FreeTDS/pdo_dblib como alternativa. Reinicia el servidor web y valida con un archivo temporal:
<?php
// teste-driver.php — borrar después de usar
phpinfo();
// Busca "sqlsrv" o "pdo_dblib" en la página generada.
Abre teste-driver.php en el navegador y confirma que el driver aparece. Si no aparece, PHP no cargó la extensión y nada más va a funcionar. Resuelve eso antes de continuar.
Paso 3: Crear un usuario SQL de bajo privilegio
Nunca conectes el sitio con el usuario sa. Si el sitio es comprometido, el atacante hereda control total de la base. Crea un usuario dedicado con permiso solo en las tablas que el sitio necesita:
-- Ejecutar en SQL Server, ajustando el nombre de la base
USE [master];
CREATE LOGIN web_mu WITH PASSWORD = 'SenhaForteAqui#2024', CHECK_POLICY = ON;
GO
USE [MuOnline]; -- el nombre de la base varía según el emulador
CREATE USER web_mu FOR LOGIN web_mu;
-- Concede solo lectura/escritura en las tablas del juego
ALTER ROLE db_datareader ADD MEMBER web_mu;
ALTER ROLE db_datawriter ADD MEMBER web_mu;
GO
Así, incluso en caso de intrusión, el daño se limita a lectura/escritura de datos, sin poder soltar tablas ni crear logins.
Paso 4: Subir los archivos al servidor web
Envía el contenido de la carpeta webengine/ al directorio público de tu servidor web (por ejemplo htdocs/, www/ o wwwroot/) vía FTP o copia directa. Asegúrate de que los permisos de escritura estén correctos en las carpetas que el CMS necesita grabar (cache, uploads, config), típicamente algo como 755 para carpetas y 644 para archivos en Linux. Evita 777: es una falla de seguridad común e innecesaria.
Paso 5: Ejecutar el asistente de instalación
Con los archivos en su lugar, accede a http://tudominio.com/install/ en el navegador. El asistente de WebEngine te guiará por etapas (el flujo exacto varía según la versión):
- Verificación de requisitos — el instalador chequea la versión de PHP, extensiones y permisos de carpeta. Corrige cualquier ítem marcado en rojo antes de avanzar.
- Datos de conexión de la base — informa el host/IP del SQL Server, el puerto (1433 por defecto), el nombre de la base, el usuario (
web_mu) y la contraseña. - Mapeo de tablas — confirma los nombres de las tablas de cuenta y personaje de tu emulador.
- Creación del administrador — define el usuario admin del panel del CMS.
- Conclusión — el instalador graba el archivo de configuración.
Ejemplo de cómo suele quedar el config final (los nombres varían según la versión):
<?php
// includes/config/config.database.php
$config_database_host = '203.0.113.10'; // IP del SQL Server
$config_database_port = '1433';
$config_database_name = 'MuOnline';
$config_database_user = 'web_mu';
$config_database_pass = 'SenhaForteAqui#2024';
$config_database_driver = 'sqlsrv'; // o dblib en Linux
Paso 6: Borrar la carpeta de instalación
Este paso es obligatorio y con frecuencia olvidado. La carpeta install/ permite reconfigurar todo el sitio, incluyendo las credenciales de base. Dejarla accesible es entregar tu servidor en bandeja.
# En el servidor, tras concluir la instalación
rm -rf /caminho/para/webengine/install/
Si el CMS todavía detecta la carpeta y se niega a funcionar, es justamente el mecanismo de seguridad forzándote a removerla. Confirma la eliminación.
Paso 7: Configurar los módulos esenciales
Entra al panel administrativo (/admincp/) con el usuario admin creado. A partir de ahí, activa y configura los módulos que le dan vida al sitio:
- Registro de cuenta — define reglas de contraseña, verificación por email y protección contra bots. La seguridad del registro es crítica; las contraseñas deben grabarse con hash, nunca en texto plano (WebEngine ya lo trata, pero confírmalo en las opciones).
- Rankings — top de resets, PK, guilds. Configura el cache para no golpear la base en cada acceso.
- Descargas — enlaces del cliente del juego. Aloja en CDN o almacenamiento propio.
- Sistema de créditos/donation — opcional; si vas a cobrar, trata los pagos con prepared statements y valida todo callback del gateway.
Paso 8: Ajustar el tema y el SEO
Elige un tema en themes/ y actívalo en el panel. Personaliza logo, colores y textos. Configura el título, la meta description y las URLs amigables para que el sitio aparezca bien en Google. Un sitio limpio y rápido convierte muchos más visitantes en jugadores.
Errores comunes y soluciones
| Síntoma | Causa probable | Solución |
|---|---|---|
| Pantalla en blanco al abrir el sitio | Error fatal de PHP oculto (driver ausente, versión incompatible) | Activa display_errors o lee el log de error de PHP; corrige la extensión sqlsrv |
| "Could not connect to database" | Credenciales equivocadas, puerto 1433 cerrado, SQL Server sin TCP/IP | Prueba la conexión, abre el firewall, habilita TCP/IP en el SQL Server Configuration Manager |
| Ranking vacío aun con jugadores | Nombres de tabla/columna equivocados en el mapeo | Ajusta el mapeo al esquema de tu emulador |
| El registro crea la cuenta pero el login en el juego falla | Formato de contraseña divergente entre el sitio y el emulador | Confirma el algoritmo de hash esperado por el emulador; varía según la versión |
| Panel admin accesible por cualquiera | Carpeta install no borrada / contraseña débil | Borra install/, cambia la contraseña admin, restringe admincp por IP si es posible |
| Error 500 al grabar cache | Permisos de carpeta insuficientes | Ajusta los permisos de escritura en las carpetas de cache/upload (no uses 777) |
Lista de verificación de lanzamiento
- Servidor de juego y SQL Server funcionando antes del sitio
- PHP en la versión exigida por tu build de WebEngine
- Driver sqlsrv/PDO cargado y confirmado en phpinfo
- Usuario SQL dedicado de bajo privilegio creado (no el sa)
- Puerto 1433 abierto solo para la IP del sitio
- Archivos subidos con los permisos correctos (sin 777)
- Asistente de instalación concluido con éxito
- Carpeta
install/borrada - Contraseña del admin del panel fuerte y única
- Módulos de registro, ranking y descargas probados
- Registro validado: la cuenta creada en el sitio loguea en el juego
display_errorsapagado en producción- Backup de la base y de los archivos del sitio agendado
Con WebEngine instalado y endurecido, tienes un sitio profesional que conversa directamente con el servidor, reduce el trabajo manual y ofrece una puerta de entrada confiable para nuevos jugadores. El secreto del éxito no es solo instalar, sino mantener: aplica actualizaciones de seguridad, monitorea los logs y revisa los permisos periódicamente. Un sitio bien cuidado es tan importante como un servidor bien balanceado.
Preguntas frecuentes
¿WebEngine CMS es gratuito?
La base de WebEngine CMS es open source y gratuita para su uso. Existen plugins y temas de pago creados por la comunidad, pero el núcleo del CMS, los módulos de ranking, registro y cuenta no cuestan nada. Solo pagas por el hosting y, si quieres, por temas premium.
¿Qué versión de PHP exige WebEngine?
Depende de la versión del CMS. Las builds antiguas corrían en PHP 5.6, mientras que las revisiones más recientes piden PHP 7.4 u 8.x con la extensión sqlsrv o pdo_sqlsrv. Revisa el README de tu versión, porque el requisito varía según la versión y usar un PHP incompatible es la causa más común de pantalla en blanco.
¿Necesito la base en el mismo servidor que el sitio?
No. El sitio en PHP puede estar en un hosting Linux y el SQL Server del emulador en una VPS Windows separada. Basta con abrir el puerto 1433 solo para la IP del sitio y usar un usuario SQL de bajo privilegio. Mantener la web y la base separadas es incluso más seguro.
¿Por qué aparece una pantalla en blanco después de subir los archivos?
La pantalla en blanco casi siempre es un error fatal de PHP oculto. Las causas más comunes son la extensión sqlsrv ausente, una versión de PHP incompatible o credenciales equivocadas en el config. Activa display_errors temporalmente o lee el log de error de PHP para ver el mensaje real antes que nada.
¿WebEngine funciona con cualquier emulador de MU?
Fue diseñado para la línea de emuladores basados en SQL Server (Season 6 y derivados como estándar de la comunidad). La estructura de tablas de cuenta y personaje esperada varía según el emulador, así que ajusta los nombres de tabla y columna en el panel de configuración del CMS según tu servidor.