Le fichier de configuration (appelé “php3.ini” dans la version 3 de PHP, et simplement “php.ini” dans la version 4) est lu par PHP au démarrage. Si vous avez compilé PHP en module, le fichier n’est lu qu’une seule fois, au lancement du démon HTTP. Pour les versions CGI et CLI le fichier est lu à chaque invocation.
Le “php.ini” est cherché dans ces endroits (et dans cet ordre) :
L’endroit spécifique du module SAPI (la directive “PHPIniDir” d’Apache 2, l’option de la ligne de commande “-c”en
CGI et en CLI, le paramètre “php_ini” en NSAPI, la variable d’environnement “
PHP_INI_PATH” en THTTPD)
La variable d’environnement “PHPRC”. Avant
PHP 5.2.0, cette variable était récupérée après la clé de registre mentionnée ci-dessous.
Depuis
PHP 5.2.0, les clés de registre suivantes sont cherchées dans cet ordre : “HKEY_LOCAL_MACHINE\SOFTWARE\
PHP\IniFilePath\x.y.z”, “HKEY_LOCAL_MACHINE\SOFTWARE\
PHP\IniFilePath\x.y” et “HKEY_LOCAL_MACHINE\SOFTWARE\
PHP\IniFilePath\x”, où x, y et z signifie les versions majeurs, mineurs et normales.
“HKEY_LOCAL_MACHINE\SOFTWARE\
PHP\IniFilePath” (Registre Windows)
Le dossier courant de travail (sous pour CLI)
Le dossier du serveur web (pour les modules SAPI), ou le dossier contenant
PHP (autrement dans Windows)
Le dossier Windows (”C:\windows” ou “C:\winnt”) (pour Windows), ou l’option de compilation “–with-config-file-path” lors de la compilation
Si le fichier “php-SAPI.ini” existe (où SAPI utilise SAPI, donc le nom du fichier est e.g. “php-cli.ini” ou “php-apache.ini”), il sera utilisé à la place du “php.ini”. Le nom SAPI peut être déterminé en utilisant la fonction php_sapi_name().
Note : Le serveur web Apache change ce dossier en dossier root au démarage, ce qui fait que
PHP essaye de lire “php.ini” depuis le système de fichier racine s’il existe.
Les directives “php.ini” sont directement documentées, par extensions, sur les pages respectives du manuel de ces extensions. La liste des directives internes est disponible en annexe. Il est probable que toutes les directives PHP ne sont pas documentées dans le manuel. Pour une liste complète des directives disponibles dans votre version de PHP, merci de lire les commentaires de votre propre fichier “php.ini”. Vous pouvez également trouver la dernière liste disponible sur CVS.
| **Exemple 9-1. Extrait du “php.ini” | ; tout texte sur une ligne, situé après un point-virgule “;” est ignoré [php] ; les marqueur de section (texte entre crochets) sont aussi ignorés ; Les valeurs booléennes peuvent être spécifiées comme ceci : ; true, on, yes ; ou false, off, no, none register_globals = off track_errors = yes ; vous pouvez placer les chaînes de caractères entre guillemets include_path = “.:/usr/local/lib/php” ; Les anti-slash sont traités comme n’importe quel caractère include_path = “.;c:\php\lib” | |
Depuis PHP 5.1.0, il est possible de se référer à des variables .ini depuis des fichiers .ini. Par exemple : “open_basedir = ${open_basedir} “:/new/dir”“.