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 -cen CGI et en CLI,
le paramètre php_ini en NSAPI,
la variable d'environnement PHP_INI_PATH en THTTPD)
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
(Base de registre de Windows)
La variable d'environnement PHPRC
Le dossier courant de travail (en 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 par extensions sont documentées respectivement
sur les pages du manuel de ces dernières directement. 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".