Гид по технологиям

Установка DokuWiki на Debian 10 (buster)

5 min read Серверы Обновлено 07 Nov 2025
Установка DokuWiki на Debian 10
Установка DokuWiki на Debian 10

DokuWiki — лёгкое в использовании open-source вики‑решение без необходимости в базе данных. Оно хорошо подходит для документации, внутренней вики и простой коллективной работы. В одной строке: DokuWiki — вики без СУБД, с удобным синтаксисом и множеством плагинов.

Требования

Убедитесь, что сервер соответствует минимальным требованиям:

  • Веб‑сервер с поддержкой PHP (NGINX, Apache, Lighttpd и т.д.).
  • PHP 5.6 или новее; рекомендуются современные версии PHP 7.x или 8.x.
  • Доступ к системному пользователю с sudo.

Важно: в статье используется Debian 10 (buster) и PHP 7.3 в примерах. На новых системах замените версии пакетов на актуальные.

Предварительные работы

  • Debian 10 (buster)
  • Нератовый пользователь с sudo

Проверьте версию Debian:

lsb_release -ds
# Debian GNU/Linux 10 (buster)

Настройте часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты системы:

sudo apt update && sudo apt upgrade -y

Установите полезные утилиты:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

Шаг 1 — Установка PHP и расширений

Установите PHP и необходимые расширения (пример для PHP 7.3):

sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-gd php7.3-xml php7.3-zip

Проверьте загруженные модули PHP:

php -m

Проверьте версию PHP:

php --version

Сервис php7.3-fpm обычно запускается и включается автоматически. Если вы используете другую версию PHP (7.4/8.0+), замените в следующих конфигурациях пути к сокету на соответствующие.

Шаг 2 — Получение сертификатов через acme.sh (опционально)

HTTPS не обязателен, но настоятельно рекомендуется. acme.sh — лёгкий клиент для получения сертификатов Let’s Encrypt без тяжёлых зависимостей.

Скачайте и установите acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail you@example.com
source ~/.bashrc
cd ~

Проверьте версию:

acme.sh --version
# пример: v2.x.x

Получите RSA и ECDSA сертификаты в режиме standalone:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA (ECC)
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестирования используйте флаг –staging.

Сертификаты будут находиться в домашней директории пользователя (например, /home/username/example.com и /home/username/example.com_ecc).

Создайте каталог для копий сертификатов и установите их туда:

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите сертификаты и добавьте команду перезагрузки Nginx в –reloadcmd:

# RSA
acme.sh --install-cert -d example.com \
  --cert-file /etc/letsencrypt/example.com/cert.pem \
  --key-file /etc/letsencrypt/example.com/private.key \
  --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
  --reloadcmd "sudo systemctl reload nginx.service"

# ECDSA
acme.sh --install-cert -d example.com --ecc \
  --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
  --key-file /etc/letsencrypt/example.com_ecc/private.key \
  --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
  --reloadcmd "sudo systemctl reload nginx.service"

acme.sh автоматически обновляет сертификаты; по умолчанию задания настроены на периодическое обновление.

Завершите работу под root и вернитесь к обычному пользователю:

exit

Важно: если на сервере уже запущен веб‑сервер, остановите его или используйте веб‑root метод вместо standalone.

Шаг 3 — Установка и настройка Nginx

DokuWiki работает на любом сервере с поддержкой PHP. В примере — Nginx.

Установите Nginx:

sudo apt install -y nginx

Проверьте версию:

sudo nginx -v

Создайте конфигурацию сайта:

sudo vim /etc/nginx/sites-available/dokuwiki.conf

Вставьте (пример):

