Установка DokuWiki на Ubuntu 20.04 с Apache и сертификатом Let's Encrypt

DokuWiki — лёгкая PHP‑вики без базы данных. В этой пошаговой инструкции показано, как установить DokuWiki на Ubuntu 20.04, настроить Apache и получить бесплатный SSL от Let’s Encrypt с автоматическим обновлением сертификата. Приведены также варианты для Nginx и Docker, чек‑листы, рекомендации по безопасности и тесты приёмки.
О чём эта статья
- Быстрая установка и настройка DokuWiki на Apache.
- Получение и автоматическое обновление сертификата Let’s Encrypt.
- Проверки, меры безопасности и альтернативные подходы.
Ключевые требования
- Сервер с Ubuntu 20.04.
- Домен, указывающий на ваш сервер (A/AAAA запись).
- Пароль root или пользователь с sudo-привилегиями.
Обновите пакеты системы
Перед началом обновите пакеты до последних версий:
apt-get update -y
apt-get upgrade -yПерезагрузите систему, если обновления этого требуют.
Установка Apache и PHP
DokuWiki написан на PHP и работает через веб‑сервер. Установите Apache и необходимые PHP-модули:
apt-get install apache2 php php-gd php-xml php-json -yЗапустите Apache и включите автозапуск:
systemctl start apache2
systemctl enable apache2После установки переходите к загрузке DokuWiki.
Загрузка DokuWiki
Скачайте последнюю версию с официального сайта:
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-rc.tgzСоздайте каталог в корне веб-сервера и распакуйте архив:
mkdir /var/www/html/dokuwiki
tar -xvzf dokuwiki-rc.tgz -C /var/www/html/dokuwiki/ --strip-components=1Скопируйте пример .htaccess и выставьте права владельца:
cp /var/www/html/dokuwiki/.htaccess{.dist,}
chown -R www-data:www-data /var/www/html/dokuwikiВажно: DokuWiki хранит данные в файловой системе. Регулярно делайте резервные копии папки /var/www/html/dokuwiki/conf и /var/www/html/dokuwiki/data.
Настройка Apache для DokuWiki
Создайте виртуальный хост:
nano /etc/apache2/sites-available/dokuwiki.confВставьте конфигурацию (замените ServerName на ваш домен):
ServerName dokuwiki.linuxbuz.com
DocumentRoot /var/www/html/dokuwiki
AllowOverride All
Require all denied
Order allow,deny
Deny from all
ErrorLog /var/log/apache2/dokuwiki_error.log
CustomLog /var/log/apache2/dokuwiki_access.log combined
Сохраните файл, затем включите сайт и перезагрузите Apache:
a2ensite dokuwiki.conf
systemctl reload apache2Проверьте синтаксис конфигурации Apache при необходимости:
apachectl configtestЕсли появятся ошибки, исправьте их перед продолжением.
Получение SSL от Let’s Encrypt (Certbot)
Установите Certbot и плагин для Apache:
apt-get install certbot python3-certbot-apache -yЗапустите Certbot для вашего домена:
certbot --apache -d dokuwiki.linuxbuz.comВо время выполнения вам будет предложено ввести email, принять условия и выбрать перенаправление HTTP→HTTPS. В интерактивном режиме выберите перенаправление, если сайт готов к HTTPS.
Пример вывода Certbot показан в исходном руководстве; при успешном завершении Certbot создаст конфигурацию SSL для Apache и сохранит сертификаты в /etc/letsencrypt/live/your-domain/.
Important: сертификаты Let’s Encrypt действуют 90 дней. Настройте автоматическое обновление.
Доступ к установщику DokuWiki
Откройте в браузере:
https://dokuwiki.linuxbuz.com/install.php
Вы увидите страницу установки, где нужно заполнить:
- Wikiname — отображаемое имя вики.
- Admin username — логин администратора.
- Password — надежный пароль администратора.
- E‑mail — адрес для уведомлений.
- Политику прав доступа.
После сохранения вы попадёте на страницу завершения настройки и сможете перейти в новую вики.






Настройка автоматического обновления сертификата
Проверьте работу обновления в режиме dry‑run:
certbot renew --dry-runЧтобы автоматизировать обновление, добавьте cron‑задачу. Откройте crontab:
crontab -eДобавьте строку (пример — запуск каждый день в 10:00):
00 10 * * * root /usr/bin/certbot renew >/dev/null 2>&1Сохраните файл. Certbot сам перезапускает службы при необходимости.
Критерии приёмки
- Сайт доступен по HTTPS по адресу https://dokuwiki.linuxbuz.com
- Сертификат валиден и выдан Let’s Encrypt.
- Установщик DokuWiki завершён и вы можете войти под админом.
- Логи Apache не содержат критических ошибок после перезагрузки.
Частые проблемы и способы их решения
DNS не указывает на сервер — проверьте A/AAAA записи.
Порт 80/443 закрыт — откройте в брандмауэре (ufw/iptables):
- Для ufw: sudo ufw allow ‘Apache Full’
Certbot не может пройти проверку — временно отключите редиректы и проверьте доступ к http://your-domain/.well-known/acme-challenge/
Права файлов — директории и файлы веб‑контента должны принадлежать www-data.
Альтернативные подходы
- Nginx: используйте certbot-nginx и настройте server_name, root. Nginx даёт более тонкую настройку производительности.
- Docker: откажитесь от системных пакетов и запустите DokuWiki и/или Certbot в контейнерах. Удобно для изоляции и миграций.
- Reverse proxy: если вы используете балансировщик, настройте SSL на фронтенде, а backend оставьте за http.
Когда не применять DokuWiki
- Если вам нужна вики с реляционной БД и сложными расширениями (например, многие привязки к БД), лучше рассмотреть MediaWiki или Confluence.
План действий (мини‑методология)
- Обновить систему и установить Apache/PHP.
- Загрузить DokuWiki в /var/www/html/dokuwiki.
- Настроить виртуальный хост и права доступа.
- Протестировать доступ по HTTP.
- Установить Certbot и получить сертификат.
- Настроить cron для автообновления.
- Выполнить базовую настройку в интерфейсе DokuWiki и сделать резервную копию.
Чек‑лист ролей
Администратор сервера:
- Обновил систему.
- Настроил DNS и порты.
- Установил Apache, PHP, Certbot.
- Настроил cron для certbot.
Администратор DokuWiki:
- Заполнил данные установщика (admin/login).
- Настроил политики прав доступа.
- Установил нужные плагины и тему.
- Сделал резервную копию конфигурации и данных.
Безопасность и жёсткое укрепление
- Права: chown -R www-data:www-data для каталога DokuWiki.
- Ограничьте доступ к папкам conf, inc, data, bin через .htaccess и конфигурацию Apache (как в примере).
- Включите заголовки безопасности (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options) в конфигурации Apache.
- Делайте регулярные бэкапы: конфиг (/conf), данные (/data), и плагины (/lib/plugins).
- Ограничьте количество пользователей с правами администратора.
Конфигурация резервного копирования (рекомендация)
Пример простой команды для бэкапа данных:
tar -czvf /backups/dokuwiki-$(date +%F).tar.gz /var/www/html/dokuwiki/{conf,data}Храните резервные копии вне сервера (S3, удалённый SFTP и т.п.).
Тесты приёмки
- Открыть https://dokuwiki.linuxbuz.com/install.php — установка доступна.
- Зайти под админом — панель управления доступна.
- Создать страницу, сохранить и проверить отображение и редактирование.
- Проверить, что при попытке доступа к /conf/ или /data/ возвращается 403.
- Выполнить certbot renew –dry-run — завершение без ошибок.
Совместимость и миграция
- DokuWiki не требует СУБД; достаточно PHP 7.2+ (проверьте требования к версии в релиз-нотах).
- Для Ubuntu 22.04 и 18.04 шаги аналогичны, но пакеты PHP и зависимости могут иметь другие имена.
- При миграции копируйте /data и /conf и устанавливайте такую же версию DokuWiki или более новую.
Примечания по GDPR и приватности
Если ваша вики хранит персональные данные:
- Ограничьте доступ к страницам с персональными данными.
- Храните логи доступа ограниченное время.
- Документируйте обработку данных и выполняйте запросы субъектов данных согласно регламенту.
Быстрые команды и сниппеты (cheat sheet)
- Проверка Apache: apachectl configtest
- Запуск Certbot: certbot –apache -d your-domain
- Тест обновления сертификатов: certbot renew –dry-run
- Резервное копирование: tar -czvf /backups/dokuwiki-$(date +%F).tar.gz /var/www/html/dokuwiki/{conf,data}
Резюме
DokuWiki — надежное и простое решение для вики без необходимости в базе данных. На Ubuntu 20.04 установка включает подготовку сервера, загрузку файлов, настройку Apache и получение SSL от Let’s Encrypt. Обязательно настройте автоматическое обновление сертификатов и регулярные бэкапы.
Summary (ключевые выводы):
- DokuWiki проста и не требует СУБД.
- Let’s Encrypt даёт бесплатный SSL с 90‑дневной валидностью.
- Настройте автоматическое обновление и резервное копирование.
- Рассмотрите Nginx или Docker как альтернативы.
Фактбокс
- Формат хранения: файловая система (no‑DB).
- Типичный срок сертификата Let’s Encrypt: 90 дней.
- Рекомендуемая периодичность бэкапов: ежедневно или еженедельно в зависимости от активности.
Глоссарий — 1 строка
- Certbot: клиент для получения SSL от Let’s Encrypt; DokuWiki: вики‑движок на PHP, хранящий данные в файлах.
Если нужно, могу дополнить инструкцию примером конфигурации Nginx, Docker‑compose файлом или шаблоном политики доступа для DokuWiki.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента