Рубрики
Про web

Несколько особенностей настройки DokuWiki

Во время установки на виртуальном хостинге и настройки DokuWiki столкнулся с несколькими сложностями, решения по которым оказались не тривиальными. Оставлю тут несколько заметок, как возможные ответы для ищущих их людей.

Проблема с подгрузкой стилей DokuWiki — CSS не загружается

Всё работает, настройки меняются, скрипты отрабатывают…

Установка других тем не помогает. Изменения настроек не помогают. Выключение всех выключаемых плагинов не помогает.

Вы видите страницы вики без оформления, голую. Что происходит — страница, которую вам отдаёт DokuWiki, ссылается, в числе прочего, на адрес (скрипт) /lib/exe/css.php?… (обычно с указаниями параметров сессии, темы и т.п.). Суть проблемы в том, что если обратиться на этот адрес напрямую, вместо положенного CSS вы получаете ошибку 500. При этом никакой более вменяемой информации о ошибках мне найти не удавалось…

Помучившись, оказалось, что это происходит в зависимости от используемой версии PHP! В итоге переключившись на версию 7.4 (обычно такая возможность есть в панели управления хостинга) проблема ушла. После переключения нужно подождать пока версия реально изменится, это занимает несколько минут. А еще лучше проверить поменялась ли версия посмотрев в phphinfo().

Настройки безопасности Dokuwiki и .htaccess

После установки (а лучше еще и до) DokuWiki рекомендуется внимательно прочитать страницу https://www.dokuwiki.org/security и привести всё в соответствие. Тут я для начала посоветую смотреть именно англоязычную страницу, она чуть более актуальна чем на русском языке.

Я привел в соответствие с моими потребностями .htaccess идущий в комплекте с DokuWiki, и дальше начались непонятные моменты… было видно, что .htaccess подцепляется, инструкции из него работают, но… как то не до конца. Самые простые проверки того, что должно быть видно, а что нет — не проходят:

  • /data/pages/wiki/dokuwiki.txt — спокойно показывается, что бы я не писал в .htaccess.
  • Предупреждение (Warning) о безопасности на странице настройки моего DokuWiki — тоже видно. Кстати оно забавно устроено — это просто картинка лежащая в папке, файлы из которой не должны быть доступны. Т.е. он показывается, когда файл доступен, а значит с настройками безопасности есть проблемы. 🙂
  • Таким же образом можно увидеть другие текстовые файлы в которых, собственно, DokuWiki и хранит всю информацию. Нужно просто собрать ссылку соответствующим образом (в зависимости от настроек).

И опять поиск. В процессе которого выяснилось:

  1. Что поддержка хостинга Beget в вопросы не вникает, и просто шлёт в FAQ, в котором информация причем устаревшая.
  2. Что блок инструкций ограничивающий доступы в .htaccess в DokuWiki написан нормально (в чём я сомневался, потому что не срабатывали ограничения)! Но для понимания полезно знать, что вездесущие мануалы по .htaccess в которых есть Order allow,deny и Deny from all, и нет ничего другого — писались до выхода Apache 2.4. А начиная с этой версии уже инструкция выглядит как Require all denied. И это изменение приводит к путаницам…

В итоге выяснилось, что всё банально: у хостера используется Nginx поверх Apache. И Nginx отвечает за отдачу статики, включая картинки и txt-файлы. А так как ограничения заданные в .htaccess это инструкции для Apache, но не для Nginx, на статику эти ограничения не распространяются! А значит и полностью закрыть доступ к этим файлам не удаётся.
Решил вопрос так — убрал всё, что можно выше корневой директории сайта.