DokuWiki

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.

Instalação

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

Configuração Nginx

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.