Guia de tecnologias

Instalar MediaWiki com Nginx no CentOS 7

8 min read Tutoriais Atualizado 18 Oct 2025
Instalar MediaWiki com Nginx no CentOS 7
Instalar MediaWiki com Nginx no CentOS 7

TL;DR

Este guia passo a passo mostra como instalar o MediaWiki 1.30 em um servidor CentOS 7 usando Nginx, PHP-FPM e MariaDB, e como proteger o site com certificados Letsencrypt. Inclui comandos, dicas de permissões, resolução de problemas comuns, renovação de SSL e recomendações de segurança.

O que faremos

  1. Instalar o Nginx no CentOS 7
  2. Instalar e configurar PHP-FPM
  3. Instalar e configurar MariaDB
  4. Baixar e preparar o MediaWiki
  5. Gerar certificado SSL Letsencrypt
  6. Configurar o virtual host do Nginx para MediaWiki
  7. Instalar o MediaWiki via navegador
  8. Instalar e ativar a skin padrão

Pré-requisitos

  • Um servidor CentOS 7 com acesso root ou sudo
  • Conectividade à internet para instalar pacotes e baixar dependências
  • Um domínio DNS apontando para o servidor (exemplo usado: wiki.hakase-labs.co)

Visão geral técnica curta

MediaWiki é um software wiki open source escrito em PHP. Para operar com desempenho e segurança, recomendamos rodar MediaWiki atrás de Nginx + PHP-FPM, com banco MariaDB e HTTPS válido. Este tutorial foca em compatibilidade com CentOS 7 e PHP 7.0 conforme o ambiente original.

Etapas detalhadas

1. Instalar Nginx no CentOS 7

O Nginx não está no repositório base do CentOS 7 por padrão, por isso usamos o EPEL. Atualize o sistema e instale o epel-release

yum -y update
yum -y install epel-release

Instale o Nginx

yum -y install nginx

Inicie e habilite o serviço

systemctl start nginx
systemctl enable nginx

Verifique conexões de rede e portas usadas

netstat -plntu

Saída do netstat mostrando serviço Nginx escutando em portas HTTP/HTTPS

Observações importantes

  • Se o comando netstat não existir, instale net-tools com yum -y install net-tools
  • Confirme que as portas 80 e 443 não estão bloqueadas por firewall ou por outro serviço

2. Instalar e configurar PHP-FPM

Usaremos PHP 7.0 a partir do repositório webtatic, conforme o ambiente original. Adicione o repositório

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instale PHP 7.0 e extensões necessárias

yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

Configurações essenciais

  1. Edite /etc/php.ini e descomente/ajuste
vim /etc/php.ini

Dentro do arquivo, defina

cgi.fix_pathinfo=0
  1. Configure o pool www do PHP-FPM para usar o usuário nginx e socket
vim /etc/php-fpm.d/www.conf

Altere as linhas relevantes

user = nginx
group = nginx
listen = /run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Descomente também as variáveis de ambiente para o processo

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Crie diretório de sessões e ajuste permissões

mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/

Inicie e habilite php-fpm

systemctl start php-fpm
systemctl enable php-fpm

Verifique o socket e processo

netstat -pl | grep php

Verificação do socket php-fpm no netstat

Notas de compatibilidade

  • Se usar uma versão mais recente do PHP, os pacotes e nomes de módulo podem mudar. Teste em um ambiente de staging antes de atualizar produção.
  • Se preferir usar repositórios oficial do Remi em vez do webtatic, adapte os nomes dos pacotes conforme necessário.

3. Instalar e configurar MariaDB

MediaWiki funciona com MySQL/MariaDB ou SQLite. Para produção, recomendamos MariaDB/MySQL.

Instale MariaDB

yum -y install mariadb mariadb-server

Inicie e habilite

systemctl start mariadb
systemctl enable mariadb

Execute a rotina de segurança

mysql_secure_installation

Responda conforme política desejada; normalmente aceita-se ‘Y’ para remover anônimos, remover banco de testes e recarregar privilégios.

Criar banco e usuário para MediaWiki

mysql -u root -p
# dentro do prompt mysql:
create database mediawikidb;
grant all privileges on mediawikidb.* to mediawiki@'localhost' identified by 'mypassword';
flush privileges;
exit;

Console mostrando criação do banco de dados e permissões no MariaDB

Boas práticas para banco de dados

  • Use senhas fortes e diferentes para cada serviço
  • Em produção, limite conexões remotas ao host do aplicativo
  • Faça backups regulares com mysqldump ou ferramentas de réplica

Exemplo rápido de backup

mysqldump -u root -p mediawikidb > /root/backups/mediawikidb-$(date +%F).sql

4. Baixar e configurar MediaWiki

Instale git, composer e ferramentas de zip

yum -y install git zip unzip composer

Clone o repositório do core do MediaWiki para /var/www/mediawiki

mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

Instale dependências PHP com composer

cd /var/www/mediawiki
composer install --no-dev

Saída do Composer instalando dependências do MediaWiki

Ajuste permissões

chown -R nginx:nginx /var/www/mediawiki

