## Please edit system and help pages ONLY in the master wiki! ## For more information, please see MoinMoin:MoinDev/Translation. ##master-page:HelpOnConfiguration ##master-date:2011-01-27T19:39:19Z #acl -All:write Default #format wiki #language ru = Конфигурирование вики = <> Данная страница должна помочь в процессе конфигурирования уже установленной вики на базе МойнМойн. <> == Кодировка == МойнМойн использует Юникод для внутреннего представления строк и кодировку UTF-8 для ввода/вывода, в который входят хранение страниц, генерация HTML-страниц и файлы с переводами. Кодировка, используемая для чтения и записи внешних ресурсов, задана в параметре `config.charset` как `utf-8`. Данное значение подходит для любого языка, так как любой символ может быть закодирован в UTF-8. Не рекомендуется менять значение данного параметра, не смотря на то, что технически это возможно. '''Для использования в значениях параметров строк с символами, не входящими в набор символов ASCII (коды символов 32—127), необходимо указать корректную кодировку у файла конфигурации. Также рекомендуется проверить, что параметры консоли и редактора относительно используемых корректны.''' Ряд параметров '''обязан''' использовать в значениях строки Юникод. Например, имя сайта может содержать немецкие умляуты, или французские диакритические символы, или быть на русском или иврите. В связи с этим необходимо использовать строки Юникод для задания подобных значений. Строки Юникод задаются путём предварения их символом «u». Примеры использования: {{{#!highlight python # Site name, used by default for wiki name-logo [Unicode] sitename = u"Jürgen's Wiki" # Ещё один пример: sitename = u'Вики-сайт' }}} Рекомендуется читать комментарии в конфигурационном файле, так как в ни обычно указано, какие параметры обязаны использовать Юникод. Примечания: * В рамках одного файла невозможно смешивать строковые литералы в различных кодировках. Если в строке кодировки файла указано, что используется кодировка `koi8-r`, то всё содержимое файла должно использовать её. * При использовании кодировки UTF-8 (или только ASCII) нет необходимости использовать строки Юникод, МойнМойн может самостоятельно корректно декодировать строки в этом случае. <> == Использование различных кодировок в файле конфигурации == Конфигурационный файл по умолчанию в составе дистрибутива МойнМойн использует кодировку ISO 8859-1. Это не вызывает проблем в случае использования западноевропейских языков, таких как английский или немецкий, но непригодно для использования способов письма, не использующих латиницу. Необходимо использовать кодировку UTF-8 при использовании в файле конфигурации символов, отличных от латиницы. Для этого достаточно указать следующую строку первой во всех конфигурационных файлах: {{{ # -*- coding: utf-8 -*- }}} /!\ Для редактирования конфигурационных файлов в кодировке UTF-8 необходим текстовый редактор, который корректно обрабатывает данную кодировку и действительно её использует. Параметры, значения которых являются строками Юникод, могут быть распознаны по значениям по умолчанию с префиксом «`u"..."`» или «`ur"..."`» (префиксный символ «u» означает «unicode» — Юникод) или в случае, когда в описании явно указано сие. == Задание шаблонов имён различных видов страниц == МойнМойн выделяет несколько видов специальных страниц ([[ПомощьПоГруппам|группы]], [[ПомощьПоСловарям|словари]], [[ПомощьПоКатегориям|категории]], [[ПомощьПоШаблонам|шаблоны]]), которые могут использоваться в различных частях интерфейса (категории доступны для добавления в выпадающем списке в редакторе, список доступных на вики шаблонов показывается при создании страницы, и т. д.) или обрабатываются специальным образом (значения [[ПомощьПоПеременным|переменных]] не подставляются при сохранении страницы-шаблона). Для задания шаблонов имён подобных специальных страниц служит несколько параметров конфигурации — «`page_category_regex`», «`page_dict_regex`», «`page_group_regex`», «`page_template_regex`». Примеры их настройки для различных языков приведены на странице MoinMoin:ConfigMarket. Ниже представлены два варианта конфигурации для русскоязычного вики-сайта: * Для вики-сайта только с русскоязычным содержанием и посетителями: {{{#!highlight python numbers=off page_category_regex = ur'(?PКатегория(?P\S+))' page_dict_regex = ur'(?P(?P\S+)(Словарь|Dict))' page_group_regex = ur'(?PГруппа(?P\S+))' page_template_regex = ur'(?PШаблон(?P\S+))' }}} * Для двуязычного (русский, английский) вики-сайта (рекомендуемая конфигруация): {{{#!highlight python numbers=off page_category_regex = ur'(?P(Категория|Category)(?P\S+))' page_dict_regex = ur'(?P(?P\S+)(Словарь|Dict))' page_group_regex = ur'(?P((?!.*Group)(?PГруппа))?(?P\S+)(?(ru)|Group))' page_template_regex = ur'(?P((?!.*Template)(?PШаблон))?(?P\S+)(?(ru)|Template))' }}} == Конфигурирование возможностей настройки учётной записи == Администратор может жёстко задать, отключить или запретить отдеьные параметры настройки учётной записи, см. КакНастраивать/НастройкиУчётнойЗаписи. <> == Конфигурирование единичного экземпляра вики == В случае, если на сервере запускается единичный экземпляр вики, нет необходимости копировать файл `farmconfig.py` в каталог с конфигурационными файлами (удалите этот файл и одноимённый файл с расширением `.pyc` в случае, если они там есть). Если файл конфигурации фермы отсутствует, МойнМойн использует файл `wikiconfig.py`. Файл `wikiconfig.py` может находиться где угодно, необходима лишь возможность импортирования его МойнМойн — для этого рекомендуется добавить каталог, в котором он находится, первым элементом в `sys.path` (это список путей, в которых Python ищет импортируемые файлы). Задание `sys.path` происходит на раннем этапе запуска сервера, обычно в скрипте-адаптере (например, `moin.cgi` или `moin.wsgi`) — см. комментарии к соответствующему скрипту для подробностей. Основные замечания по структуре файла конфигурации вики или фермы: {{{#!python # -*- coding: utf-8 -*- from MoinMoin.config.multiconfig import DefaultConfig class Config(DefaultConfig): sitename = u'МояВики' # префикс «u» означает, что строка будет сконфертирована в юникод interwikiname = 'MyWiki' data_dir = '/путь/к/каталогу/data/' underlay_dir = '/путь/к/каталогу/underlay/' # Другие параметры конфигурации располагаются ниже }}} * В начале идёт указание кодировки конфигурационного файла. По умолчанию указана кодировка ISO 8859-1, соответствующая символам в западноевропейских языках. При использовании других языков рекомендуется указать кодировку UTF-8, подробнее см. [[#intsetup|соответствующий раздел]]. Если не определить кодировку, то использование в конфигурационном файле символов, не входящих в набор символов ASCII, невозможно. * Далее импортируется модуль с конфигурацией МойнМойн по умолчанию. Конфигурация по умолчанию включает в себя значения для всех необходимых параметров, посему нет необходимости задавать все параметры в конфигурационном файле, только необходимые для подстроки под имеющиеся нужды. * После этого определяется новый класс конфигурации с именем «`Config`» и наследующий все параметры конфигурации из конфигурации по умолчанию, которая была импортирована ранее. Важно отметить, что класс обязан иметь имя «`Config`». * Далее в классе задаются значения параметров. Необходимо отметить, что каждая строка при этом предваряется отступом в четыре пробела, табуляция не разрешается (в крайнем случае, весь файл должен использовать табуляцию для отступов, но это крайне не рекомендуется). МойнМойн не сможет работать, если в файле конфигурации будут неправильные отступы. * Один из настраиваемых в первую очередь параметров это имя сайта, `sitename` — в большинстве случаев значение «u"Untitled Wiki"», укащанное по умолчанию, не используется. Имя вики может быть задано на произвольном языке, но перед этим желательно ознакомится с [[#character-set|разделом о кодировках]] * Вики запустится без дополнительных действий в случае, если установка была выполнена согласно инструкции, но, возможно, появится необходимость изменить некоторые параметры, такие как `data_dir`, `data_underlay_dir`, `acl_rights_before` и другие. Для большинства случаев достаточно настройки параметров, уже имеющихся в `wikiconfig.py`. * Всё, что не задано в файле конфигурации, будет иметь значения по умолчанию, которые были унаследованы из класса `DefaultConfig`. <> == Конфигурация вики-фермы == Вики-сервер МойнМойн позволяет иметь несколько экземпляров вики, использующие одну установку сервера, один набор конфигурационных файлов и один серверный процесс. Это особенно важно для таких запускаемых на постоянной основе (а не на время обработки одного запроса, как в случае с CGI) серверных окружений, как Twisted, так как сервер на базе Twisted постоянно занимает TCP-порт на определённом IP-адресе. Поэтому для виртуального хостинга нескольких вики на одном и том же IP и порту необходим сервер, могущий иметь загруженными несколько конфигураций одновременно и использовать нужную при обработке запроса по определённому URL. Для выбора нужной конфигурации среди имеющихся МойнМойн переменную конфигурации `wikis`, находящуюся в файле `farmconfig.py` — она содержит список пар вида `(имя вики, префикс URL)`. Для имени вики необходимо использовать только строковые литералы, являющиеся идентификаторами Python (то есть, `идентификатор ::= (буква | "_") (буква | цифра | "_")*`, `буква ::= ("A".."Z" | "a".."z")`, `цифра ::= "0".."9"`; если данный набор правил непонятен, рекомендуется использовать слово, набранное латиницей). При обработке запроса по некоему URL МойнМойн выполняет поиск по данному списку и пытается последовательно применить шаблон `префикс URL` к имеющемуся URL. Если шаблон применяется успешно, то МойнМойн использует конфигурацию из файла `имя_вики.py` (находящегося обычно в том же каталоге; реально используется первое совпадение из `sys.path`). Файл `farmconfig.py` в составе дистрибутива содержит ряд примеров задания параметров для вики-фермы, содержащей несколько вики. Достаточно адаптировать его соответственно нуждам в случае необходимости использования нескольких вики. /!\ Для простоты изложения далее конфигурация вики в составе вики-фермы будет называться `wikiconfig.py`. Естественно, на практике нужно использовать имя файла, соответствующее имени вики (`имя_вики.py`). После настройки параметра `wikis` в файле `farmconfig.py`, как описано выше, необходимо настроить собственно экземпляры вики. Далее даны несколько советов для упрощения процесса администрирования вики-фермы. Рекомендуется предварительно прочитать раздел, относящийся к конфигурированию отдельного экземпляра вики, так как там поясняется механизм наследования. В МойнМойн используется механизм конфигурирования, основанный на классах Python для возможности задавать общие настройки вики в одном месте — в базовом файле конфигурации (пример конфигурации см. В файле `farmconfig.py`): '''farmconfig.py''': {{{#!python # -*- coding: utf-8 -*- # farmconfig.py: from MoinMoin.config.multiconfig import DefaultConfig class FarmConfig(DefaultConfig): url_prefix = '/wiki' show_hosts = True underlay_dir = '/место/нахождения/общего/underlay' # ... }}} Пояснения: * В начале импортируется конфигурация по умолчанию, по аналогии с конфигурацией отдельного экземпляра вики. * Далее определяется класс конфигурации вики-фермы и наследуется от конфигурации по умолчанию. * Далее задаются параметры, общие для всех вики в ферме ,не затрагивая специфичных для отдельных экземпляров настроек. * Данный класс (`FarmConfig`) будет использован как базовый в конфигурационных файла экземпляров вики вместо класса (`DefaultConfig`), подробнее см. ниже. Конфигурации экземпляров вики в этом случае будут содержать только те настройки, которые должны быть различными (например, логотип, директория с данными, настройки списков доступа). Всё прочее они унаследуют от базового файла конфигурации, см. `moinmaster.py` для примера: '''moinmaster.py''': {{{#!python # -*- coding: utf-8 -*- # moinmaster.py: from farmconfig import FarmConfig class Config(FarmConfig): show_hosts = False sitename = u'МойнМастер' interwikiname = 'MoinMaster' data_dir = '/org/de.wikiwikiweb.moinmaster/data/' # ... }}} Пояснения: * Данная конфигурация аналогична конфигурации отдельного экземпляра вики, единственным отличием является то, что наследование происходит от класса `FarmConfig` (который, в свою очередь, унаследован от `DefaulConfig`) вместо наследования от `DefaultConfig` напрямую. * После этого значение параметра `show_hosts` переопределяется в `False` — в данном примере значение по умолчанию предполагается использовать на большинстве вики фермы, но не на этой. * Также переопределяются индивидуальные параметры, такие как `sitename`, `interwikiname` и `data_dir`. <> == Обзор параметров конфигурации == Представленная далее таблица содержит значения по умолчанию и краткие описания для большинства параметров конфигурации. Для большинства из них нет необходимости переопределять значения по умолчанию, параметры, которые необходимо указывать для каждого экземпляра вики, перечислены в примере файла `wikiconfig.py` в составе дистрибутива МойнМойн. (!) Длинные значения по умолчанию в таблице ниже показаны в виде многоточий. При наведении курсора мыши на эти многоточия они будут показаны во всплывающей подсказке. Также можно изучить файл `MoinMoin/config/multiconfig.py`, класс `DefaultConfig` для дополнительной информации (данный файл содержит конфигурацию по умолчанию). <> Некоторые параметры могут быть заданы только в `MoinMoin/config/__init__.py` (являющемся частью кода сервера и, таким образом, влияющие на поведение всех экземпляров вики, его использующих), и не могут быть заданы в конфигурации отдельных вики — их стоит менять только в случае обоснованной необходимости для таковых действий: || '''Параметр''' || '''Значение по умолчанию''' || '''Описание''' || || `charset` || `'utf-8'` || Кодировка, используемая вики<
> '''Настоятельно не рекомендуется менять параметр `config.charset`. Это не тестировалось и ни коим образом не поддерживается.''' || || `lowerletters` || ''ucs-2 lowercase letters'' || Символы, считающиеся строчными буквами, используются для определения [[ВикиИмя|ВикиИмени]]. || || `smileys` || `[...]` || Список графических иконок, поддерживаемых МойнМойн — изображения и их размеры задаются в коде [[ПомощьПоТемам|темы]]. || || `umask` || `0770` || umask, используемая МойнМойн. Значение по умолчанию предоставляет права владельцу и группе, но не другим. || || `upperletters` || ''ucs-2 uppercase letters'' || Символы, считающиеся заглавными буквами, используются для определения [[ВикиИмя|ВикиИмени]]. || || `url_schemas` || `['http', 'ftp', ...]` || Протоколы URL, которые должны распознаваться в ссылках. || == Ссылки == * ПомощьПоСпискамДоступа — как задавать списки доступа страниц * ПомощьПоТемам — как изменить внешний вид вики * КакПроверятьПравописание — как настроить функцию проверки орфографии * /ПоддержкаПочты — работа с почтой в МойнМойн * ПомощьПоXmlСтраницам (настройка отображения XML и !DocBook) * /ПравилаДоступа * /ПрикреплённыеФайлы * /ЗащитаОтФлуда