MoinMoin – простой wiki-движок (вики-движок) с файлами в качестве хранилища (не нужна никакая отдельная БД). Также у него довольно удобная разметка и приятно-лаконичный умолчальный дизайн. Написан на Python.
Используется, например, на https://wiki.freebsd.org/
Будем устанавливать MoinMoin из архива, под apache с mod_wsgi. Это самый простой и рекомендуемый вариант.
Установку выполним в полностью ручном режиме.
Еще есть возможность скачать дистрибутив и сказать sudo python setup.py install ...
,
но я против выполнения прикладных скриптов под sudo.
Еще под FreeBSD есть собранный пакет с MoinMoin,
но все-таке попробуем ручную установку.
Потому что она дает возможность “потрогать”, как программа работает,
и оставляет больше свободы для обновлений и модификаций.
В примере устанавливается версия 1.9.7, при обновлениях порядок действий скорее всего останется примерно таким же.
За пример взята установка на FreeBSD.
На Ubuntu и другие Linux’‘ы должно ставиться
вполне аналогично, разве что типичный путь для файлов веб-сервера может быть
не /usr/local/www
, а /var/www
,
да пользователь для apache – не www
, аwww-data
.
Установку выполняем под root’‘ом (sudo -s
).
Внешних зависимостей совсем мало: Apache 2 (наверняка уже есть в системе) и mod_wsgi.
mod_wsgi
, естественно, подключаем в конфиг apache (в Ubuntu путь к файлу будет другой):
Возможно, при установке пакета эта строчка добавилась в httpd.conf
автоматически.
В /usr/local/www/moin/code
будет находиться код.
Строго не рекомендуется менять вручную какие-либо файлы в этом каталоге, потому что при обновлении изменения потерялись бы.
В /usr/local/www/moin/config
будут храниться настройки, их будем редактировать руками.
В /usr/local/www/moin/wsgi
положим wsgi-файл, его тоже отредактируем.
В /usr/local/www/moin/static
скопируем статические файлы.
Это не обязательно, но так будет проще менять оформление и не трогать при этом основной код.
В /home/moin
MoinMoin будет хранить самое главное – тексты страниц.
Поскольку это очень важная информация, строго не рекомендуется помещать этот каталог
внутрь DocumentRoot
веб-сервера.
По-моему, /home
– как раз подходящее место: его всегда берегут и при бекапах вспоминают в первую очередь ;)
Со странцы http://moinmo.in/MoinMoinDownload берем ссылку на архив со свежей версией, в моем примере это http://static.moinmo.in/files/moin-1.9.7.tar.gz
С дистрибутивом поставляется инструкция по установке: docs/INSTALL.html
.
Можно обратиться к ней, если требуется более сложная конфигурация.
По порядку: основной код, шаблон конфига, шаблон wsgi-файла, каталог со статикой, шаблон каталогов для данных.
/usr/local/www/moin> vim config/wikiconfig.py
Надо отредактировать или внести следующие строки (sitename и interwikiname выбрать на свое усмотрение):
/usr/local/www/moin> vim wsgi/moin.wsgi
:
В конфиг apache добавляем настройки VirtualHost
:
Рестартим apache, идем браузером на moin.mydomain.ru. Если все было сделано правильно, должна открыться страница LanguageSetup.
Почти готово! Вики установлена и запущена, осталось чуть-чуть донастроить.
Вверху страницы есть ссылка Login, на открывающейстя странице предлагают создать логин. Создаем.
Снова идем редактировать настройки: sudo vim /usr/local/www/moin/config/wikiconfig.py
,
раскомментируем строку #superuser = [u"YourName", ]
и подставляем в нее свой новосозданный логин.
sudo vim /usr/local/www/moin/config/wikiconfig.py
,
раскомментируем строку page_front_page = u"FrontPage"
и подставляем в нее имя страницы, которую хотим видеть при входе на сайт.
Все готово, можно начинать создавать страницы.
Редактируем файл /usr/local/www/moin/config/wikiconfig.py
,
меняем переменную acl_rights_default
(или добавляем ее, если не было):
Эта настройка разрешает зарегистрированным пользователям читать, редактировать, удалять страницы и отменять правки, а незарегистрированным – только читать.
См. также http://moinmo.in/SecurityPolicy#Only_allow_editing_for_known_users
Если предполагается, что установленной wiki будут пользоваться достаточно ограниченное количество пользователей, то стоит закрыть свободную регистрацию в ней.
http://www.moinmo.in/FeatureRequests/DisableUserCreation – обсуждение целей и способов выключения свободной регистрации.
В версии 1.9.7
работает такой способ:
редактируем файл /usr/local/www/moin/config/wikiconfig.py
.
В шапку вносим строку
внутрь класса Config
пишем:
http://www.moinmo.in/HelpOnUserHandling
Осторожно! rm
необратим, семь раз отмерь – один отрежь, бекап – друг админа.
Редактируем файл /usr/local/www/moin/config/wikiconfig.py
,
добавляем переменные page_header1
и page_footer2
:
Справка по переменным, которые подставляются в разные точки html-страниц: http://www.moinmo.in/HelpOnThemes#Modify_wiki_configuration
Завести счетчик Метрики: http://metrika.yandex.ru.
Проверяем, что настройки для статических файлов работают так, как задумано:
заменяем фавиконку /usr/local/www/moin/static/htdocs/favicon.ico
на другую
и проверяем, что по адресу moin.mydomain.ru/favicon.ico
показывается именно она.
Кладем в /usr/local/www/moin/static/htdocs/common
какую-нибудь картинку
и смотрим, что она доступна по адресу moin.mydomain.ru/moin_static197/common/myimage.png
(url берем от логотипа MoinMoin на любой странице и заменяем имя файла).
Если что-то из этого не сработало – идем разбираться, что не так с настройками.
Цель – чтобы все статические файлы
MoinMoin брал из каталога /usr/local/www/moin/static/htdocs/
.
http://moinmo.in/HelpOnThemes – справка
http://moinmo.in/ThemeMarket – сборник готовых скинов
Общий порядок: скачиваем архив, распаковываем, копируем файл
<имя темы>.py
в каталог /home/moin/data/plugin/theme/
,
а каталог <имя темы>
– в /usr/local/www/moin/static/htdocs/
.
После этого новую тему можно выбрать на странице настроек (Settings-Preferences-Preferred theme).
Пример для Moniker:
Важно! Для того, чтобы установить умолчальную тему для незалогиненных пользователей,
редактируем файл /usr/local/www/moin/config/wikiconfig.py
, добавляем в него строку:
Если хотим поменять стандартную тему: делаем копию, редактируем ее. Например, сделаем тему my_modernized:
Выбираем нужный макрос: http://moinmo.in/MacroMarket
Например, выбрали ChildPages – генератор списка “вложенных” страниц у текущей страницы.
Со страницы макроса скачиваем файл-исходник (py-файл).
Помещаем скачанный файл в каталог /home/moin/data/plugin/macro
.
Важно! Скорее всего, скачанный файл содержит в имени номер версии или дату релиза
(в нашем случае 2012.12.29
).
Их надо удалить, файл должен называться просто <имя макроса>.py
.
Рестартим apache и пользуемся новым макросом.
Макросы вставляются в текст страницы в двойных угловых скобках: <<ChildPages>>
См. также список стандартных макросов.