Como instalar o WebEngine CMS para o seu servidor de MU Online
Instale e configure o WebEngine CMS do zero para o site do seu servidor de MU Online, conectando ao banco do emulador com segurança e ativando módulos essenciais como rankings, downloads e registro de conta.
O site é a primeira coisa que um jogador vê antes de entrar no seu servidor de MU Online. É por ele que se cria a conta, se consulta o ranking, se baixa o cliente e se acompanha eventos. Montar esse site manualmente em PHP puro é possível, mas trabalhoso e arriscado do ponto de vista de segurança. O
O site é a primeira coisa que um jogador vê antes de entrar no seu servidor de MU Online. É por ele que se cria a conta, se consulta o ranking, se baixa o cliente e se acompanha eventos. Montar esse site manualmente em PHP puro é possível, mas trabalhoso e arriscado do ponto de vista de segurança. O WebEngine CMS resolve isso: é um sistema de gerenciamento de conteúdo feito especificamente para servidores de MU Online, que já traz registro de conta, rankings, painel de usuário, sistema de créditos, downloads e integração direta com o banco do emulador. Este tutorial mostra, em nível avançado, como instalar o WebEngine do zero, conectá-lo com segurança ao banco do servidor e deixá-lo pronto para produção.
Antes de começar, entenda o desenho da coisa. O WebEngine é uma aplicação PHP que lê e escreve nas mesmas tabelas que o emulador do jogo usa (as tabelas de conta, personagem, warehouse). O servidor de jogo tradicionalmente roda em Windows com SQL Server; o site pode rodar no mesmo Windows (via IIS ou XAMPP) ou em uma hospedagem Linux separada, desde que consiga alcançar o SQL Server pela rede. Todo o trabalho de instalação gira em torno de três eixos: subir os arquivos PHP, garantir que o PHP consegue falar com o SQL Server, e configurar as credenciais e nomes de tabela corretos.
Pré-requisitos
Antes de tocar em qualquer arquivo, garanta que você tem tudo abaixo. Pular esta etapa é o motivo número um de instalações que "não funcionam".
- Servidor de MU já instalado e com banco funcionando no SQL Server. Se ainda não chegou nessa fase, comece pelo guia de como criar servidor de MU Online, que cobre a base antes do site.
- Servidor web com PHP. Pode ser IIS ou Apache (XAMPP/WAMP) no Windows, ou Apache/Nginx no Linux. A versão de PHP exigida varia por versão do WebEngine; builds recentes pedem PHP 7.4 ou 8.x.
- Extensão de driver SQL Server para PHP (
sqlsrvepdo_sqlsrvno Windows, oupdo_dblib/FreeTDSno Linux). Sem isso o site não conecta ao banco. - Credenciais do SQL Server: idealmente um usuário dedicado de baixo privilégio, não o
sa. - Acesso FTP ou ao sistema de arquivos para subir os arquivos do CMS.
- Um domínio ou, para testes, acesso via IP/localhost.
| Componente | Papel | Onde roda (exemplo) |
|---|---|---|
| Emulador do jogo | Lógica do MU, GameServer/ConnectServer | VPS Windows |
| SQL Server | Banco de contas, personagens, itens | VPS Windows |
| PHP + WebEngine | Site, registro, ranking, painel | Hospedagem Linux ou o mesmo Windows |
| Driver sqlsrv/PDO | Ponte entre PHP e SQL Server | Junto do PHP |
> Aviso: os nomes de tabela e coluna citados adiante (MEMB_INFO, Character, AccountCharacter) são exemplos comuns da linha Season 6. O esquema real varia por emulador e por versão. Sempre confira o mapeamento no painel de configuração do CMS.
Passo 1: Baixar a versão correta do WebEngine
O WebEngine é distribuído como um pacote de arquivos PHP. Baixe sempre a versão estável mais recente da fonte oficial do projeto, não de repositórios aleatórios que podem conter backdoors. Uma prática de segurança essencial em cenário de MU: nunca use um CMS "modificado" oferecido em fórum sem auditar o código, pois é vetor clássico de injeção de shell.
Depois de baixar, descompacte em uma pasta local. Você verá uma estrutura parecida com esta (varia por versão):
webengine/
├── index.php
├── includes/
│ └── config/ # arquivos de configuração
├── modules/ # módulos: rankings, downloads, etc.
├── themes/ # temas do site
├── admincp/ # painel administrativo
└── install/ # assistente de instalação (apagar depois!)
Passo 2: Preparar o PHP e o driver do SQL Server
Este é o passo que mais gera dor de cabeça. O PHP, por padrão, não fala com SQL Server. É preciso instalar e habilitar o driver.
No Windows com PHP, baixe os drivers sqlsrv da Microsoft compatíveis com a sua versão exata de PHP (a compatibilidade varia por versão: thread-safe x non-thread-safe, x64 x x86). Copie os .dll para a pasta ext/ do PHP e adicione no php.ini:
extension=php_sqlsrv_81_ts_x64.dll
extension=php_pdo_sqlsrv_81_ts_x64.dll
No Linux, o caminho costuma ser via pecl install sqlsrv pdo_sqlsrv com o pacote msodbcsql da Microsoft, ou usar FreeTDS/pdo_dblib como alternativa. Reinicie o servidor web e valide com um arquivo temporário:
<?php
// teste-driver.php — apague depois de usar
phpinfo();
// Procure por "sqlsrv" ou "pdo_dblib" na página gerada.
Abra teste-driver.php no navegador e confirme que o driver aparece. Se não aparecer, o PHP não carregou a extensão e nada mais vai funcionar. Resolva isso antes de continuar.
Passo 3: Criar um usuário SQL de baixo privilégio
Nunca conecte o site com o usuário sa. Se o site for comprometido, o atacante herda controle total do banco. Crie um usuário dedicado com permissão apenas nas tabelas que o site precisa:
-- Executar no SQL Server, ajustando o nome do banco
USE [master];
CREATE LOGIN web_mu WITH PASSWORD = 'SenhaForteAqui#2024', CHECK_POLICY = ON;
GO
USE [MuOnline]; -- nome do banco varia por emulador
CREATE USER web_mu FOR LOGIN web_mu;
-- Conceda apenas leitura/escrita nas tabelas do jogo
ALTER ROLE db_datareader ADD MEMBER web_mu;
ALTER ROLE db_datawriter ADD MEMBER web_mu;
GO
Assim, mesmo em caso de invasão, o dano é limitado a leitura/escrita de dados, sem poder soltar tabelas ou criar logins.
Passo 4: Subir os arquivos para o servidor web
Envie o conteúdo da pasta webengine/ para o diretório público do seu servidor web (por exemplo htdocs/, www/ ou wwwroot/) via FTP ou cópia direta. Garanta que as permissões de escrita estejam corretas nas pastas que o CMS precisa gravar (cache, uploads, config), tipicamente algo como 755 para pastas e 644 para arquivos no Linux. Evite 777: é uma falha de segurança comum e desnecessária.
Passo 5: Rodar o assistente de instalação
Com os arquivos no lugar, acesse http://seudominio.com/install/ no navegador. O assistente do WebEngine vai guiá-lo por etapas (o fluxo exato varia por versão):
- Verificação de requisitos — o instalador checa versão de PHP, extensões e permissões de pasta. Corrija qualquer item marcado em vermelho antes de avançar.
- Dados de conexão do banco — informe host/IP do SQL Server, porta (1433 por padrão), nome do banco, usuário (
web_mu) e senha. - Mapeamento de tabelas — confirme os nomes das tabelas de conta e personagem do seu emulador.
- Criação do administrador — defina o usuário admin do painel do CMS.
- Conclusão — o instalador grava o arquivo de configuração.
Exemplo de como o config final costuma se parecer (nomes variam por versão):
<?php
// includes/config/config.database.php
$config_database_host = '203.0.113.10'; // IP do SQL Server
$config_database_port = '1433';
$config_database_name = 'MuOnline';
$config_database_user = 'web_mu';
$config_database_pass = 'SenhaForteAqui#2024';
$config_database_driver = 'sqlsrv'; // ou dblib no Linux
Passo 6: Apagar a pasta de instalação
Este passo é obrigatório e frequentemente esquecido. A pasta install/ permite reconfigurar todo o site, incluindo credenciais de banco. Deixá-la acessível é entregar seu servidor de bandeja.
# No servidor, após concluir a instalação
rm -rf /caminho/para/webengine/install/
Se o CMS ainda detectar a pasta e recusar-se a funcionar, é justamente o mecanismo de segurança forçando você a removê-la. Confirme a exclusão.
Passo 7: Configurar módulos essenciais
Entre no painel administrativo (/admincp/) com o usuário admin criado. A partir daí, ative e configure os módulos que dão vida ao site:
- Registro de conta — define regras de senha, verificação por e-mail e proteção contra bots. A segurança do registro é crítica; senhas devem ser gravadas com hash, nunca em texto puro (o WebEngine já trata isso, mas confirme nas opções).
- Rankings — top de resets, PK, guildas. Configure o cache para não bater no banco a cada acesso.
- Downloads — links do cliente do jogo. Hospede em CDN ou storage próprio.
- Sistema de créditos/donation — opcional; se for cobrar, trate pagamentos com prepared statements e valide todo callback do gateway.
Passo 8: Ajustar tema e SEO
Escolha um tema em themes/ e ative-o no painel. Personalize logo, cores e textos. Configure título, meta description e URLs amigáveis para que o site apareça bem no Google. Um site limpo e rápido converte muito mais visitantes em jogadores.
Erros comuns e soluções
| Sintoma | Causa provável | Solução |
|---|---|---|
| Tela branca ao abrir o site | Erro fatal de PHP oculto (driver ausente, versão incompatível) | Ative display_errors ou leia o log de erro do PHP; corrija a extensão sqlsrv |
| "Could not connect to database" | Credenciais erradas, porta 1433 fechada, SQL Server sem TCP/IP | Teste a conexão, libere o firewall, habilite TCP/IP no SQL Server Configuration Manager |
| Ranking vazio mesmo com jogadores | Nomes de tabela/coluna errados no mapeamento | Ajuste o mapeamento ao esquema do seu emulador |
| Registro cria conta mas login no jogo falha | Formato de senha divergente entre site e emulador | Confirme o algoritmo de hash esperado pelo emulador; varia por versão |
| Painel admin acessível por qualquer um | Pasta install não apagada / senha fraca | Apague install/, troque a senha admin, restrinja admincp por IP se possível |
| Erro 500 ao gravar cache | Permissões de pasta insuficientes | Ajuste permissões de escrita nas pastas de cache/upload (não use 777) |
Checklist de lançamento
- Servidor de jogo e SQL Server funcionando antes do site
- PHP na versão exigida pela sua build do WebEngine
- Driver sqlsrv/PDO carregado e confirmado no phpinfo
- Usuário SQL dedicado de baixo privilégio criado (não o sa)
- Porta 1433 liberada apenas para o IP do site
- Arquivos subidos com permissões corretas (sem 777)
- Assistente de instalação concluído com sucesso
- Pasta
install/apagada - Senha do admin do painel forte e única
- Módulos de registro, ranking e downloads testados
- Registro validado: conta criada no site loga no jogo
display_errorsdesligado em produção- Backup do banco e dos arquivos do site agendado
Com o WebEngine instalado e endurecido, você tem um site profissional que conversa diretamente com o servidor, reduz trabalho manual e oferece uma porta de entrada confiável para novos jogadores. O segredo do sucesso não é só instalar, mas manter: aplique atualizações de segurança, monitore os logs e revise as permissões periodicamente. Um site bem cuidado é tão importante quanto um servidor bem balanceado.
Perguntas frequentes
O WebEngine CMS é gratuito?
A base do WebEngine CMS é open source e gratuita para uso. Existem plugins e temas pagos criados pela comunidade, mas o núcleo do CMS, os módulos de ranking, registro e conta não custam nada. Você só paga por hospedagem e, se quiser, por temas premium.
Qual versão de PHP o WebEngine exige?
Depende da versão do CMS. Builds antigas rodavam em PHP 5.6, enquanto as revisões mais recentes pedem PHP 7.4 ou 8.x com a extensão sqlsrv ou pdo_sqlsrv. Confira o README da sua versão, pois o requisito varia por versão e usar PHP incompatível é a causa mais comum de tela branca.
Preciso do banco no mesmo servidor do site?
Não. O site em PHP pode ficar em uma hospedagem Linux e o SQL Server do emulador em uma VPS Windows separada. Basta liberar a porta 1433 apenas para o IP do site e usar um usuário SQL de baixo privilégio. Manter web e banco separados é inclusive mais seguro.
Por que aparece tela branca depois de subir os arquivos?
Tela branca quase sempre é erro fatal de PHP oculto. As causas mais comuns são extensão sqlsrv ausente, versão de PHP incompatível ou credenciais erradas no config. Ative display_errors temporariamente ou leia o log de erro do PHP para ver a mensagem real antes de qualquer outra coisa.
O WebEngine funciona com qualquer emulador de MU?
Ele foi desenhado para a linha de emuladores baseados em SQL Server (Season 6 e derivados como o padrão da comunidade). A estrutura de tabelas de conta e personagem esperada varia por emulador, então ajuste os nomes de tabela e coluna no painel de configuração do CMS conforme o seu servidor.