Notas sobre permissões

  • O usuário do processo web (nginx neste guia) precisa ter acesso de leitura no código e permissão de escrita em diretórios que o MediaWiki usa para upload e cache.
  • Em algumas distribuições, o usuário web é www-data; neste guia usamos nginx. Ajuste conforme sua distro.

5. Gerar SSL Letsencrypt no CentOS 7

MediaWiki deve rodar em HTTPS. Usaremos um certificado gratuito Letsencrypt.

Instale o cliente letsencrypt (pacote antigo) ou certbot se preferir. No guia original foi usado letsencrypt:

yum -y install letsencrypt

Antes de rodar, pare o Nginx se for usar o modo standalone

systemctl stop nginx

Abra as portas no firewalld

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Configuração do firewalld com serviços HTTP e HTTPS adicionados

Gerar certificado

letsencrypt certonly

Escolha a opção para rodar um servidor temporário (standalone), informe um e-mail para notificações e digite seu domínio, por exemplo wiki.hakase-labs.co

Captura interativa do letsencrypt solicitando detalhes de domínio e e-mail

Resultado esperado: certificados salvos em /etc/letsencrypt/live/seu-dominio

Resultado da geração de certificado Letsencrypt

Renovação automática

  • Letsencrypt gera certificados com validade curta. Configure um cron ou systemd timer para renovar automaticamente.
  • Com o cliente letsencrypt/certbot, o comando de renovação é
letsencrypt renew --quiet

ou

certbot renew --quiet

Adicione um cron diário, por exemplo em /etc/cron.d/cert_renew com execução como root

0 3 * * * root certbot renew --quiet && systemctl reload nginx

Importante

  • Se usar o modo webroot em vez do standalone, você pode gerar certificados sem parar o Nginx. Exemplo: certbot certonly –webroot -w /var/www/html -d seu-dominio

6. Configurar virtual host Nginx para MediaWiki

Crie um arquivo de configuração em /etc/nginx/conf.d/mediawiki.conf

cd /etc/nginx/
vim conf.d/mediawiki.conf

Cole a configuração abaixo e ajuste server_name e caminhos de certificado para seu domínio

# HTTP Request will be Redirected to the HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name wiki.hakase-labs.co;
    return 301 https://$host$request_uri;
}

# HTTPS Configuration
server {

    listen 443 ssl;
    listen [::]:443;

    server_name wiki.hakase-labs.co;
    root /var/www/mediawiki;

    index index.php;
    autoindex off;

    # SSL Certificate Configuration
    ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;

    client_max_body_size 5m;
    client_body_timeout 60;

    location / {
        try_files $uri $uri/ @rewrite;
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?title=$1&$args;
    }

    location ^~ /maintenance/ {
        return 403;
    }

    # PHP-FPM Configuration Nginx
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        try_files $uri /index.php;
        expires max;
        log_not_found off;
    }

    location = /_.gif {
        expires max;
        empty_gif;
    }

    location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
        deny all;
    }

    location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
        internal;
    }

    # Security for 'image' directory
    location ~* ^/images/.*.(html|htm|shtml|php)$ {
        types { }
        default_type text/plain;
    }

    # Security for 'image' directory
    location ^~ /images/ {
        try_files $uri /index.php;
    }

}

Teste a configuração e reinicie o Nginx

nginx -t
systemctl restart nginx

Teste de configuração Nginx sem erros

Explicações rápidas

  • O bloco server em porta 80 só redireciona para HTTPS
  • fastcgi_pass usa socket Unix para performance; se preferir TCP, use 127.0.0.1:9000 e ajuste php-fpm
  • As diretivas internal e deny ajudam a proteger diretórios sensíveis

7. Instalação via web do MediaWiki

Abra no navegador

Clique em ‘Set up the wiki’ ou equivalente na interface em português, e siga os formulários.

Página inicial da instalação web do MediaWiki com link 'Set up the wiki'

Passos comuns no instalador

  1. Selecionar idioma

Seleção de idioma durante configuração do MediaWiki

  1. Verificação de ambiente - garanta que todas as checagens passem

Tela de verificação de ambiente mostrando checagem bem-sucedida

  1. Configurar banco de dados — preencha mediawikidb, usuário mediawiki, e senha

Formulário de configuração do banco de dados no instalador do MediaWiki

  1. Criar usuário administrador e demais ajustes

Criação do usuário administrador no instalador do MediaWiki

  1. Ao final, faça o download do arquivo LocalSettings.php

Página com link para download do arquivo LocalSettings.php

Upload do LocalSettings.php

  • Transfira LocalSettings.php para /var/www/mediawiki no servidor
scp LocalSettings.php [email protected]:/var/www/mediawiki/
  • Ajuste permissões garantindo que nginx seja dono do arquivo
chown -R nginx:nginx /var/www/mediawiki

Observação de correção

  • Se o instalador sugerir chown para www-data, ajuste para o usuário correto do seu servidor. Neste guia usamos nginx.

Depois de subir o arquivo, clique em ‘enter your wiki’ e verifique se o site responde

