Установка и настройка DokuWiki на Debian 9.2
DokuWiki — лёгкая PHP-вики без SQL, отлично подходит для документации. В этой пошаговой инструкции показано, как подготовить Debian 9.2, установить Apache и PHP, настроить SSL и безопасность, развернуть последнюю стабильную версию DokuWiki, настроить права и .htaccess, а также выполнить базовую отладку и резервное копирование.
В этом руководстве описан процесс установки и настройки DokuWiki на Debian 9.2. DokuWiki — это свободная open source вики-платформа на PHP, не требующая реляционной базы данных: все данные хранятся в простых текстовых файлах. Она проста, гибка и удобна для коллективной документации.
Кому пригодится это руководство:
- Сисадминам и инженерам по DevOps, которые разворачивают внутренние справочные порталы.
- Командам документации, которым нужен приватный вики с простым бэкендом.
- Тем, кто хочет лёгкую альтернативу более тяжёлым CMS.
Важно: все команды в примерах выполняются от имени пользователя с sudo-привилегиями или root.
Ключевые варианты использования (intent)
- Установка DokuWiki на Debian 9.2
- Настройка Apache+PHP для DokuWiki
- Включение HTTPS и редиректов
- Базовая безопасность и резервное копирование
Требования
- Минимальная установка Debian 9 на физическом сервере или VPS.
- Права root или sudo.
- Статический IP или корректная настройка сети.
- Домен (рекомендуется) либо доступ по IP.
- При использовании почтовых функций — доступ к SMTP/IMAP-серверу.
Краткое определение терминов
- DokuWiki — вики-платформа на PHP, хранящая данные в текстовых файлах.
- ACL — контроль доступа (permissions для страниц/групп).
- OPCache — кеширование байткода PHP для ускорения выполнения.
Что будет показано
- Подготовка Debian (обновление, утилиты, hostname)
- Установка ImageMagick, Apache, PHP и модулей
- Настройка брандмауэра (UFW / iptables)
- Включение модулей Apache и SSL
- Настройка php.ini и OPCache
- Установка DokuWiki и права доступа
- Настройка .htaccess и редиректов на HTTPS
- Рекомендации по безопасности, резервному копированию и эксплуатации
1. Подготовка системы
Обновите списки пакетов и саму систему:
apt updateapt upgradeУстановите базовые утилиты:
apt install wget bash-completion zip unzip curlУстановите hostname (замените на ваш FQDN):
hostnamectl set-hostname www.mywiki.comПроверьте hostname и файлы хостов:
hostnamectlcat /etc/hostnamehostname -shostname -fУстановите ImageMagick — используется для создания миниатюр изображений:
apt install imagemagickПерезагрузите сервер, чтобы применить изменения ядра и hostname:
init 6Важно: перед перезагрузкой убедитесь, что у вас есть доступ по IP/консоли.
2. Установка Apache и PHP
DokuWiki — это PHP-приложение, поэтому нужен HTTP-сервер и PHP-интерпретатор. Установите Apache и необходимые модули PHP 7.0:
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-curl php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-intl php-imagick php7.0-xmlПроверьте, что Apache слушает порт 80:
netstat -tlpnЕсли netstat отсутствует, установите net-tools:
apt install net-toolsАльтернатива (предпочтительна в современных системах):
ss -tulpnЕсли у вас включён брандмауэр UFW, разрешите HTTP:
ufw allow WWWили
ufw allow 80/tcpЕсли используете iptables и netfilter-persistent:
apt-get install -y iptables-persistentiptables -I INPUT -p tcp --destination-port 80 -j ACCEPTiptables -I INPUT -p tcp --destination-port 22 -j ACCEPTnetfilter-persistent savesystemctl restart netfilter-persistentsystemctl enable netfilter-persistent.service3. Включение модулей Apache и проверка
Включите модуль rewrite (необходим для красивых URL и .htaccess):
a2enmod rewriteПерезапустите Apache:
systemctl restart apache2Откройте в браузере http://your_domain.tld или IP-адрес сервера. По умолчанию видна страница Apache.

