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

Установка и настройка DokuWiki на CentOS 8

• 6 min read • Инструкции • Обновлено 22 Nov 2025
DokuWiki на CentOS 8 — установка и настройка
DokuWiki на CentOS 8 — установка и настройка

Скриншот интерфейса DokuWiki

О чём эта инструкция

DokuWiki — лёгкий и гибкий Open Source вики-движок без необходимости использования СУБД. Он популярен за простоту синтаксиса, удобство бэкапа и интеграции. В этой статье описан реальный рабочий сценарий развёртывания на CentOS 8 с Nginx и PHP-FPM, с опциями HTTPS и рекомендациями по безопасности и эксплуатации.

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

Ключевые варианты использования

  • Локальная внутренняя документация для команды (Intranet).
  • Публичная документация и базовая база знаний.
  • Вики для DevOps-процессов и runbook’ов.

Требования

  • Веб-сервер, поддерживающий PHP (Nginx, Apache, Lighttpd, LiteSpeed, IIS).
  • PHP версии 5.6 или новее; рекомендуются актуальные стабильные ветки PHP 7.x/8.x.
  • Пользователь с правами sudo.
  • Домены/поддомены для HTTPS (по желанию).

Предварительные условия

  • Чистая инсталляция CentOS 8.
  • Наличие непривилегированного пользователя с sudo.
  • Желательно: доступ к DNS для создания записей A/AAAA для домена.

Начальные шаги

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

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

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

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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

sudo dnf update -y

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

sudo dnf install -y curl wget vim git unzip socat bash-completion epel-release

Заметка: для новых версий PHP иногда удобнее использовать репозиторий Remi; если вам нужна конкретная версия PHP, установите и настройте соответствующий репозиторий.

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

Установите PHP и необходимые расширения:

sudo dnf install -y php php-cli php-fpm php-gd php-xml php-zip

Проверьте доступные модули PHP:

php -m

ctype
curl
exif
fileinfo
...

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

php --version

# PHP 7.2.11-1-(cli) (built: Oct 26 2019 14:14:18) ( NTS )

Запустите и включите PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Совет: CentOS 8 в стандартном репозитории может предоставлять конкретные версии PHP; если требуется PHP 7.4/8.0, подключите и используйте официальный репозиторий Remi.

Шаг 2 — Получение сертификата Let’s Encrypt (опционально)

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 [email protected]
source ~/.bashrc
cd ~

Проверка версии:

acme.sh --version
# v2.8.2

Получение сертификатов RSA и ECDSA (замените example.com на ваш домен):

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

Для тестирования используйте флаг –staging, чтобы не расходовать квоты Let’s Encrypt.

Сертификаты будут располагаться в папках вида /home/username/example.com и /home/username/example.com_ecc.

Список выданных сертификатов:

acme.sh --list

Создайте целевые директории для копирования сертификатов в систему, например /etc/letsencrypt:

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

Установите сертификаты (пример с перезагрузкой nginx):

# 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"
# ECC/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 автоматически позаботится о продлении сертификатов.

Важно: если nginx слушает 80/443, при использовании –standalone временно остановите nginx или используйте вебвызов (webroot) для валидации.

Шаг 3 — Установка и конфигурация Nginx

DokuWiki может работать на любом поддерживающем PHP веб-сервере. Здесь используется Nginx.

Установка nginx:

sudo dnf install -y nginx

Проверка версии:

sudo nginx -v
# nginx version: nginx/1.14.2

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

sudo vim /etc/nginx/conf.d/dokuwiki.conf

Пример конфигурации Nginx (скопируйте и отредактируйте server_name и пути к сертификатам):

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 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Примечания:

  • Если PHP-FPM слушает unix-сокет (например /run/php-fpm/www.sock), замените fastcgi_pass 127.0.0.1:9000 на fastcgi_pass unix:/run/php-fpm/www.sock;
  • Настройте server_name в соответствии с вашим DNS.

Проверьте конфигурацию nginx:

sudo nginx -t

Перезагрузите nginx:

sudo systemctl reload nginx.service

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

Создайте корневую папку для сайта:

sudo mkdir -p /var/www/dokuwiki

