Configuration PHP
PHP est un système de pages web qui s'est développé accidentellement au sein d'un langage général assez raisonnable. La syntaxe de PHP, ses fonctionnalités et son modèle d'exécution présentent de vagues similitudes avec Perl ; les scripts sont chargés par un interpréteur, compilés en bytecode puis exécutés. L'interpréteur PHP peut être lancé en ligne de commande, au format CGI ou plus communément comme un module intégré de Apache.
Compatibilité MediaWiki
Voir les versions de PHP compatibles avec votre version de MediaWiki sur Compatibilité PHP
Installation
Veuillez voir https://php.net/install.
Options de compilation
Requis
Les extensions suivantes sont nécessaires à MediaWiki :
- Perl Compatible Regular Expressions : gestion des expressions régulières PERL compatibles
- Session
- bibliothèque standard de PHP
- Document Object Module
- iconv bibliothèque de conversion des jeux de caractères
- JSON (ou encore le fork pecl-json-c)
- mbstring gestion des chaînes de caractères codés sur plusieurs octets
- fileinfo détection du type MIME
- intl Normalisation Unicode
- calendar Support pour la conversion entre les différents calendriers
- Au moins un pilote de base de données :
MySQL et PostgreSQL via PDO ne sont pas compatibles
Perl Compatible Regular Expressions, Session, Standard PHP Library et JSON sont activés par défaut ; Perl Compatible Regular Expressions et Standard PHP Library ne peuvent pas être désactivées à partir de la version 5.3 de PHP.
Facultatif
MediaWiki nécessite ou demande que certaines fonctionnalités facultatives de PHP soient activées à la compilation :
- zlib bibliothèque de compression, utilisée également pour compresser les fichiers en cache
- sockets support pour les communications en réseau, en cas d'utilisation de memcached
- fonctions exif pour afficher les données EXIF à partir des images téléversées (
$wgShowEXIF
).
Exemple
Nous travaillons avec succès avec ces options de compilation :
'./configure' \ '--with-mysqli=mysqlnd' \ '--with-pdo-mysql=mysqlnd' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring'
De manière détaillée, ces options de configuration procèdent comme suit :
- --with-mysqli=mysqlnd
- Inclut la prise en charge de MySQLi (MySQL improved). Le gestionnaire natif MySQL est utilisé si la valeur est
mysqlnd
. - --with-pdo-mysql=mysqlnd
- PDO: prise en charge de MySQL. Le gestionnaire natif seta utilisé si la valeur est
mysqlnd
. - --with-apxs2=/usr/sbin/apxs2
- ceci est nécessaire si vous souhaitez construire mod_php. APXS sert à configurer la compilation d'un module Apache. Vous modifierez (ou omettrez) le chemin selon votre système.
- --with-zlib
- permet à PHP de lire / écrire les fichiers compressés au format Zip et d'envoyer les données compressées à Apache... ou quelque chose de semblable
- --with-ldap
- important si vous souhaitez que les utilisateurs de votre wiki puissent s'authentifier avec LDAP
- --with-gd
- à utiliser si vous souhaitez un traitement d'image 'au sein de' PHP ; sinon vous pouvez utiliser ImageMagick (IM). Cette option nécessite l'installation de diverses bibliothèques... cela dit, IM présente a priori les mêmes dépendances...
- --with-jpeg-dir
- pas de sens, à priori
- --with-iconv-dir
- pas de sens, à priori
- --enable-mbstring
- permet la prise en charge des chaînes de caractères à codage multi-octet. Cette option est facultative dans le sens où du code personnalisé moins performant sera utilisé si elle n'est pas disponible.
Mise en cache des Opcode
Du fait du grand volume de la base de code MediaWiki, il est fortement recommandé d'utiliser un système qui assure la mise en cache des scripts compilés ; l'extension PHP OPcache peut être utilisée pour cela. PHP est fourni habituellement avec cette extension préinstallée et activée.
Configuration à l'exécution (php.ini)
Certains paramètres dans php.ini modifient le comportement de MediaWiki tandis que d'autres sont incompatibles.
- magic_quotes_gpc
- Ces options ajoutent des guillemets aux données dans les directives
$_GET
,$_POST
et$_COOKIES
. MediaWiki peut fonctionner avec cette option activée, mais sera plus lent car il doit retirer ces guillemets. - magic_quotes_runtime
- Cette option perturbe les entrées de données de manière imprévisible en ajoutant des guillemets, par exemple dans les fichiers ouverts, aux données reçues à partir d'une base de données, etc. MediaWiki refusera d'être installé si cette option est activée.
- magic_quotes_sybase
- même chose que magic_quotes_runtime
- mbstring.func_overload
- Cette option engendre des erreurs et elle est susceptible de corrompre les données de manière imprévisible ; MediaWiki refusera d'être installé si cette option est activée.
- zend.ze1_compatibility_mode
- Cette option engendre des bogues désastreux ; MediaWiki refusera d'être installée si cette option est activée.
- memory_limit
- MediaWiki requiert suffisamment de mémoire pour fonctionner. Le seuil minimum devrait être proche de 20 Mo, mais si vous voulez que MediaWiki fonctionne correctement, alors il faut envisager d'utiliser au moins 50 Mo.
- disable_functions
- De manière à trouver les programmes GNU diff3 et git durant la phase d'installation, cette entrée ne doit pas contenir passthru
- post_max_size
- Si l'erreur "Certaines parties du formulaire de modification n’ont pas atteint le serveur, vérifiez que vos modifications sont intactes et essayez à nouveau." survient, le préfixe "MB" est probablement configuré à la place d'un simple "M"; MB est interprété alors en octets (bytes), et non en méga-octets.
Redimensionnement d'image
ImageMagick ou le module PHP GD peuvent être utilisés pour créer les vignettes d'images. Voir les Vignettes d'images