ALT: Страница по умолчанию Apache на Debian с приветственным текстом
4. Включение SSL в Apache (самоподписанный сертификат)
Для HTTPS включите SSL-модуль и дефолтный SSL-сайт:
a2enmod ssla2ensite default-ssl.confОткройте файл SSL-конфигурации и включите AllowOverride, чтобы .htaccess работал:
nano /etc/apache2/sites-enabled/default-ssl.confДобавьте внутри конфигурации после DocumentRoot:
Options +FollowSymlinks
AllowOverride All
Require all granted
Убедитесь, что VirtualHost слушает 443:

ALT: Фрагмент конфигурации Apache для SSL с включённым AllowOverride
Также откройте основной виртуальный хост и добавьте те же правила:
nano /etc/apache2/sites-enabled/000-default.confВставьте тот же блок
Перезапустите Apache:
systemctl restart apache2Зайдите на https://yourdomain.tld — браузер покажет предупреждение о самоподписанном сертификате.

ALT: Предупреждение браузера о самоподписанном сертификате
Примите предупреждение, чтобы продолжить.

ALT: Пример продолжения к самоподписанному сайту в браузере
Если UFW блокирует HTTPS, разрешите порт 443:
ufw allow 'WWW Full'или
ufw allow 443/tcpДля iptables:
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPTnetfilter-persistent savesystemctl restart netfilter-persistent5. Настройка PHP
Создайте резервную копию php.ini и откройте файл для редактирования:
cp /etc/php/7.0/apache2/php.ini{,.backup}nano /etc/php/7.0/apache2/php.iniНайдите и установите следующие параметры (пример):
file_uploads = On
default_charset = UTF-8
memory_limit = 128M
max_execution_time = 300
upload_max_filesize = 100M
short_open_tag = Off
output_buffering = Off
zlib.output_compression = Off
implicit_flush = Off
max_input_time = 60
max_input_vars = 10000
error_reporting = E_ALL & ~E_NOTICE
display_startup_errors = Off
log_errors = On
variables_order = "EGPCS"
register_argc_argv = Off
session.use_cookies = 1
date.timezone = Europe/LondonИзмените date.timezone на ваш часовой пояс согласно списку PHP: http://php.net/manual/en/timezones.php
Если хотите ускорить сайт — включите OPCache, добавив в конец php.ini:
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Перезапустите Apache:
systemctl restart apache2Проверьте настройки PHP через phpinfo:
echo ''| tee /var/www/html/info.phpОткройте https://domain.tld/info.php и проверьте date.timezone.

