Установка DokuWiki на Alma Linux 8 с Nginx

Обзор
DokuWiki — лёгкая файловая вики-система с хорошими возможностями форматирования, контролем версий и расширяемостью через плагины. Она не требует базы данных, что упрощает установку и обслуживание. Эта инструкция ориентирована на серверы под управлением Alma Linux 8 и веб-сервер Nginx.
Важно: перед началом убедитесь, что у вас есть доступ по root или sudo и корректно настроенный DNS для домена, который будете использовать.
Требования
- Сервер с Alma Linux 8.
- Домен, указывающий на IP сервера (например, wiki.example.com).
- Настроенный root-пароль или доступ через sudo.
- Рекомендованная версия PHP: 7.4 (или совместимая).
Установка Nginx и PHP
Alma Linux 8 по умолчанию не содержит последних версий PHP в базовом репозитории. Добавим EPEL и Remi, чтобы получить нужный модуль PHP.
Выполните:
dnf install epel-release -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -yЗатем включите поток модулей Remi для PHP 7.4:
dnf module enable php:remi-7.4 -yУстановите Nginx, PHP и базовые расширения, необходимые DokuWiki:
dnf install nginx php php-cli php-fpm php-gd php-xml php-zip -yОтредактируйте конфигурацию PHP-FPM, чтобы процесс работал под пользователем nginx:
nano /etc/php-fpm.d/www.confИзмените или добавьте:
user = nginx
group = nginxСохраните файл. Запустите и включите автозапуск сервисов:
systemctl start nginx php-fpm
systemctl enable nginx php-fpmПроверьте версию PHP:
php --versionПримечание: если на системе включён SELinux, см. раздел «Жёсткая защита и SELinux» ниже.
Загрузка и установка DokuWiki
Скачайте стабильный архив DokuWiki:
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgzСоздайте каталог в корне веб-сервера и распакуйте туда файлы:
mkdir -p /var/www/html/dokuwiki
tar xvf dokuwiki-stable.tgz
mv dokuwiki-*/* /var/www/html/dokuwiki/Установите владельца файлов на nginx:
chown -R nginx:nginx /var/www/html/dokuwikiВажно: используйте абсолютный путь /var/www/html/dokuwiki, как в примерах дальше.
Создание виртуального хоста Nginx для DokuWiki
Создайте файл конфигурации:
nano /etc/nginx/conf.d/dokuwiki.confВставьте конфигурацию (замените wiki.example.com на ваш домен):
server {
listen 80;
server_name wiki.example.com;
root /var/www/html/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:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Проверьте синтаксис Nginx и перезапустите сервис:
nginx -t
systemctl restart nginxПроверьте статус, если нужно:
systemctl status nginxДоступ к веб-интерфейсу установки
Откройте в браузере:
http://wiki.example.com/install.php

Заполните форму: логин суперпользователя, email, пароль. Нажмите «Save» (Сохранить). После успешной установки удалите файл установки:
rm -rf /var/www/html/dokuwiki/install.php



Защита сайта с помощью Let’s Encrypt
Установите Certbot и получите сертификат для Nginx:
dnf install epel-release -y
dnf install certbot -y
certbot --nginx -d wiki.example.comСледуйте инструкциям: укажите email, примите условия и выберите опцию автоматического перенаправления HTTP на HTTPS. После успешного выпуска вы получите путь к сертификатам в /etc/letsencrypt/live/.
Важно: сертификаты Let’s Encrypt действуют 90 дней. Настройте автоматическое обновление через cron или systemd timer (certbot renew).
Жёсткая защита и SELinux
- Убедитесь, что права на файлы и каталоги минимальны: веб-серверу нужен доступ к чтению файлов и записи в каталоги data и conf только в необходимых случаях.
- Если SELinux включён, установите правильный контекст для каталогов DokuWiki:
chcon -R -t httpd_sys_rw_content_t /var/www/html/dokuwiki/data
chcon -R -t httpd_sys_content_t /var/www/html/dokuwiki- Установите заголовки безопасности в конфигурации Nginx (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy).
- Рассмотрите установку fail2ban для защиты от перебора паролей.
Резервное копирование и обновления
- Резервные копии: копируйте папки conf, data и шаблоны (dokuwiki root). Бэкап делайте регулярно.
- Обновления: повторно загрузите архив DokuWiki и перезапишите файлы (с сохранением conf и data) либо используйте git/плагины, если поддерживается.
Когда этот сценарий не подходит
- Если вам нужна масштабируемая многосерверная конфигурация с базой данных и кластеризацией, DokuWiki (файловая) может потребовать дополнительной архитектуры.
- Для крупных организаций с требованиями к централизованной БД и сложной аудиторией возможно лучше рассмотреть вики-решения с СУБД.
Альтернативные подходы
- Docker: запустите DokuWiki в контейнере (официальные/сообщества образы) для изоляции и удобства миграции.
- Apache: если вы привыкли к Apache, настройка DokuWiki под него проще для некоторых модулей и .htaccess.
- Управляемые хостинги и SaaS-вики: экономят время поддержания сервера, но ограничивают контроль.
Роль‑ориентированные контрольные списки
Администратор сервера:
- настроил DNS и обратный DNS;
- установил Nginx и PHP-FPM;
- настроил SELinux-контексты и права файлов;
- настроил бэкапы и обновления.
DevOps/оператор:
- проверил SSL и автоматическое обновление certbot;
- настроил мониторинг и логирование;
- установил fail2ban и настраивает правила.
Контент‑менеджер (редактор):
- создал суперпользователя и первые страницы;
- настроил права редактирования и плагины;
- протестировал экспорт/импорт страниц.
Критерии приёмки
- При обращении по http://wiki.example.com сайт переадресуется на https://wiki.example.com.
- Страница установки недоступна (install.php удалён).
- Вход под суперпользователем проходит, редактирование и сохранение страниц работают.
- Резервное копирование папок conf и data выполняется и проверяется.
Безопасность и конфиденциальность
- Логи и данные пользователей храните в соответствии с локальными законами о защите данных. Для ЕС/ЕЭЗ проверьте соответствие требованиям GDPR: минимизируйте персональные данные, документируйте основания обработки.
- Ограничьте доступ к папкам conf и data только для процессов веб-сервера.
Краткая методология быстрой проверки (mini-checklist)
- Проверить доступность порта 80 и 443.
- Убедиться, что PHP-FPM отвечает на сокет /run/php-fpm/www.sock.
- Выполнить nginx -t и перезапустить nginx.
- Пройти через веб-инсталлятор и удалить install.php.
- Настроить Certbot и протестировать обновление certbot renew –dry-run.
Модель принятия решений (эвристика)
Если важна простота и отсутствие СУБД — DokuWiki подходит. Для интеграции с корпоративной БД и LDAP/SSO — оцените плагины или альтернативы.
Однофразный глоссарий
- DokuWiki: файловая вики-система без СУБД.
- Nginx: веб-сервер и обратный прокси.
- PHP-FPM: обработчик PHP через пул процессов.
- Certbot: инструмент автоматизации получения сертификатов Let’s Encrypt.
Тестовые сценарии / Критерии приёмки
- Попытаться создать страницу, сохранить, отредактировать и вернуть старую версию.
- Проверить доступ к ресурсам /conf и /data — должен быть 403.
- Попытка выполнить PHP-файл вне корня должна вернуть 404.
Короткое объявление (100–200 слов)
Установлен и настроен DokuWiki на Alma Linux 8 с Nginx. Включены PHP-FPM, базовые расширения PHP, настроен виртуальный хост Nginx, получен бесплатный SSL от Let’s Encrypt. Подготовлены базовые рекомендации по безопасности: права файлов, контекст SELinux, исключение доступа к конфигурациям и директориям данных, а также инструкции по бэкапам и тестам приёмки. Это решение подходит для небольших команд и проектов, которые хотят лёгкую, быст‑рую и управляемую вики‑систему без СУБД.
Короткий список действий после установки
- Удалить install.php (если ещё не удалён).
- Настроить бэкап каталогов conf и data.
- Включить автоматическое обновление сертификатов certbot renew.
- Проверить права и SELinux-контексты.
Заключение
Поздравляем! Вы установили и настроили DokuWiki на Alma Linux 8 с Nginx. Теперь можно начинать наполнять вики содержимым, настраивать плагины и подключать интеграции. Если возникли вопросы по адаптации под ваш окружение (Docker, кластер, LDAP), опишите сценарий — и мы подскажем дальнейшие шаги.
Похожие материалы
Устранение ошибки Epson 1131: полное руководство
Отключить Bluetooth в Arch Linux быстро и безопасно
Windows netstat: прослушиваемые порты
Ограничения ресурсов в Kubernetes: CPU, память и хранилище
Вредоносное ПО в облаке: что это и как защититься