Como Hospedar MediaWiki em VPS: Guia Completo para Administradores

9 min de leitura Infraestrutura
Como Hospedar MediaWiki em VPS: Guia Completo para Administradores

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.

  1. Língua: Selecione "Português (Brasil)" se disponível, ou English para configurar depois.
  2. Pré-requisitos: O instalador verificará se o PHP está configurado corretamente. Se houver avisos sobre extensões ausentes, instale-as via apt.
  3. 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).
  4. Detalhes do Wiki: Defina o nome do seu wiki, login de administrador e senha segura.
  5. 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.

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