Le fichier de configuration

Le fichier de configuration (php.ini) 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 serveur web. 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)

  • 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, l'endroit o� se trouve le fichier php.ini peut �tre d�finis pour diff�rentes versions de PHP. Les cl�s de registre suivantes sont cherch�es dans cet ordre : [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], o� x, y et z signifie les versions majeures, mineures et normales. S'il y a une valeur pour IniFilePath dans ces cl�s, la premi�re trouv�e sera utilis�e comme endroit o� se trouve le fichier php.ini (uniquement sous Windows).

  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], valeur de IniFilePath (uniquement sous Windows).

  • Le dossier courant de travail (sauf pour CLI)

  • Le dossier du serveur web (pour les modules SAPI), ou le dossier contenant PHP (autrement sous 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�marrage, 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 version du php.ini sur CVS.

Exemple #1 Extrait du php.ini

; tout texte sur une ligne, situ� apr�s un point-virgule ";" est ignor�
[php] ; les marqueurs 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 antislash 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".