PHP configuration/fr

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 Compatibility#PHP

Installation
Veuillez voir https://secure.php.net/install.

Requis
Les extensions suivantes sont nécessaires à MediaWiki : MySQL et PostgreSQL via PDO ne sont pas compatibles
 * Perl Compatible Regular Expressions : gestion des expressions régulières via PERL
 * 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 chaines de caractères codés sur plusieurs octets
 * fileinfo détection du type MIME
 * Au moins un pilote de base de données :
 * MySQL
 * PostgreSQL
 * SQLite (via PDO)

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
 * FastStringSearch (recherche rapide de chaine)

Exemple
Nous travaillons avec succès avec ces options de compilation :

 './configure' \ '--with-mysql' \ '--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-mysql : permet à PHP d'interroger MySQL. Cette fonctionnalité est essentielle (à mon sens). L'installation de MySQL est un préalable à l'activation de cette option.
 * --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 des fichiers compressés au format Zip et d'envoyer des 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 ; autrement 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 : ne semble pas censée
 * --with-iconv-dir : ne semble pas censée
 * --enable-mbstring : permet la prise en charge des chaines 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 Opcode

 * Voir

Du fait du grand volume de la base de code de MediaWiki, il est fortement recommandé d'utiliser un système qui assure la mise en cache des scripts compilés ; des plugins existent pour PHP, certains sont libres, d'autres propriétaires. Voici une liste de caches :
 * cache PHP alternatif -- utilisé pour Wikimedia
 * extension de cache Windows pour PHP -- recommandé pour les utilisateurs de IIS

Heureusement, ceux-ci semblent tous faciles à installer comme plugins Zend. Il suffit de les glisser dans une bibliothèque et de modifier le fichier de configuration php.ini. Nul besoin de recompiler entièrement PHP !

En fonction du cache et des options utilisés, vous devrez peut-être effectuer une opération particulière lors de la mise à jour des fichiers de script.

MediaWiki peut également interagit avec ces caches et les utiliser pour la mise en cache d'objets. Voir.

Configuration à l'exécution (php.ini)
Certains paramètres dans php.ini modifient le comportement de MediaWiki tandis que d'autres ne sont pas compatibles avec lui


 * register_globals


 * safe_mode
 * Safe mode is an ill-conceived, broken-by-design setting in PHP; MediaWiki can work with this option on, but some features won't work.


 * magic_quotes_gpc
 * This options adds quotes to data in,   and  . MediaWiki can work with this option turned on, but will have to remove these quotes and thus will be slower.


 * magic_quotes_runtime
 * This option corrupts data input unpredictably by adding quotes in e.g. opened files, data received from database etc. MediaWiki will refuse to install if this option is turned on.


 * magic_quotes_sybase
 * same as magic_quotes_runtime


 * mbstring.func_overload
 * This option causes errors and may corrupt data unpredictably; MediaWiki will refuse to install if this option is turned on.


 * zend.ze1_compatibility_mode
 * This option causes horrible bugs; MediaWiki will refuse to install if this option is turned on.


 * memory_limit
 * MediaWiki needs sufficiently memory to work. The minimal limit should be something like 20 MB, but if you want MediaWiki to work correctly, consider using at least 50 MB.


 * disable_functions
 * To be able to find GNU diff3 and git during installation process this entry must not contain passthru


 * post_max_size
 * If you are getting the error " " then it could be because this is set with a "MB" prefix, instead of just "M" (the former is interpreted at bytes, not megabytes).

Image Resizing
ImageMagick can be used for image resizing. When it is not available, the GD PHP module is used instead where found.

Voir aussi

 * PHP Knowledgebase
 * PHP Tutorials
 * Suhosin (Hardened-PHP Project patch and extension)