Como integrar o seu wiki com a configuração de Apache existente

Existem actualmente 5 formas de correr um MoinMoin: Utilizar CGI, FastCGI, Mod Python, servidor Standalone ou servidor Twisted. As opções mais avançadas são FastCGI, cuja licença é restrita, e Mod Python, que necessita de muita RAM. O FastCGI e o Mod Python não estão disponíveis para todas as plataformas e são conhecidas pelos problemas de configuração. A solução seguinte é correr os servidores Twisted ou Standalone, which que são muito mais rápidos que o CGI e mais fáceis de configurar.

No entanto, muitas pessoas já corriam servidores web e disponibilizavam páginas estáticas ou outras aplicações, e querem adicionar um wiki à configuração actual. Para elas, a melhor opção é executar o MoinMoin com proxy de um servidor Standalone ou Twisted por trás do seu servidor web de Apache existente. Isto funciona noutros casos menos habituais com configurações simples.

No exemplo de configuração em baixo, vamos integrar um MoinMoin no nosso sítio http://www.example.com/exwiki/.

Requisitos

  1. Instalação já existente do servidor web Apache 1 ou Apache 2
  2. Instalação já existente do servidor Standalone ou Twisted como explicamos no tópico AjudaNaInstalação.

Integrar com Apache 2

Configuração Standalone ou Twisted

Se quiser utilizar o Twisted, edite o ficheiro mointwisted.py e defina estas opções:

    port = 8000
    interfaces = ['localhost']

Se quiser utilizar o Standalone, edite o ficheiro standalone.py e defina estas opções:

    port = 8000
    interface = 'localhost'

Agora execute o seu servidor do moin e verifique se funciona em http://localhost:8000.

Configuração do Apache 2

Esta configuração requer o mod_proxy e o mod_headers. Certifique-se de que são instalados e carregados antes de continuar.

Edite o seu ficheiro de configuração do Apache, ou o httpd.conf ou um ficheiro de configuração incluído:

# Pode ser off para reverse proxying, mais seguro
ProxyRequests Off

Alias /moin_static160/ "/usr/share/moin/htdocs/"

<Location /exwiki/>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
    RequestHeader set X-Moin-Location /exwiki/
</Location>

Agora reinicie o Apache e teste o seu wiki no http://localhost/exwiki/ ou http://www.example.com/exwiki/

Esta configuração foi testada em Mac OS X.

Em Debian Sarge, a configuração de Apache por omissão nega o acesso a qualquer proxy. Por esse motivo, deve adicionar pelo menos o seguinte:

<Proxy http://localhost:8080/>
  Order deny, allow
  Allow from all
</Proxy>

Integrar com Apache 1

Configuração Standalone ou Twisted

Se quiser utilizar o Twisted, edite o ficheiro mointwisted.py e defina estas opções:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interfaces = ['localhost']

Se quiser utilizar o Standalone, edite o ficheiro standalone.py e defina estas opções:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interface = 'localhost'

Configuração do Apache 1

Esta configuração requer o mod_proxy. Certifique-se de que é instalado e carregado antes de continuar.

Edite o seu ficheiro de configuração do Apache, ou o httpd.conf ou um ficheiro de configuração incluído:

# Pode ser off para reverse proxying, mais seguro
ProxyRequests Off

Alias /moin_static160/ "/usr/share/moin/htdocs/"

<Location /exwiki>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
</Location>

Agora reinicie o Apache e teste o seu wiki em http://www.example.com/exwiki/

Configuração de Farms

Ao correr o Twisted ou Standalone sem um proxy, o url do wiki contém o nome do servidor (e algumas vezes também o porto) e o nome da página. Por exemplo: localhost:8000/nomedapágina.

No entanto, ao correr com um proxy, o url do wiki contém o servidor do proxy, não o nome do servidor, e pode incluir um "script_name". Neste caso, o wiki que for executado no localhost:8000 pode ter um url como www.example.com/exwiki/nomedapágina quando acede através do proxy, e localhost:8000/nomedapágina quando acede localmente.

Se quiser utilizar o mesmo ficheiro de configuração para o acesso local e geral, utilize definições como esta no seu ficheiro farmconfig.py:

wikis = [('exwiki', r'^(localhost:8000|www.example.com/exwiki).*')]

Se quiser uma configuração diferente para acesso local e geral:

wikis = [('exwiki_local', r'^localhost:8000.*'),
         ('exwiki_world', r'^www.example.com/exwiki.*'),]

Desactivar reescrever do servidor

Se quiser desactivar o novo reescrever transparente do servidor, sobreponha o http_host no script do seu servidor:

    properties = {'http_host': 'hostname'}