Configuration Apache
Le serveur HTTP Apache (httpd) est le serveur web le plus utilisé avec MediaWiki.
Modules
PHP
PHP en tant que module Apache
MediaWiki est écrit pour utiliser PHP en tant que module Apache. Votre PHP est probablement configuré en tant que module si vous démarrez avec des URLs comme :
example.com/index.php/Main_Page
Vous pouvez vérifier la configuration et la version de PHP dont vous bénéficiez en visualisant la page Special:Version de votre wiki ou bien avec phpinfo().
Installez PHP, Apache, et le module PHP pour Apache. Après cela, assurez-vous que le service Apache est opérationnel. Pour les commandes spécifiques, référez-vous à la documentation de votre système d'exploitation ou de votre distribution.
PHP en tant que CGI
Si PHP fonctionne en tant que CGI, vous aurez par défaut des URL moches, mais vous pouvez toujours mettre en place des URL courtes.
CGIWrap
Si votre propre serveur exécute Apache et que vous exécutez PHP en tant que CGI, vous pouvez installer CGIWrap. Cet outil vous permet d'exécuter le serveur Apache comme un utilisateur différent pour les CGIs.
De cette manière vous pouvez créer un nouvel utilisateur pour vos pages MediaWiki. L'installation de CGIWrap est au-delà des objectifs de ce document, particulièrement depuis qu'il faut le compiler en fonction de votre propre serveur. Néanmoins, comme guide rapide, vous pouvez suivre les règles suivantes :
- Créez un utilisateur Wikimedia
useradd -M -s /sbin/nologin wikiuser
- Avoir un dossier cgi-bin, contenant CGIWrap (par exemple dans /home/myuser/cgi-bin). Une fois que tout est configuré, ne gardez que cgiwrap, déplacez les versions de débogage vers un autre dossier au cas où vous en auriez encore besoin. Votre fichier cgiwrap doit être accessible uniquement de Apache (chown et chmod respectivement).
chown apache:apache cgiwrap
chmod 500 cgiwrap
- Dans le dossier cgi-bin, créez un lien symbolique vers la racine de Wikimedia.
ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
- Dans le fichier .htaccess de votre wiki, ajoutez les définitions suivantes :
AddHandler php-wrapper .php Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
- Enfin passez chown et chmod sur tous les fichiers .php de votre dossier Wikimedia pour être accessibles uniquement par l'utilisateur du wiki.
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;
Les fichiers sont accessibles comme habituellement. Vous n'avez pas besoin de préciser dans votre chemin les cgi-bin, car cela est fait pour vous de manière transparente.
Il vous est fortement recommandé de commencer avec /cgi-bin/cgiwrapd/... comme votre wrapper PHP, car il affichera précisément ce qui fonctionne actuellement. De même, ne supprimez pas le dossier source CGIWrap tant que tout ne fonctionne pas normalement car c'est qu'un essai réel et un processus d'erreur, qui prennent tous deux du temps. Néanmoins, çela en vaut la peine car votre MediaWiki s'exécute dans son propre processus indépendant, avec son UID propre, et sans avoir la possibilité d'interférer avec d'autres UIDs. L'inverse est également vrai, sauf pour le cas de root qui peut tout lire et n'importe où.
mod_alias / mod_rewrite
La méthode recommandée pour magnifier les URLs implique mod_alias. Les autres façons de faire utilisent mod_rewrite à la place.
mod_security
Il est connu que ModSecurity peut causer des problèmes avec MediaWiki. Si vous obtenez des erreurs apparemment aléatoires, vérifiez votre journal d'erreurs pour voir s'il en n'est pas l'origine.
VisualEditor et les sous-pages
Pour empêcher que les erreurs ne contactent le serveur Parsoid, AllowEncodedSlashes NoDecode
doivent être ajoutés au bloc de configuration VirtualHost du wiki (ou au fichier de configuration général du serveur si les VirtualHosts ne sont pas utilisés).[1]
Taille de la pile des processus
La taille de la pile pour chaque processus Apache (thread) est configurable et les différences dépendent des systèmes d'exploitation. Pour exécuter MediaWiki sous Windows il peut être utile d'augmenter la taille de la pile (si les problèmes apparaissent), car la valeur de 1Mo par défaut est faible et peut provoquer des débordements de pile pendant l'exécution des scripts PHP. Les paramètres suivants de httpd.conf vont définir la taille de la pile à environ 8Mo (valeur par défaut typique pour Linux) :
<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>
Robots d'indexation et autres robots
Vous devriez utiliser un fichier robots.txt pour indiquer aux robots d'indexation honnêtes de ne pas télécharger les pages générées dynamiquement (par exemple les pages modifiées). Ceci peut réduire la charge de votre serveur web, préserver votre bande passante et empêcher les problèmes de duplication de contenu avec les moteurs de recherche. Néanmoins, des robots malicieux peuvent étouffer votre serveur web et gaspiller votre bande passante en téléchargeant un grand volume de pages très rapidement. Limiter le nombre de requêtes peut aider à se protéger contre cela.
Voir aussi