Установка DokuWiki на Debian 10 (buster)
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, пароль и основные параметры.





ALT для изображений обновлены: каждый превью показывает соответствующий шаг установки и страницу интерфейса DokuWiki.
Роли и чеклисты
Администратор (развёртывание)
- Обновить систему и установить зависимости.
- Настроить PHP-FPM и Nginx.
- Получить SSL и настроить автоматическое обновление сертификатов.
- Проверить права файлов и удалить install.php.
- Создать резервную стратегию и план отката.
Контент‑редактор
- Настроить шаблон и права доступа через ACL.
- Установить и протестировать нужные плагины.
- Настроить структуру namespaces и шаблоны страниц.
Мини‑методология обновлений и резервного копирования
- Создайте бэкап каталога /var/www/dokuwiki и /etc/letsencrypt.
- Тестируйте обновления на staging‑инстансе.
- Отключите запись (maintenance page) при обновлении ядра/плагинов.
- Примените обновление, проверьте логи и функциональность.
- Откат при необходимости из бэкапа.
Пример команды бэкапа:
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) и держите систему и плагины в актуальном состоянии.
Ссылки
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить