Como Hospedar MediaWiki em VPS: Guia Completo para Linux

10 min de leitura Infraestrutura

A infraestrutura de conhecimento corporativo e técnico depende criticamente de sistemas robustos, escaláveis e sob controle total da organização. Enquanto plataformas SaaS oferecem conveniência, elas impõem limitações de personalização, dependência de terceiros e, por vezes, preocupações com soberania de dados. Neste guia técnico, exploramos como hospedar MediaWiki VPS, transformando uma máquina virtual Linux em um motor de documentação poderoso, similar ao que sustenta a Wikipédia.

O MediaWiki é mais do que apenas software; é o padrão ouro para wikis colaborativas. Seja para manter manuais técnicos internos, bases de conhecimento de suporte ou repositórios de documentação de projetos open-source, instalar um servidor wiki próprio oferece flexibilidade inigualável. Ao seguir este MediaWiki tutorial, você não apenas instala software, mas constrói uma peça fundamental da sua infraestrutura wiki, garantindo que a informação viva onde e como você decidir.

1. Requisitos de Infraestrutura e Preparação do Ambiente

Antes de iniciar a instalação, é crucial definir os recursos adequados para a sua VPS. O MediaWiki é uma aplicação PHP pesada em termos de requisições de banco de dados e processamento de templates. Para um ambiente de produção estável com uso moderado a intenso:

  • CPU: Mínimo 2 vCPUs. A indexação de busca e renderização de páginas complexas consomem ciclos significativos.
  • RAM: 4GB é o recomendável. O banco de dados (MySQL/MariaDB) e o servidor web (Nginx/Apache) competem por memória; menos que isso resultará em swap excessivo e lentidão.
  • Armazenamento: SSD ou NVMe é obrigatório para I/O rápido das consultas ao banco de dados. O tamanho do disco depende da quantidade de uploads de mídia, mas comece com 40GB mínimo.
  • Sistema Operacional: Ubuntu Server 22.04 LTS ou Debian 11/12 são as escolhas mais estáveis e documentadas para este stack.

Garanta que seu domínio esteja apontando para o IP da sua VPS via registros A no DNS antes de prosseguir, pois configuraremos certificados SSL (HTTPS) imediatamente para garantir a segurança das sessões administrativas.

2. Configuração do Servidor Web e Banco de Dados

A arquitetura recomendada para performance moderna com MediaWiki combina Nginx como reverse proxy e MariaDB ou MySQL como banco de dados. Vamos instalar o stack LEMP (Linux, Nginx, MySQL/MariaDB, PHP).

2.1. Atualização do Sistema

Sempre comece com um sistema atualizado para garantir segurança e compatibilidade de pacotes.

sudo apt update && sudo apt upgrade -y
sudo reboot

Após o reboot, reconecte ao servidor e prossiga com a instalação dos componentes essenciais. Você precisará da versão 7.4 ou superior do PHP (recomendamos 8.1 ou 8.2 para melhor performance) e das extensões necessárias.

2.2. Instalação do Nginx e MariaDB

sudo apt install nginx mariadb-server -y

Inicie e habilite os serviços:

sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb

2.3. Instalação do PHP e Extensões Críticas

O MediaWiki requer várias extensões PHP para funcionar corretamente, incluindo suporte a imagem, criptografia e processamento de XML. Vamos instalar o PHP 8.1 (ajuste conforme sua versão preferida) com todas as dependências comuns.

sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath php8.1-json php-apcu -y

A extensão apcu é vital para o cache de objetos do PHP, reduzindo drasticamente a carga no banco de dados.

2.4. Configuração de Segurança do Banco de Dados

Rode o script de segurança inicial do MariaDB:

sudo mysql_secure_installation

Siga as instruções na tela: defina uma senha para root, remova usuários anônimos, desative login root remoto e remova o banco de dados de teste. Em seguida, crie o banco de dados específico 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 'SENHA_FORTE_AQUI';
GRANT ALL PRIVILEGES ON mediawiki_db.* TO 'mediawiki_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Substitua SENHA_FORTE_AQUI por uma senha complexa. Você a usará na próxima etapa.

3. Download e Configuração do MediaWiki

Agora que o ambiente está pronto, vamos baixar os arquivos do MediaWiki. Recomendamos sempre usar a versão mais recente estável disponível no repositório oficial ou via Git para atualizações futuras facilitadas.

3.1. Instalação dos Arquivos

Crie um diretório para o site e baixe os arquivos. Vamos assumir que seu domínio é wiki.suaempresa.com.br.

