Apache configuratie

This page is a translated version of the page Apache configuration and the translation is 100% complete.

Apache HTTP Server (httpd) is de meest gebruikte webserver voor MediaWiki.

Modules

PHP

PHP als Apache Module

MediaWiki is geschreven om PHP te gebruiken als een Apache module. Uw PHP is waarschijnlijk geconfigureerd als een module als uw URL's beginnen met:

example.com/index.php/Main_Page

U kunt de configuratie en versie van uw PHP zien door te kijken op uw wiki Special:Version pagina of met phpinfo().

Installeren PHP, Apache en de PHP-module voor Apache. Controleer daarna of de Apache service wordt uitgevoerd. Voor specifieke commando's, raadpleeg de documentatie van uw besturingssysteem of distributie.

PHP als CGI

Als PHP wordt uitgevoerd als CGI, dan krijgt u standaard "lelijke" URL's, maar kunt u nog steeds korte URL's implementeren.

CGIWrap

Indien u zelf een server heeft waarop Apache en PHP als CGI draaien, dan kunt een CGIWrap installeren. Hiermee kunt u de Apache server als een andere gebruiker uitvoeren voor CGI's.

Op die manier kunt u een nieuwe gebruiker voor uw MediaWiki pagina's maken. Het installeren van CGIWrap valt buiten het doel van dit document, vooral omdat u het moet compileren wat afhankelijk is van uw server. Als een beknopte aanwezig, volg deze regels:

  • Voer een Wikimedia gebruiker toe
useradd -M -s /sbin/nologin wikiuser
  • Maak een map cgi-bin folder, bevattende CGIWrap (voorbeeld in /home/myuser/cgi-bin). Nadat alles is geconfigureerd, bewaar alleen cgiwrap, verplaats de debug versies naar een andere map voor het geval u het ooit nodig heeft. Uw bestand cgiwrap moet alleen benaderbaar zijn voor Apache (instellen met chown en chmod).
chown apache:apache cgiwrap
chmod 500 cgiwrap
  • Maak in de map cgi-bin een symbolische link aan naar de Wikimedia root.
ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
  • Voeg in uw bestand .htaccess van uw wiki, de volgende definities toe:
AddHandler php-wrapper .php
Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
  • Tot slot, chown en chmod alle php-bestanden van uw map Wikimedia om alleen bereikbaar te zijn voor wikiuser.
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;

De bestanden zijn normaal benaderbaar. U hoeft in uw pad geen cgi-bin te specificeren, dit wordt voor u vanzelf gedaan.

De oorspronkelijke schrijver beveelt aan dat u begint met /cgi-bin/cgiwrapd/... als uw php-wrapper, dit zal precies aangeven wat op dit moment goed werkt. Verwijder uw map CGIWrap niet voordat alles perfect werkt, dit is een mogelijk langdurig proces van zaken maar uitproberen. Maar dat is het waard om MediaWiki als een losstaand proces uit te voeren, in het eigen uid, zonder kans op verstoringen met een andere uid. Het omgekeerd is ook waar, behalve voor de root, dit kan alles en overal lezen.

mod_alias / mod_rewrite

De aanbevolen methode voor mooie URL's bevat mod_alias. Andere methode gebruiken daarvoor mod_rewrite.

mod_security

ModSecurity heeft problemen veroorzaakt in de MediaWiki. Als u willekeurige fouten lijkt te krijgen, controleer uw logbestanden om te kijken of het problemen veroorzaakt.

VisualEditor en subpagina's

Om deze fouten te voorkomen bij het benaderen van de Parsoid server, moet AllowEncodedSlashes NoDecode worden toegevoegd aan de wiki's VirtualHost configuratie blok (of aan de algemene serverconfiguratie als de VirtualHosts niet worden gebruikt).[1]

Thread grootte

De grootte van een Apache thread is instelbaar en de standaard verschilt per besturingssysteem. Om MediaWiki op Windows uit te voeren, kan het nodig zijn die grootte te verhogen (bij problemen), als de 1MB standaard te laag is en den stack overloop kan veroorzaken tijdens het uitvoeren van een PHP-script. De volgende httpd.conf instelling zet de grootte van de stack op 8MB (eem typische Linux standaard):

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

Spiders en bots

Gebruik een bestand robots.txt om nette spiders te melden dat ze geen dynamisch aangemaakte pagina's moeten downloaden (bijvoorbeeld bewerkingspagina's). Dit kan de 'load' op uw webserver verlagen, bespaart u dus bandbreedte en voorkomt problemen met dubbele inhoud door zoekmachines. Als de bot helemaal niet netjes is, dan kunnen er veel pagina's tegelijk gedownload worden, wat dan elke gebruiker merkt. Aanvraagbeperking (Request throttling) kan hierbij een beveiliging zijn.

Zie ook

Referenties