A implementação de uma solução robusta de gerenciamento de conhecimento exige ferramentas que equilibrem flexibilidade, escalabilidade e facilidade de uso. Neste cenário, o MediaWiki destaca-se como a engine padrão da indústria, sendo o mesmo software poderoso que sustenta a Wikipédia e os projetos da Wikimedia Foundation. Para organizações que buscam criar um servidor wiki privado, centralizar documentação técnica ou manter um repositório vivo de informações corporativas, aprender a hospedar MediaWiki em VPS é uma competência essencial para sysadmins e equipes de TI.
Este guia técnico detalha o processo completo de instalação e configuração do MediaWiki em um ambiente Linux, focando em melhores práticas de segurança, performance e integração com banco de dados. Ao final deste tutorial, você terá uma instância funcional, segura e pronta para ser a base da documentação técnica da sua empresa.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, é fundamental garantir que o servidor atenda aos requisitos mínimos de software. O MediaWiki é uma aplicação web escrita em PHP, portanto, precisamos de um servidor web (Nginx ou Apache), interpretador PHP com módulos adequados e um sistema de gerenciamento de banco de dados (MySQL/MariaDB ou PostgreSQL).
Para este tutorial, utilizaremos como base um servidor Linux Ubuntu 22.04 LTS, mas os conceitos se aplicam a Debian, CentOS e RHEL. A primeira etapa envolve atualizar o sistema operacional e instalar as dependências básicas.
sudo apt update
sudo apt upgrade -y
sudo apt install wget unzip curl software-properties-common gnupg2 -y
Além disso, certifique-se de que seu domínio está apontando para o IP do seu servidor VPS. Se você ainda não possui um DNS configurado, poderá utilizar o endereço IP temporariamente, mas a configuração de SSL (HTTPS) exigirá um domínio válido para emissão de certificados Let's Encrypt.
Instalação do Stack LEMP/LAMP
Embora existam pacotes "all-in-one", a instalação modular permite maior controle sobre as versões e configurações. Vamos optar por uma stack com Nginx como servidor web, devido à sua alta performance no tratamento de conexões simultâneas, comum em wikis com múltiplos acessos.
2.1. Banco de Dados
O MediaWiki funciona melhor com MySQL ou MariaDB. Instalaremos o MariaDB, que é altamente compatível e performático.
sudo apt install mariadb-server -y
sudo mysql_secure_installation
Durante a execução do script de segurança, responda y para todas as perguntas: remover usuários anônimos, desativar login remoto root, remover banco de dados de teste e carregar novas tabelas. Em seguida, crie o banco de dados e o usuário dedicado para o MediaWiki.
sudo mysql -u root -p
Dentro do prompt do MySQL, execute:
CREATE DATABASE mediawiki_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mediawiki_user'@'localhost' IDENTIFIED BY 'SenhaForteAqui123!';
GRANT ALL PRIVILEGES ON mediawiki_db.* TO 'mediawiki_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2.2. Servidor Web e PHP
Instale o Nginx e as extensões do PHP necessárias para o MediaWiki rodar corretamente, incluindo suporte a imagem, criptografia e processamento de XML.
sudo apt install nginx php-fpm php-cli php-gd php-curl php-xml php-mbstring php-zip php-intl php-bcmath -y
Após a instalação, verifique se o serviço PHP-FPM está ativo e configurado para escutar na porta correta (geralmente unix socket ou localhost:9000). No Ubuntu, o socket padrão costuma ser /run/php/php8.1-fpm.sock. Ajuste isso conforme a versão do PHP instalada.
2.3. Configuração do Nginx
Crie um arquivo de configuração de servidor virtual para o MediaWiki em /etc/nginx/sites-available/mediawiki.
server {
listen 80;
server_name wiki.seudominio.com.br; # Substitua pelo seu domínio
root /var/www/mediawiki;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Ajuste a versão do PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
# Redirecionar HTTP para HTTPS após configurar SSL
server {
listen 443 ssl http2;
server_name wiki.seudominio.com.br;
# Configurações de SSL aqui (Let's Encrypt)
# ssl_certificate /etc/letsencrypt/live/wiki.seudominio.com.br/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/wiki.seudominio.com.br/privkey.pem;
root /var/www/mediawiki;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Ative a configuração e teste o Nginx antes de reiniciar:
sudo ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Baixando e Configurando o MediaWiki
Agora que a infraestrutura está pronta, vamos baixar a última versão estável do MediaWiki. É recomendável usar a versão "Stable" para ambientes de produção.
cd /tmp
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz
tar -xvzf mediawiki-1.41.0.tar.gz
sudo mkdir -p /var/www/mediawiki
sudo cp -r mediawiki-1.41.0/* /var/www/mediawiki/
sudo chown -R www-data:www-data /var/www/mediawiki
sudo chmod -R 755 /var/www/mediawiki
Com os arquivos no lugar, precisamos gerar uma chave secreta para o MediaWiki. Isso é crucial para a segurança de sessões e cookies.
openssl rand -base64 32
Copie a saída gerada, pois ela será usada no arquivo LocalSettings.php.
Instalação via Web Installer
O MediaWiki oferece um instalador web intuitivo que configura o banco de dados e gera o arquivo de configuração principal. Acesse http://wiki.seudominio.com.br/index.php no seu navegador.
- Língua: Selecione "Português (Brasil)" se disponível, ou English para configurar depois.
- Pré-requisitos: O instalador verificará se o PHP está configurado corretamente. Se houver avisos sobre extensões ausentes, instale-as via
apt. - Banco de Dados: Insira os dados criados anteriormente:
- Nome do banco de dados:
mediawiki_db - Nome de usuário:
mediawiki_user - Senha: a senha definida no passo 2.1
- Prefixo da tabela: deixe vazio (padrão).
- Nome do banco de dados:
- Detalhes do Wiki: Defina o nome do seu wiki, login de administrador e senha segura.
- Nome do Usuário: Escolha um usuário administrativo forte. Evite "admin" ou "root".
Ao clicar em "Instalar", o sistema criará as tabelas no banco de dados e gerará o arquivo LocalSettings.php. Baixe este arquivo do navegador.
Finalização da Configuração no Servidor
Após baixar o LocalSettings.php, transfira-o para o diretório raiz da instalação e defina as permissões corretas. Isso impede que usuários mal-intencionados leiam a configuração do banco de dados.
sudo mv LocalSettings.php /var/www/mediawiki/
sudo chown www-data:www-data /var/www/mediawiki/LocalSettings.php
sudo chmod 640 /var/www/mediawiki/LocalSettings.php
Agora, edite o arquivo LocalSettings.php para adicionar configurações de segurança e performance essenciais que não são cobertas pelo instalador web.
3.1. Segurança Avançada
Adicione as seguintes linhas ao final do LocalSettings.php antes da linha ?>:
// Forçar HTTPS
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$_SERVER['HTTPS'] = 'on';
}
// Desabilitar criação de contas por visitantes (recomendado para wikis privados)
$wgGroupPermissions['*']['createaccount'] = false;
// Restringir edição para usuários logados
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = true;
// Definir a chave secreta gerada anteriormente
$wgSecretKey = 'sua_chave_gerada_pelo_openssl_aqui';
3.2. Otimização de Cache
Para melhorar a velocidade de carregamento, configure o cache em memória usando Memcached ou Redis, se disponível no seu servidor.
# Instalar memcached e extensão PHP
sudo apt install memcached php-memcached -y
# Configurar MediaWiki para usar Memcached
$wgMemCachedServers = array( '127.0.0.1:11211' );
$wgCacheDirectory = '/tmp/memcached';
Habilitando HTTPS com Let's Encrypt
A segurança moderna exige HTTPS. Utilize o Certbot para obter e renovar certificados SSL gratuitos.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d wiki.seudominio.com.br
O Certbot ajustará automaticamente a configuração do Nginx para redirecionar tráfego HTTP para HTTPS e inserirá os caminhos dos certificados SSL. Reinicie o Nginx para aplicar as mudanças.
sudo systemctl restart nginx
Mantendo o Sistema Atualizado
A manutenção de um servidor wiki privado exige atenção constante às atualizações de segurança. O MediaWiki libera atualizações frequentes para corrigir vulnerabilidades.
Para atualizar, baixe a nova versão em um diretório separado e execute o script de atualização do banco de dados:
cd /var/www/mediawiki
sudo -u www-data php update.php
Sempre faça backup do banco de dados e do arquivo LocalSettings.php antes de realizar qualquer upgrade.
Considerações Finais para Sysadmins
Hospedar o MediaWiki em uma VPS oferece controle total sobre os dados, essencial para conformidade com LGPD e políticas internas de gerenciamento de conhecimento. Ao contrário de soluções SaaS, você decide quem tem acesso, como os dados são armazenados e quais extensões podem ser habilitadas.
Lembre-se de monitorar o uso de disco e memória do servidor. Wikis com muitas imagens ou edições frequentes podem crescer rapidamente. Configure backups automáticos via cron job:
0 2 * * * mysqldump -u mediawiki_user -p'Senha' mediawiki_db | gzip > /backup/mediawiki_$(date +\%Y\%m\%d).sql.gz
Com este guia, você está preparado para implantar uma solução de wiki profissional, segura e escalável. Explore as extensões disponíveis na Wikimedia Extension Store para personalizar ainda mais sua plataforma, adicionando funcionalidades como versionamento visual, integração com Slack ou sistemas de votação.