DokuWiki é um simples programa de wiki, semelhante à MediaWiki. Diferente do MediaWiki, ele utiliza arquivos de texto para armazenar seu conteúdo, ao invés de bancos de dados, tornando-o mais simples de configurar. É uma boa escolha caso você queira um software de wiki simples, sem todas as complexidades do MediaWiki.
Embora DokuWiki esteja disponível nos repositórios do Debian, está desatualizado e utiliza uma estrutura de diretórios diferentes do padrão, o que pode causa incompatibiliade com alguns plugins. Então, vamos instalá-lo por uma tarball.
Primeiro, instale as dependências:
apt install nginx php php-fpm php-xml php-mbstring php-zip php-intl php-gd wget
Agora, baixe a tarball com wget
, extraia o arquivo com tar
, remove a tarball com rm
, mova a pasta para o lugar certo com mv
, e configure as devidas permissões com chown
.
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xzvf dokuwiki-stable.tgz
rm dokuwiki-stable.tgz
mv dokuwiki-* /var/www/dokuwiki
chown -R www-data:www-data /var/www/dokuwiki
Crie um arquvio chamado /etc/nginx/sites-available/dokuwiki
com seu editor de texto favorito e adicione as seguintes linhas, que foram baseadas na configuração daqui. Lembre-se de trocar wiki.exemplo.org pelo nome do seu site ou subdomínio. Preste atenção também na linha que diz client_max_body_size
, que determina o tamnho máximo de arquivo permitido para uploads, e a primeira linha que diz location
, pois ela deve estar comentada durante a instalação, e descomentada quando a instalação for finalizada.
server {
listen 80;
listen [::]:80;
server_name wiki.exemplo.org;
# O tamanho maximo permitido para uploads e 4MB - mude conforme necessario
client_max_body_size 4M;
client_body_buffer_size 128k;
root /var/www/dokuwiki;
index doku.php;
#Lembre-se de manter a linha abaixo comentada durante a instalacao, e descomenta-la quando finalizar.
#location ~ /(conf/|bin/|inc/|vendor/|install.php) { deny all; }
#Suporte para X-Accel-Redirect
location ~ ^/data/ { internal ; }
location ~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$ {
expires 365d;
}
location / { try_files $uri $uri/ @dokuwiki; }
location @dokuwiki {
# remove "doku.php/" dos URLs se voce configurou a opcao userwrite para .htaccess na pagina de configuracao do dokuwiki
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
rewrite ^/(.*) /doku.php?id=$1&$args last;
}
location ~ \.php$ {
try_files $uri $uri/ /doku.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
# fastcgi_pass unix:/var/run/php5-fpm.sock; #versao antiga de php
}
}
Habilite o site:
ln -s /etc/nginx/sites-available/dokuwiki /etc/nginx/sites-enabled/
Gere um certificado SSL para o subdomínio:
certbot --nginx
Reinicie o nginx e php para que as mudanças tomem efeito:
systemctl restart nginx && systemctl restart php8.2-fpm
Finalmente, acesse wiki.exemplo.org/install.php para finalizar a instalação. Caso queira uma interface em português, vá na opção "Choose your language" e selecione "pt-br". Leia a documentação para entender o que cada um desses itens significa.
Terminando isso, lembre-se de descomentar a linha contendo location
no seu arquivo de configuração nginx. Abra /etc/nginx/sites-available/dokuwiki
com um editor de texto e remova o "#" no começo da linha:
#Lembre-se de manter a linha abaixo comentada durante a instalacao, e descomenta-la quando finalizar
location ~ /(conf/|bin/|inc/|vendor/|install.php) { deny all; }
Reinicine nginx mais uma vez para as mudanças ocorrerem:
systemctl restart nginx
Sua wiki agora está online! Divirta-se, e happy hacking.