Перейдите в неё и загрузите стабильный архив 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
sudo mv dokuwiki-2018-04-22b/* . && sudo mv dokuwiki-2018-04-22b/.* .
sudo rmdir dokuwiki-2018-04-22b/

Настройте владельца файлов на пользователя веб-сервера. В CentOS чаще корректно использовать nginx:nginx или apache:apache в зависимости от сервера. Для Nginx:

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

Отредактируйте конфигурацию PHP-FPM, чтобы процесс работал от пользователя nginx (если требуется):

sudo vim /etc/php-fpm.d/www.conf
# Установите user = nginx и group = nginx

Перезапустите сервис PHP-FPM (замените имя сервиса при необходимости):

sudo systemctl restart php7.3-fpm.service

Примечание: имя сервиса php7.3-fpm.service может отличаться; используйте systemctl list-units | grep php для проверки.

Откройте установщик в браузере: http://wiki.example.com/install.php и следуйте инструкциям инсталлятора. Установщик проверит доступность PHP-функций и права на файлы, создаст администратора и базовые ACL.

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

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

Установщик DokuWiki — страница установки

Заполните поля и нажмите Save. После успешной установки вы увидите подтверждение:

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

Перейдите в ваш новый вики и войдите:

Успешно установлен DokuWiki — главная страница

Страница входа в DokuWiki

Панель управления DokuWiki после входа

После успешной установки обязательно удалите скрипт install.php:

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

SELinux, firewall и права доступа

  • Firewall (firewalld): откройте порты 80 и 443 при публикации:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
  • SELinux: если SELinux включён, убедитесь, что контексты файлов корректны:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/dokuwiki(/.*)?"
sudo restorecon -Rv /var/www/dokuwiki

Если semanage недоступен, установите пакет policycoreutils-python-utils.

  • Права: обычно директории data/ и conf/ должны быть доступны для записи веб-серверу. Не давайте прав на запись всем пользователям.

Проверка и отладка

  • nginx: sudo nginx -t; журнал — /var/log/nginx/error.log
  • php-fpm: sudo systemctl status php-fpm; журналы — /var/log/php-fpm/www-error.log (зависит от конфигурации)
  • SELinux: sudo ausearch -m avc -ts recent

Типичные проблемы и решения:

  • 502 Bad Gateway: проверьте, что PHP-FPM слушает по TCP 127.0.0.1:9000 или сокету; укажите корректный fastcgi_pass.
  • Ошибки прав доступа при записи: проверьте владельца nginx:nginx и SELinux-контекст.
  • 403 при обращении к /conf/ или /data/: это ожидаемое поведение — эти папки должны быть закрыты для внешнего доступа.

Альтернативные подходы и расширения

  • Веб-сервер: если вы предпочитаете Apache, используйте модуль PHP-FPM или mod_php. Конфигурация DokuWiki для Apache проще для начинающих.
  • SSL: вместо acme.sh можно использовать Certbot или управлять сертификатами вручную.
  • Плагины: сообщество DokuWiki предоставляет плагины для поиска, аутентификации (LDAP), визуального редактора и бэкапов.
  • Хранилище: DokuWiki хранит контент в файловой системе, что упрощает бэкап и миграцию.

Безопасность и эксплуатация

  • Регулярно обновляйте DokuWiki и плагины.
  • Следите за правами на /conf/ и /data/.
  • Настройте резервное копирование: архивируйте папки data/, conf/ и inc/ и храните копии вне сервера.
  • Настройте мониторинг доступности и логирования.

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

Администратор сервера:

  • Установить CentOS 8 и обновить пакеты.
  • Установить PHP и Nginx.
  • Получить и установить сертификаты.
  • Настроить firewall и SELinux.
  • Настроить бэкап и мониторинг.

Администратор вики:

  • Пройти страницу установки и создать суперпользователя.
  • Настроить базовую политику ACL.
  • Установить необходимые плагины и шаблон.

Разработчик/Интегратор:

  • Интегрировать аутентификацию (LDAP/SSO), если нужно.
  • Настроить CI/CD для шаблонов и плагинов.

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

  • Доступность главной страницы DokuWiki по HTTPS (если настроено).
  • Авторизация администратора выполнена успешно.
  • Установщик install.php удалён.
  • Папки conf/ и data/ закрыты для внешнего доступа (код ответа 403).
  • Работоспособность поиска и редактирования страниц.

Частые ошибки и способы их устранения

  • Ошибка 502/504: убедитесь, что php-fpm запущен и настроен адрес fastcgi_pass.
  • Права записи: chown -R nginx:nginx /var/www/dokuwiki и проверьте SELinux-контексты.
  • Проблемы с LetsEncrypt: проверьте доступность порта 80 и актуальность DNS-записей.

Краткая методология развёртывания (мини-SOP)

  1. Подготовка ОС и резервной стратегии.
  2. Установка PHP и веб-сервера.
  3. Получение сертификатов (опционально).
  4. Развёртывание файлов DokuWiki и настройка прав.
  5. Запуск веб-интерфейса и проверка функционала.
  6. Настройка бэкапов и мониторинга.

Когда этот подход не подходит

  • Нужна масштабируемая база данных и сложные реляционные запросы — DokuWiki хранит данные в файловой системе.
  • Нужна встроенная многопользовательская репликация / кластеризация — DokuWiki не рассчитан на горизонтальную масштабируемость без внешних решений.

Факты и рекомендации

  • Бэкап: копируйте папки data/ и conf/ и архивируйте их регулярно.
  • Плагины: тестируйте плагины в тестовой среде перед установкой в прод.

Резюме

  • DokuWiki легко установить на CentOS 8 с Nginx и PHP-FPM.
  • HTTPS и правильные права доступа повышают безопасность.
  • SELinux и firewall требуют дополнительной проверки при развёртывании.

Ссылки

Короткое объявление: вы успешно установили DokuWiki и получили готовую к использованию вики-систему; на следующем этапе — настройте плагины и политику доступа под нужды команды.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро