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.

Compartilhar: Link copiado!
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