server {

    listen [::]:443 ssl;
    listen 443 ssl;
    listen [::]:80;
    listen 80;
    # RSA
    ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/example.com/private.key;
    # ECC
    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

    server_name wiki.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;

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

    location ^~ /conf/ { return 403; }
    location ^~ /data/ { return 403; }
    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:/var/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Активируйте сайт и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/dokuwiki.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx.service

Если вы используете другую версию PHP, укажите соответствующий сокет (например, php7.4-fpm.sock).

Примечание: для публичного доступа не забудьте открыть порты 80/443 в брандмауэре (ufw/iptables/Cloud security group).

Шаг 4 — Установка DokuWiki

Создайте корень сайта и загрузите пакет:

sudo mkdir -p /var/www/dokuwiki
cd /var/www/dokuwiki
sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
sudo tar xvf dokuwiki-stable.tgz
sudo rm dokuwiki-stable.tgz

Инсталлятор распакует папку с версией, например dokuwiki-2018-04-22b. Безопасный вариант для перемещения файлов из распакованной директории:

# если распаковка создала dokuwiki-YYYY-MM-DDX
sudo mv dokuwiki-*/* .
sudo mv dokuwiki-*/.* . 2>/dev/null || true
sudo rmdir dokuwiki-*/

Установите владельца web‑файлов в www-data (для Debian/NGINX):

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

Перезапустите php-fpm:

sudo systemctl restart php7.3-fpm.service

Откройте в браузере URL инсталлятора: http://wiki.example.com/install.php и следуйте мастеру установки. Он проверит PHP, права доступа и предложит создать администратора.

После завершения удаления установщика выполните:

sudo rm /var/www/dokuwiki/install.php

Шаг 5 — Доступ к веб‑интерфейсу и начальная настройка

Откройте в браузере http://example.com/install.php (или ваш домен). Пройдите через формы: имя суперпользователя, email, пароль и основные параметры.

Страница установки DokuWiki

Установка имени пользователя и пароля

DokuWiki успешно установлен

Страница входа в систему

Приветствие DokuWiki

ALT для изображений обновлены: каждый превью показывает соответствующий шаг установки и страницу интерфейса DokuWiki.

Роли и чеклисты

Администратор (развёртывание)

  • Обновить систему и установить зависимости.
  • Настроить PHP-FPM и Nginx.
  • Получить SSL и настроить автоматическое обновление сертификатов.
  • Проверить права файлов и удалить install.php.
  • Создать резервную стратегию и план отката.

Контент‑редактор

  • Настроить шаблон и права доступа через ACL.
  • Установить и протестировать нужные плагины.
  • Настроить структуру namespaces и шаблоны страниц.

Мини‑методология обновлений и резервного копирования

  1. Создайте бэкап каталога /var/www/dokuwiki и /etc/letsencrypt.
  2. Тестируйте обновления на staging‑инстансе.
  3. Отключите запись (maintenance page) при обновлении ядра/плагинов.
  4. Примените обновление, проверьте логи и функциональность.
  5. Откат при необходимости из бэкапа.

Пример команды бэкапа:

sudo tar czf /root/dokuwiki-backup-$(date +%F).tgz /var/www/dokuwiki /etc/letsencrypt

Безопасность и жёсткое укрепление

  • Убедитесь, что директории /conf и /data доступны только серверу (Nginx возвращает 403).
  • Отключите неиспользуемые плагины и обновляйте их.
  • Настройте автоматические обновления безопасности для ОС.
  • Для дополнительной защиты используйте AppArmor или firewall (ufw) и ограничьте доступ к административным страницам по IP, если возможно.

Пример ufw правил:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Частые проблемы и решения

  • Ошибка 502/504 при обращении к PHP: проверьте путь к fastcgi_pass и что php‑fpm запущен.
  • Проблемы с правами на файлы: chown -R www-data:www-data /var/www/dokuwiki.
  • SSL не применяется: проверьте пути к сертификатам и перезагрузите Nginx.
  • Картинки/медиа не загружаются: проверьте права на data и конфигурацию location для _media.

Альтернативы и когда этот подход не подходит

  • Если вам нужна полноценная СУБД и сложные разрешения — рассмотрите MediaWiki.
  • Для очень простой одностраничной документации можно использовать статические генераторы (Hugo, MkDocs).
  • На серверах с ограниченными правами лучше использовать готовые контейнерные образы (Docker) вместо ручной инсталляции.

Критерии приёмки

  • Веб‑страница DokuWiki отвечает по HTTPS и/или HTTP.
  • Установлен и создан администраторский аккаунт.
  • Сервер отвечает на основные страницы и логин работает.
  • install.php удалён.

Короткий глоссарий

  • PHP-FPM — FastCGI Process Manager для PHP.
  • acme.sh — лёгкий клиент для получения сертификатов Let’s Encrypt.
  • Nginx — веб‑сервер, используемый в примере.

Рекомендации по плагинам и управлению

  • Сначала установите минимальный набор плагинов: ACL Manager, Metadata, Breadcrumbs.
  • Тестируйте каждый плагин в отдельной среде перед внедрением в прод.
  • Документируйте используемые плагины и их версии.

Заключение

Вы развернули DokuWiki на Debian 10 с PHP‑FPM и Nginx, получили TLS‑сертификаты и настроили базовую безопасность. После установки уделите время настройке ACL, регулярным бэкапам и обновлениям.

Важно: регулярно проверяйте логи (Nginx, PHP‑FPM) и держите систему и плагины в актуальном состоянии.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти