MediaWiki

MediaWiki é um programa de wiki que permite colaboração e compartilhamento de conhecimento entre vários usuários. É usado pela Wikipédia e várious outros sites. É uma boa escolha para uma criar uma repositório de conhecimento onde várias pessoas possam ler e colaborar para torná-lo ainda melhor.

Instalação

Para instalar MediaWiki, vamos primeiro instalar suas dependências e adicionalmente o programa wget para fazer o download do MediaWiki em si. Conecte-se ao seu servidor e rode o seguinte comando:

apt update
apt upgrade
apt install imagemagick mariadb-server php php-apcu php-cli php-curl php-fpm php-intl php-json php-mbstring php-mysql php-xml wget

Agora, vamos baixar o MediaWiki.

wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz

Vamos extrair o arquivo usando tar, renomear a pasta extraída com mv e configurar suas devidas permissões com chown.

tar -xzf mediawiki-1.41.0.tar.gz -C /var/www/
mv /var/www/mediawiki-1.41.0 /var/www/mediawiki
chown -R www-data:www-data /var/www/mediawiki/

Agora vamos criar um banco de dados, utilizando MariaDB/MySQL. Vamos criar um banco de dados chamado my_wiki e um usuário chamado wikiuser. Você pode usar os nomes que quiser, mas lembre deles pois serão necessários depois.

mysql -u root -p
Enter Password: (digite sua senha do usuário root do mysql, caso não tenha configurado uma senha, basta apertar enter)
CREATE DATABASE my_wiki;
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'senha-para-wikiuser';
GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;
quit

Agora, vamos criar um arquivo de configuração para nginx.

nano /etc/nginx/sites-available/mediawiki

Copie e cole as seguintes linhas dentro deste arquivo, baseado nas configurações daqui. Não esqueça de substituir wiki.exemplo.org pelo subdomínio que você quer usar.

server {
	listen 80;
	listen [::]:80;
	server_name wiki.exemplo.org;
	root /var/www/mediawiki;
	index index.php;

	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;
	}

	location /rest.php {
	try_files $uri $uri/ /rest.php?$args;
	}

	location ~ \.php$ {
	include fastcgi_params;
	fastcgi_pass unix:/var/run/php/php-fpm.sock;
	fastcgi_param SCRIPT_FILENAME $request_filename;
	}

	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/ {
	deny all;
	}

	location /dumps {
	root /var/www/mediawiki/local;
	autoindex on;
	}
}

Salve o arquivo e habilite-o.

ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/
systemctl restart nginx

Gere um certificado SSL para o subdomínio.

certbot --nginx

Você pode agora acessar wiki.exemplo.org e continuar a instalação por lá. A Primeira tela vai te pedir para escolher uma linguagem, escolha "pt-br" a menos que queira outra. Ao chegar na seção "Conectar ao banco de dados", aonde pede o nome da base de dados, digite o nome do banco de dados que você criou acima, no meu caso, my_wiki. Na parte "Conta de usuário para instalação", escreva o nome e senha para o usuário que você criou acima, no meu caso, o usuário é wikiuser. Sua tela vai ficar mais ou menos assim.

Página de configuração de banco de dados preenchida com as informações acima

Após isso, siga as instruções na tela, clique em "ajuda" caso tenha dúvida. Ao final, clique em "Faça-me mais perguntas" caso queira configurar algumas coisas a mais, ou "Já estou aborrecido, apenas instale a wiki" para usar as configurações padrão.

Ao final dessa configuração, você irá baixar um arquivo chamado "LocalSettings.php". Este arquivo contém suas configurações, e deve ser enviado à sua pasta do MediaWiki em seu servidor. A forma mais fácil é com o comando scp. Por exemplo, caso você esteja usando Windows e salvou LocalSettings.php na pasta "Downloads", abra um Prompt de Comando rode esse comando, substituindo pelo seu domínio.

scp Downloads\LocalSettings.php root@exemplo.org:/var/www/mediawiki/

Configurações finais

Sua wiki agora está pronta! Os passos a seguir são opcionais, porém recomendo seguí-los para garantir a segurança e estabilidade da sua wiki.

Abra o arquivo /var/www/mediawiki/LocalSettings.php com um editor de texto e adicione uma nova linha ao final dele com o seguinte texto, seguindo a recomendação daqui.

$wgUsePathInfo = True;

Para garantir que ninguém possa acessar o script de configuração inicial da wiki e possívelmente reconfigurá-la sem seu conhecimento, vamos desabilitar seu acesso. Abra o arquivo /etc/nginx/sites-available/mediawiki e abaixo do bloco que diz location /dumps, adicione a seguinte linha em negrito. Seu arquivo deve ficar mais ou menos assim:

location /dumps {
	root /var/www/mediawiki/local;
	autoindex on;
	}
	
location = /mw-config/index.php {
	deny all;
	}
}

Salve o arquivo e reinicie o nginx para as configurações terem efeito.

systemctl restart nginx

A instalação está completa! Agora, basta ler a documentação para saber como utilizar sua wiki. Divirta-se!