ALT: Страница phpinfo с отображением timezone и загруженных модулей
Удалите info.php после проверки.
6. Скачивание и установка DokuWiki
Перейдите на страницу загрузки DokuWiki и скачайте стабильный архив. Команда wget:
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgzРаспакуйте архив и очистите веб-документ рут от дефолтного index и временных файлов:
tar xzvf dokuwiki-stable.tgzlsrm /var/www/html/index.htmlrm /var/www/html/info.phpСкопируйте файлы DokuWiki в веб-корень. Название каталога может отличаться по версии — проверьте текущий каталог после распаковки:
ls dokuwiki-*/Например:
cp -rf dokuwiki-2017-02-19e/* /var/www/html/Копируем файл .htaccess:
cp dokuwiki-2017-02-19e/.htaccess.dist /var/www/html/Установите владельца www-data для файлов:
chown -R www-data:www-data /var/www/html/Проверьте права:
ls -al /var/www/html/7. Веб-инсталлятор DokuWiki
Откройте установочный скрипт в браузере:
https://yourdomain.tld/install.php
На первом экране заполните: имя вики, отметьте Enable ACL, задайте суперпользователя (логин, полное имя, email) и надёжный пароль.
Выберите политику ACL: Public Wiki (чтение для всех, запись и загрузка для зарегистрированных) — при желании отключите саморегистрацию посетителей. Выберите лицензию контента и отключите отправку телеметрии.
Нажмите Save.

ALT: Экран установщика DokuWiki с настройками имени вики и суперпользователя
После успешного сохранения установщик предложит удалить install.php.

ALT: Сообщение установщика о том, что конфигурация успешно сохранена
Удалите установщик и скорректируйте права, чтобы защитить файлы конфигурации:
rm -rf /var/www/html/install.phpchown -R root:root /var/www/html/chown -R www-data:root /var/www/html/data/chown -R www-data:root /var/www/html/lib/plugins/chown -R www-data:root /var/www/html/lib/tpl/chown -R www-data:root /var/www/html/conf/local.php*chown -R www-data:root /var/www/html/conf/users.auth.phpchown -R www-data:root /var/www/html/conf/acl.auth.phpchown -R www-data:root /var/www/html/conf/plugins.local.php*Откройте сайт в браузере:

ALT: Главная страница DokuWiki после установки
Войдите в панель управления через ссылку Log In, используя учётные данные суперпользователя.

ALT: Экран входа в DokuWiki
Администрирование доступно по кнопке Admin — можно настраивать пользователей, права (ACL), плагины и шаблон.

ALT: Раздел администратора DokuWiki с управлением расширениями и шаблонами
8. Настройка .htaccess: PHP и редиректы на HTTPS
Скопируйте .htaccess.dist в .htaccess:
cp /var/www/html/.htaccess.dist /var/www/html/.htaccessОткройте .htaccess:
nano /var/www/html/.htaccessВ конце можно изменить настройки PHP:
# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100MВставьте правила редиректа на HTTPS для всех страниц:
# Redirect to HTTPS for all pages including the main web page
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
Options -Indexes
Если нужно редиректить на HTTPS только страницы входа и профиля (главная остаётся HTTP), используйте альтернативный блок:
# Switch to HTTPS on login, profile and admin actions
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{QUERY_STRING} do=(log|profile|admin)
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,QSA,L,NE]Примечание: для корректной работы редиректов убедитесь, что в VirtualHost настроены правильные ServerName/ServerAlias.
9. Рекомендации по безопасности и эксплуатация
Общие меры безопасности:
- Получите доверенный SSL-сертификат (Let’s Encrypt поддерживается и бесплатен). Самоподписанные сертификаты ухудшают доверие и SEO.
- Регулярно обновляйте Debian и пакеты: apt update && apt upgrade.
- Ограничьте регистрацию пользователей, если вики предназначена для внутреннего использования.
- Настройте автоматическое резервное копирование конфигурации и каталога data (см. раздел резервного копирования).
- Используйте fail2ban для защиты SSH и панелей администратора.
Поддержка Let’s Encrypt (короткий пример с certbot):
apt install certbot python-certbot-apachecertbot --apache -d yourdomain.tld -d www.yourdomain.tldЭто автоматически получит и установит сертификат, а также настроит редиректы HTTPS.
Права файлов:
- /var/www/html/conf — доступен только для чтения веб-сервером, конфигурация должна быть защищена.
- /var/www/html/data — веб-сервер должен иметь права на запись (хранение страниц и вложений).
Резервное копирование — рекомендуемые объекты:
- /var/www/html/data — все страницы и вложения
- /var/www/html/conf — конфигурации (local.php, users.auth.php, acl.auth.php)
- /var/www/html/lib/plugins — установленные плагины
Пример простого скрипта резервного копирования (выполнять под root или пользователем с доступом):
#!/bin/bash
BACKUP_DIR=/srv/backups/dokuwiki
TIMESTAMP=$(date +"%F-%H%M")
mkdir -p "$BACKUP_DIR"
cd /var/www/html
tar czf "$BACKUP_DIR/dokuwiki-data-$TIMESTAMP.tar.gz" data conf lib/plugins
find "$BACKUP_DIR" -type f -mtime +30 -deleteКритерии приёмки (что проверить после установки):
- Доступность сайта по HTTPS без ошибок (после установки доверенного сертификата).
- Вход в админ-панель суперпользователем.
- Возможность создавать новые страницы и загружать файлы.
- Корректная работа миниатюр изображений (ImageMagick).
- Наличие резервных архивов.
10. Отладка — частые проблемы и решения
- Ошибка 500 при обращении к установщику или после установки
- Проверьте логи Apache: /var/log/apache2/error.log
- Восстановите базовые права и владельцев (www-data для web-директории): chown -R www-data:www-data /var/www/html/
- Проверьте директивы php_value в .htaccess — некоторые настройки в глобальной конфигурации PHP запрещены в .htaccess.
- Файлы не загружаются или изображения не миниатюризируются
- Убедитесь, что ImageMagick установлен и PHP-модуль imagick включён.
- Проверьте права на /var/www/html/data/media и /var/www/html/data/pages.
- PHP показывает неправильный timezone
- Проверьте значение date.timezone в /etc/php/7.0/apache2/php.ini и перезапустите Apache.
- Rewrite / ЧПУ не работают
- Убедитесь, что модуль rewrite включён: a2enmod rewrite и AllowOverride All в конфигурации виртуального хоста.
- Проблемы с правами и редактированием файлов конфигурации
- Защитите конфиг-файлы: chown root:root /var/www/html/conf/local.php и chown www-data:root /var/www/html/conf/. Если сайт должен записывать конфиг — регулируйте права аккуратно.
11. Модели зрелости и расширения (когда делать что)
- Начальный уровень: одна публичная вики, базовая ОС и регулярные обновления.
- Средний уровень: SSL от Let’s Encrypt, регулярные резервные копии, ограниченная регистрация, базовые правила брандмауэра.
- Продвинутый уровень: централизованное логирование, мониторинг (Prometheus/ELK), CI для экспорта/импорта страниц, настройка бэкенда хранения (например, внешняя файловая система), политики ретенции резервных копий.
12. Переход с другой вики / миграция данных — краткие советы
- Экспортируйте страницы из старой системы в формат, совместимый с DokuWiki (Markdown/Plain text) и адаптируйте синтаксис.
- Проверьте плагины импорта/конвертации в плагин-репозитории DokuWiki.
- Планируйте окно миграции и проверьте резервные копии исходной системы.
13. Короткое руководство по обновлению DokuWiki
- Скачайте новую версию и распакуйте на временную директорию.
- Копируйте только изменённые файлы или следуйте официальной инструкции по обновлению.
- Сохраните custom-темы и плагины отдельно.
- Перед обновлением сделайте полную резервную копию /var/www/html/data и /var/www/html/conf.
14. Чек-листы по ролям
Администратор сервера:
- Установить и обновлять Debian и пакеты.
- Настроить брандмауэр, Fail2Ban, SSL.
- Проверять логи и доступность веб-сервиса.
Администратор вики:
- Управлять пользователями и ACL.
- Устанавливать и обновлять плагины.
- Контролировать структуру страниц и шаблонов.
Разработчик/документация:
- Следить за форматированием и лицензией контента.
- Проводить ревью ключевых страниц.
15. Тесты и критерии приёмки
- Создать тестовую страницу, сохранить, отредактировать, проверить историю.
- Загрузить тестовый файл (PDF/изображение) и открыть его.
- Выполнить вход/выход под суперпользователем и под тестовым пользователем.
- Проверить корректность редиректа HTTP→HTTPS (если настроен).
16. Заключение
Вы успешно установили DokuWiki на Debian 9.2: подготовили систему, установили Apache и PHP, настроили SSL и права, развернули DokuWiki, выполнили базовую настройку безопасности и резервного копирования. Для продуктивной эксплуатации рекомендуется получить доверенный SSL-сертификат (Let’s Encrypt), настроить регулярные резервные копии и мониторинг доступности.
Важно: храните резервные копии конфигурации и данных отдельно от основного сервера и проверяйте восстановление по расписанию.
Краткие ссылки и полезные ресурсы:
- Официальный сайт DokuWiki: https://www.dokuwiki.org/dokuwiki
- Руководство по timezones PHP: http://php.net/manual/en/timezones.php
- Certbot (Let’s Encrypt): https://certbot.eff.org/
Конец руководства.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента