Содержание

Установка DokuWiki на Debian 12

Официальная инструкция по установке

https://www.dokuwiki.org/ru:install

Системные требования

https://www.dokuwiki.org/ru:requirements

Установка

Установить пакеты

apt-get install nginx php8.2-fpm php8.2-gd php8.2-xml

Скачать архив с DokuWiki

https://download.dokuwiki.org/

Распаковать архив

tar -xzvf dokuwiki-*.tgz

Скопировать архив в /var/www/ или другое место

cp -R dokuwiki /var/www/

Изменить владельца файлов для веб-сервера

chown -R www-data:www-data /var/www/dokuwiki/

Настройка Nginx

Создать конфигурацию сайта в ngnix

nano /etc/nginx/conf.d/dokuwiki.conf

Добавить и отредактировать настройку

server {

    listen 80;
    server_name localhost;
    root /var/www/dokuwiki;
    index index.html index.htm index.php doku.php;
    client_max_body_size 15M;
    client_body_buffer_size 128K;

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

    location ~ /(conf|bin|inc)/ {
        deny all;
    }

    location /data/ {
        internal;
    }

    location ~ /\.ht {
        deny all;
    }

    location @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 last;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Проверить добавленную конфигурацию

nginx -t

Применить конфигурацию если все в порядке

nginx -s reload

Настройка HTTPS

SSL Let’s Encrypt SSL/TLS

apt-get install certbot python3-certbot-nginx

Регистрация и выпуск сертификата, почту и домен заменить на свой

certbot register --email example@example.com
certbot certonly --nginx -d example.com -d www.example.com

Сертификаты будут лежать в каталогах

Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/example.com/privkey.pem

Отредактировать настройку nginx

nano /etc/nginx/conf.d/dokuwiki.conf
server {

    listen 80;
    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;
    root /var/www/dokuwiki;
    index index.html index.htm index.php doku.php;
    client_max_body_size 15M;
    client_body_buffer_size 128K;

    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    }

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

    location ~ /(conf|bin|inc)/ {
        deny all;
    }

    location /data/ {
        internal;
    }

    location ~ /\.ht {
        deny all;
    }

    location @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 last;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Завершение

Перейти на сайт для настройки

http://localhost/install.php

Инструкция по настройке

https://www.dokuwiki.org/ru:installer

После завершения настройки, можно удалить скрипт install.php

rm /var/www/dokuwiki/install.php