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/.
Contents
Requisiti
- Un'installazione esistente del server web Apache 1 o Apache 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>
Se viene modificato il valore dell'header X-Moin-Location, potrebbe essere necessario cancellare manualmente i dati nella cache affinché le modifiche abbiano effetto. Per maggiori dettagli consultare MoinMoinBugs/SiteLocationIgnoredOnEditPage.
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'
Un'altra soluzione potrebbe essere l'uso dell'opzione di configurazione url_mapping.
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/
Il proprio wiki non funzionerà correttamente, in questa configurazione, usando l'URL http://localhost:8000
Provato con Apache 2, dovrebbe funzionare anche con Apache 1.
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'}