Configurar vários wikis

O servidor do wiki moinmoin consegue gerir vários wikis através de uma única instalação, uma única definição dos ficheiros de configuração e um único processamento de servidor. Isto é necessário essencialmente para ambientes persistentes como o twisted, porque este servidor irá ser executado permanentemente num endereço IP e num número porto TCP específicos. Para o alojamento virtual de vários domínios (wikis) no mesmo IP e porto, é necessário que o servidor wiki carregue diversas configurações constante e simultaneamente e que saiba optar pela correcta para gerir um pedido de um URL específico.

Para saber optar pela configuração correcta, o moin utiliza a variável de configuração wikis localizada no ficheiro farmconfig.py - contém uma lista de pares (wikiname, url-regex). Por favor, utilize apenas identificadores de python válidos para wikiname (para ser mais preciso: identifier ::= (letter|"_") (letter | digit | "_")* - tente com uma palavra simples se não tiver percebido essa regra gramatical). Ao processar um pedido de um URL, o moin faz uma pesquisa nesta lista pelo url-regex correspondente ao URL actual. Não não existir correspondência, prossegue para o par seguinte. Se não existir correspondência, o moin carrega um ficheiro de configuração achamado <wikiname>.py (geralmente da mesma directoria) que contém a configuração para esse wiki.

O ficheiro farmconfig.py no arquivo de distribuição tem alguns exemplos para um wiki farm que executa vários wikis. Se quiser executar vários wikis, é necessário adaptá-lo às suas necessidades.

/!\ Para simplificação de conceitos nestas páginas de ajuda, identificamos um ficheiro de configuração como o <wikiname>.py como wikiconfig.py. Deve substituir o nome de ficheiro pelo que entender.

Certamente já alterou as definições dos wikis no ficheiro farmconfig.py (ver em cima), por isso vamos dar-lhe apenas algumas dicas no que diz respeito a poupar esforços. Por favor, leia também as dicas de configuração de um wiki único, uma vez que explica o conceito de herança de configurações.

Agora utilizamos a configuração baseada em classes para configurar as definições habituais dos seus wiki num só local: na base config class (ver o ficheiro farmconfig.py para obter um exemplo):

farmconfig.py:

# -*- coding: iso-8859-1 -*-
# farmconfig.py:
from MoinMoin.multiconfig import DefaultConfig
class FarmConfig(DefaultConfig):
    url_prefix = '/wiki'
    show_hosts = True
    underlay_dir = '/where/ever/common/underlay'
    # ...

As configurações dos seus wikis individuais mantêm apenas as definições das diferenças (como o logótipo, ou a directoria de dados ou as definições de ACLs). Todas as outras definições são herdadas da classe de configuração básica. Veja um exemplo no ficheiro moinmaster.py.

moinmaster.py:

# -*- coding: iso-8859-1 -*-
# moinmaster.py:
from farmconfig import FarmConfig
class Config(FarmConfig):
    show_hosts = False
    sitename = u'MoinMaster'
    interwikiname = 'MoinMaster'
    data_dir = '/org/de.wikiwikiweb.moinmaster/data/'
    # ...