Come integrare il proprio wiki in una configurazione Apache esistente

Attualmente ci sono 5 possibilità di esecuzione di un wiki MoinMoin: usando CGI, FastCGI, Mod Python, server Standalone e Twisted. Le funzioni più avanzate sono FastCGI, la cui licenza non è libera, e Mod Python, che richiede molta memoria RAM. FastCGI e Mod Python non sono disponibili su tutte le piattaforme e sono noti per avere problemi di configurazione. L'altra soluzione è l'esecuzione di Twisted o di Standalone, molto più veloci di CGI e più facili da configurare.

Molte persone hanno già in esecuzione un server web e forniscono pagine statiche o altre applicazioni e vogliono aggiungere un wiki. Per loro, la soluzione ideale è l'esecuzione di MoinMoin nella versione Standalone o Twisted in proxy dietro il server web Apache. Questo funziona semplicemente senza troppe configurazioni.

Nell'esempio riportato in seguito, verrà integrato un wiki MoinMoin all'interno del sito http://www.example.com/exwiki/.

Requisiti

  1. Un'installazione esistente del server web Apache 1 o Apache 2
  2. Un'installazione esistente del server Standalone o Twisted come spiegato in AiutoSuInstallazione.

Integrazione con Apache 2

Configurazione Standalone o Twisted

Per usare Twisted, modificare mointwisted.py e impostare le seguenti opzioni:

    port = 8000
    interfaces = ['localhost']

Per usare Standalone, modificare standalone.py e impostare le seguenti opzioni:

    port = 8000
    interface = 'localhost'

Eseguire il server moin e controllare che funzioni all'indirizzo http://localhost:8000.

Configurazione Apache 2

Questa configurazione richiede mod_proxy e mod_headers. Assicurarsi che siano installati e caricati prima di continuare.

Modificare il file di configurazione di Apache, httpd.conf o quanto altro:

# Can be off for reverse proxying, more secure
ProxyRequests Off

Alias /moin_static170/ "/usr/share/moin/htdocs/"

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

Riavviare Apache e provare il wiki all'indirizzo http://localhost/exwiki/ o http://www.example.com/exwiki/

Questa configurazione è stata provata su Mac OS X.

Su Debian Sarge, la configurazione predefinita di Apache nega tutti gli accessi proxy, quindi è almeno necessario inserire quanto segue:

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

Integrazione con Apache 1

Configurazione Standalone o Twisted

Per usare Twisted, modificare mointwisted.py e impostare le seguenti opzioni:

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

Per usare Standalone, modificare standalone.py e impostare le seguenti opzioni:

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

Configurazione Apache 1

Questa configurazione richiede mod_proxy. Assicurarsi che sia installato prima di continuare.

Modificare il file di configurazione di Apache, httpd.conf o quanto altro:

# Can be off for reverse proxying, more secure
ProxyRequests Off

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

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

Riavviare Apache e provare il wiki all'indirizzo http://www.example.com/exwiki/

Configurazione farm

Quando viene eseguito il server Twisted o Standalone senza un proxy, l'URL del wiki contiene il nome del server (e solitamente anche la porta) e il nome della pagina. Per esempio: localhost:8000/nomepagina.

Quando in esecuzione dietro un proxy, l'URL del wiki contiene l'host proxy, non il nome del server, e potrebbe includere uno "script_name". In questo caso, il wiki in esecuzione su localhost:8000 potrebbe avere un URL tipo www.example.com/exwiki/nomepagina quando si accede attraverso il proxy e localhost:8000/nomepagina quando vi si accede localmente.

Per usare lo stesso file di configurazione per l'accesso locale e globale, utilizzare una configurazione come la seguente nel file farmconfig.py:

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

Per avere diverse configurazioni:

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

Disabilitare l'host rewrite

Per disabilitare l'host rewrite, "sovrascrivere" http_host nella configurazione del server:

    properties = {'http_host': 'hostname'}