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 -c
en CGI et en CLI)
-
La variable d'environnement PHPRC.
-
L'endroit où se trouve le fichier
php.ini
peut être définis pour différentes versions de PHP.
La racine des clés de registre dépend de l'architecture 32 ou 64 bit de l'OS et de PHP.
Pour un OS et PHP 32 bit ou un OS et PHP 64 bit, utiliser
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
pour PHP 32 bit
sur un OS 64 bit, utiliser
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]
à la place.
Pour une installation avec la même architecture, 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.
Pour une architecture 32 bit de PHP sur un OS 64 bit, les clés de
registre suivantes sont cherchées dans cet ordre :
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z]
,
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y]
and
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\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]
ou
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\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 fichiers racine s'il existe.
Les variables d'environnements peuvent être utilisées dans le fichier
php.ini comme ci-dessous.
Exemple #1 Les variables d'environnement dans un fichier php.ini
; PHP_MEMORY_LIMIT est repris depuis l'environnement
memory_limit = ${PHP_MEMORY_LIMIT}
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 Git.
Exemple #2 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"
Il est possible de se référer à des variables .ini
depuis des fichiers .ini. Par exemple : open_basedir = ${open_basedir}
":/new/dir"
.
Lire un répertoire
Il est possible de configurer PHP pour lire les fichiers .ini présent dans un dossier.
après la lecture de php.ini. Cela est réglé lors de la compilation avec l'argument
--with-config-file-scan-dir.
Le dossier à lire peut être modifié lors de l'exécution
par la définition de la variable d'environnement PHP_INI_SCAN_DIR.
Il est possible de lire plusieurs dossiers en les séparant avec un
séparateur de chemin spécifique à la plateforme (;
pour Windows, NetWare
et RISC OS; :
pour toutes les autres plateforme; la valeur utilisée par PHP est
disponible dans la contante PATH_SEPARATOR
).
Si un dossier vide est fourni dans
PHP_INI_SCAN_DIR, PHP
lira également le dossier fournis à la compilation via
--with-config-file-scan-dir.
Dans chaque répertoire, PHP lira tous les fichiers terminant par
.ini
dans l'ordre alphabétique. Une liste des fichiers qui
ont été chargé et dans quel ordre est disponible en appelant la fonction
php_ini_scanned_files(), ou en exécutant PHP avec l'option
--ini.