Configurazione di Apache
Apache HTTP Server (httpd) è il server web più utilizzato per MediaWiki.
Moduli
PHP
PHP come modulo di Apache
MediaWiki è scritto per utilizzare il PHP come modulo di Apache. La tua installazione di PHP probabilmente è configurata come modulo se le tue URL iniziano così:
example.com/index.php/Main_Page
Puoi controllare qual è la configurazione e la versione di PHP visualizzando la pagina Special:Version della tua wiki, o con phpinfo().
Installa PHP, Apache e il modulo PHP per Apache. Dopo, assicurati che il servizio Apache sia in esecuzione. Per i comandi specifici, fai riferimento alla documentazione del sistema operativo o della distribuzione.
PHP come CGI
Se il PHP funziona come CGI, avrai delle URL "brutte" come predefinite, ma sarà comunque possibile abilitare delle URL corte.
CGIWrap
Se sul tuo server gira Apache e hai configurato PHP come CGI, puoi installare CGIWrap. Questo strumento ti permette di far girare il server Apache con un altro utente per le CGI.
In questo modo, hai la possibilità di creare un nuovo utente per le tue pagine MediaWiki. L'installazione di CGIWrap è al di fuori dello scopo di questo documento, soprattutto perché è necessario compilarlo in base al proprio server. Tuttavia, come una guida rapida, puoi seguire queste regole:
- Crea un utente Wikimedia
useradd -M -s /sbin/nologin wikiuser
- Predisponi una cartella cgi-bin contenente CGIWrap (per esempio in /home/myuser/cgi-bin). Una volta che tutto è configurato, conserva solo cgiwrap, sposta le versioni di debug in un'altra cartella per eventuali necessità successive. Il tuo file cgiwrap deve essere accessibile solo a Apache (usa chown e chmod secondo le tue necessità).
chown apache:apache cgiwrap
chmod 500 cgiwrap
- All'interno della cartella cgi-bin, crea un link simbolico verso la cartella radice di Wikimedia.
ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
- Nel file .htaccess della tua wiki, aggiungi le seguenti definizioni:
AddHandler php-wrapper .php Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
- Infine, usa chown e chmod su tutti i file .php della cartella Wikimedia per renderli accessibili esclusivamente dall'utente creato per tale scopo.
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
I file saranno accessibili come al solito. Non è necessario specificare nel percorso alcun cgi-bin, poiché questo è gestito automaticamente in modo trasparente.
Ti consiglio vivamente di iniziare usando /cgi-bin/cgiwrapd/... come php-wrapper, in quanto mostrerà esattamente cosa sta funzionando attualmente. Suggerisco inoltre di non cancellare la cartella originale di CGIWrap finché tutto non funziona perfettamente, poiché questo è un vero processo di affinamento in base agli errori che incontri e potrebbe richiede molto tempo. Si tratta però di tempo speso bene, dal momento che MediaWiki sarà gestito nel suo processo separato, nel suo stesso UID, senza essere in grado di interferire con nessun altro UID. Vale anche l'inverso, tranne per root, che può leggere qualsiasi cosa ovunque.
mod_alias / mod_rewrite
The recommended method of beautifying URLs involves mod_alias. Other methods use mod_rewrite instead.
mod_security
ModSecurity has been known to cause problems with MediaWiki. If you get errors seemingly at random, check your error log to see whether it is causing problems.
VisualEditor and Subpages
In order to prevent errors contacting the Parsoid server, AllowEncodedSlashes NoDecode
must be added to the wiki's VirtualHost config block (or to the general server config if VirtualHosts are not used).[1]
Thread stack size
The stack size for each Apache thread is configurable and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can cause stack overflows during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):
<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>
Spiders and bots
You really should use a robots.txt file to tell well-behaved spiders not to download dynamically generated pages (edit pages, for instance). This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines. However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly. Request throttling can help protect against this.