sudo mkdir -p /var/www/wiki
cd /tmp
wget https://releases.wikimedia.org/mediawiki/1.40/mediawiki-1.40.1.tar.gz
tar -xzf mediawiki-*.tar.gz
sudo mv mediawiki-1.40.1/* /var/www/wiki/
sudo chown -R www-data:www-data /var/www/wiki
sudo chmod -R 755 /var/www/wiki

Agora, configure o VirtualHost no Nginx para servir esse diretório.

sudo nano /etc/nginx/sites-available/wiki

Cole a seguinte configuração básica (ajuste o server_name):

server {
    listen 80;
    server_name wiki.suaempresa.com.br;
    
    root /var/www/wiki;
    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;
    }

    # Bloquear acesso a arquivos sensíveis
    location ~ /\.ht {
        deny all;
    }
    
    location /cache/ {
        deny all;
    }
}

Habilite o site e teste a configuração:

sudo ln -s /etc/nginx/sites-available/wiki /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. Instalação via Web Installer (Setup)

O MediaWiki possui um instalador web interativo que configura o banco de dados e gera o arquivo LocalSettings.php, que contém todas as suas configurações. Acesse http://wiki.suaempresa.com.br no seu navegador.

Você verá a tela "Configure MediaWiki". Siga estes passos com atenção:

  1. Idioma: Selecione Português (Brasil).
  2. Banco de Dados: Escolha MySQL/MariaDB. Insira o nome do banco (mediawiki_db), usuário (mediawiki_user) e a senha definida anteriormente.
  3. Nome da Wiki: Defina o título visível (ex: "Wiki Corporativa").
  4. Conta Administrador: Crie um usuário com privilégios de administrador. Não use 'admin' como nome de usuário; escolha algo menos óbvio para segurança.
  5. Tipo de Wiki: Escolha "Tenho uma wiki" (para projetos existentes) ou "Wiki nova" se estiver começando do zero.

Clique em Continuar. O instalador validará o ambiente. Se houver avisos sobre configurações de PHP (como memory_limit), ajuste o arquivo /etc/php/8.1/fpm/php.ini antes de prosseguir, aumentando o limite de memória para 256M ou mais.

Ao final, o instalador gerará um arquivo chamado LocalSettings.php. Baixe este arquivo e faça upload para a raiz do seu diretório web:

sudo mv /tmp/LocalSettings.php /var/www/wiki/
sudo chown www-data:www-data /var/www/wiki/LocalSettings.php
sudo chmod 644 /var/www/wiki/LocalSettings.php

Com o arquivo instalado, a instalação via web estará completa. Você pode fazer login com as credenciais criadas.

5. Configuração de Segurança e Otimização (Hardening)

Apenas instalar não basta. Uma documentação self-hosted é um alvo comum para ataques. Aplique as seguintes medidas críticas imediatamente após a instalação.

5.1. Habilitar HTTPS com Let's Encrypt

Nunca deixe sua wiki rodando em HTTP puro. Instale o Certbot para gerar certificados SSL gratuitos.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d wiki.suaempresa.com.br

Siga as instruções do Certbot para redirecionar todo o tráfego HTTP para HTTPS. Isso garante criptografia TLS para todas as conexões.

5.2. Proteger LocalSettings.php

O arquivo LocalSettings.php contém senhas e configurações sensíveis. Adicione esta regra ao seu bloco server no Nginx para garantir que ninguém possa acessá-lo diretamente via navegador:

location = /LocalSettings.php {
    deny all;
}

Recarregue o Nginx: sudo systemctl reload nginx.

5.3. Desativar Criação de Conta Pública (Se aplicável)

Para ambientes corporativos, é comum restringir a criação de contas apenas para administradores ou usuários convidados por convite. Edite o LocalSettings.php e adicione:

$wgGroupPermissions['*']['createaccount'] = false;

Isso força os usuários a solicitarem acesso ao administrador, mantendo o controle de quem pode editar a base de conhecimento.

6. Manutenção e Backup

A longevidade da sua infraestrutura wiki depende de backups regulares e manutenção preventiva.

6.1. Backup do Banco de Dados

O conteúdo principal vive no banco de dados. Use um script simples ou o mysqldump para realizar backups diários.

sudo mysqldump -u mediawiki_user -p mediawiki_db > /backup/mediawiki_$(date +%F).sql

Configure um cron job para automatizar isso e, crucialmente, envie esses backups para um armazenamento externo (S3, Backblaze ou outra VPS) para proteção contra ransomware ou falha de disco local.

6.2. Backup de Arquivos

Os uploads de imagens ficam em /var/www/wiki/images. Inclua esse diretório no seu processo de backup de arquivos.

6.3. Atualizações do Core

Mantenha o MediaWiki atualizado para corrigir vulnerabilidades de segurança. Evite usar o "Upgrader" embutido na web em servidores de produção com alto tráfego, pois ele pode causar downtime ou erros de memória. O método recomendado é:

  1. Faça backup completo (DB e arquivos).
  2. Baixe a nova versão.
  3. Substitua os arquivos (mantendo o LocalSettings.php e a pasta images).
  4. Rode a atualização via linha de comando: php maintenance/update.php.

Conclusão

Domínio total sobre sua documentação é um diferencial competitivo. Ao seguir este guia, você aprendeu não apenas a instalar wiki linux, mas a construir uma solução enterprise-grade utilizando ferramentas open-source maduras. A combinação de MediaWiki com uma VPS bem configurada oferece escalabilidade, privacidade e personalização profunda que soluções proprietárias muitas vezes não conseguem entregar.

Agora, sua infraestrutura wiki está pronta para receber o conhecimento da sua equipe. Comece adicionando namespaces personalizados, configure extensões de busca como CirrusSearch para performance avançada e treine seus colaboradores na sintaxe MediaWiki. O futuro da documentação é seu, hospedado em seu servidor.

Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000
WhatsApp