Tela inicial do MediaWiki após subir LocalSettings.php

8. Instalar e ativar a skin Vector padrão

Clone a skin Vector no diretório skins

cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

Ajuste proprietários

chown -R nginx:nginx /var/www/mediawiki/skins/

Ative a skin em LocalSettings.php adicionando no final

wfLoadSkin( 'Vector' );

Comando git clonando o skin Vector para o diretório skins

Atualize o navegador para ver o novo tema

MediaWiki exibindo o tema Vector após configuração

Melhores práticas e segurança

  • Forneça apenas os módulos PHP estritamente necessários
  • Use HTTPS sempre e renove certificados automaticamente
  • Configure firewall e limite acessos SSH por IP e chave
  • Desabilite a criação anônima de contas se não forem necessárias
  • Faça backups periódicos do banco e do diretório de imagens

Considerações sobre SELinux

Se o SELinux estiver ativo no CentOS 7, você precisará garantir o contexto correto nos diretórios web. Exemplos de comandos úteis:

# aplicar contexto para permitir escrita por httpd
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/mediawiki(/.*)?'
restorecon -Rv /var/www/mediawiki

Se os comandos semanage não estiverem disponíveis, instale policycoreutils-python com yum -y install policycoreutils-python

Resolução de problemas comum

  • 502 Bad Gateway após configurar php-fpm: verifique se php-fpm está rodando e se fastcgi_pass aponta para o socket correto (/run/php-fpm/php-fpm.sock) ou para o endereço TCP correto
  • Permissão negada em uploads: confirme dono e permissões em /var/www/mediawiki/images e outros diretórios de armazenamento
  • Erro de certificado: confirme paths em nginx para fullchain.pem e privkey.pem e que os arquivos existem em /etc/letsencrypt/live/seu-dominio

Diagnóstico rápido

systemctl status php-fpm nginx mariadb
tail -n 200 /var/log/nginx/error.log
tail -n 200 /var/log/php-fpm/www-error.log

Testes e critérios de aceitação

  1. Página principal do MediaWiki carrega via HTTPS sem erros de certificado
  2. Login do admin funciona e criação de página funciona
  3. Upload de imagem funciona (testar com uma imagem pequena)
  4. As páginas estáticas (css/js) são servidas sem 404
  5. Monitorar logs por 24 horas para identificar erros 5xx

Checklist por função

  • Administrador de sistema

    • Repositórios necessários instalados (EPEL, webtatic ou similares)
    • Serviços nginx, php-fpm, mariadb rodando e habilitados
    • Certificado Letsencrypt válido e renovação configurada
    • Firewall configurado para 80/443
  • Administrador do Wiki

    • Conta admin criada e testada
    • LocalSettings.php testado em /var/www/mediawiki
    • Backup inicial do banco e arquivos realizado
  • Desenvolvedor

    • Composer instalado e dependências aplicadas
    • Extensões testadas em ambiente de staging

Como migrar para outra versão ou servidor (mini metodologia)

  1. Teste atualização do MediaWiki em um ambiente de staging com cópia do banco e arquivos
  2. Verifique compatibilidade de extensões e temas
  3. Faça backups completos antes de qualquer migração
  4. Sincronize uploads e arquivos de configuração
  5. Planeje janela de manutenção para a troca em produção

Tabela de verificação rápida (SOP) antes de colocar em produção

  • certificado HTTPS válido e renovação automática configurada
  • firewall e SELinux ajustados conforme política
  • permissões e dono dos diretórios web configurados para nginx
  • backup do banco efetuado e teste de restauração validado

Considerações de privacidade

  • Se armazenar dados pessoais, garanta políticas de retenção e proteção conforme legislação aplicável
  • Proteja endpoints administrativos com autenticação forte e, se possível, com 2FA

Notas finais

A instalação do MediaWiki em CentOS 7 com Nginx e PHP-FPM é estável e adequada para ambientes internos e externos. Planeje atualizações do PHP e do próprio MediaWiki em ciclos regulares e teste extensões antes de aplicar em produção.

Resumo

  • Instale e configure Nginx, PHP-FPM e MariaDB
  • Baixe o MediaWiki e instale dependências via composer
  • Gere certificados Letsencrypt e configure Nginx para HTTPS
  • Faça a instalação via web, suba LocalSettings.php e ajuste permissões

Referência

Autor
Edição

Materiais semelhantes

Baixar e usar YouTube TV na Índia
Tutoriais

Baixar e usar YouTube TV na Índia

Ativar módulos de protocolo e clientes WiKID
Autenticação

Ativar módulos de protocolo e clientes WiKID

Corrigir travamento do driver de vídeo no Windows
Suporte Técnico

Corrigir travamento do driver de vídeo no Windows

Instalar Apache Cassandra no CentOS 8
Banco de Dados

Instalar Apache Cassandra no CentOS 8

Ethernet mais lento que o Wi‑Fi? Causas e soluções
Redes

Ethernet mais lento que o Wi‑Fi? Causas e soluções

Modelos no Google Docs sem pagar
Produtividade

Modelos no Google Docs sem pagar