Manuel PHP
Précédent | Annexe G. Directives du `php.ini` | Suivant

# Description des directives internes du `php.ini`

Cette liste inclut les directives internes du `php.ini` que vous pouvez définir pour personnaliser votre configuration de PHP. Les directives gérées par les extensions sont listées et détaillées dans les pages de documentation respectives des extensions ; les informations concernant les directives sur les sessions par exemple, peuvent être trouvées sur la page de documentation des sessions.

## Options Httpd

Tableau G-3. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
async_send | "0" | PHP_INI_ALL |

## Options du langage

Tableau G-4. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
precision | "14" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
expose_php | "1" | `php.ini` uniquement |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`short_open_tag` boolean

  Définit si les balises courtes d'ouverture de PHP (`<? ?>`) sont autorisées ou non. Si vous voulez utiliser PHP avec XML, vous devez désactiver cette option de configuration pour pouvoir utiliser `<?xml ?>`. Sinon, vous pouvez l'écrire à l'aide de PHP, par exemple : `<?php echo '<?xml version="1.0"'; ?>`. Si cette option est désactivée, vous devez utiliser la version longue d'ouverture de balises PHP (`<?php ?>`).

  > Note : Cette directive affecte également l'utilisation de `<?=`, qui est identique à `<? echo`. L'utilisation de cette écriture nécessite que l'option short_open_tag soit activée. to be on.

`asp_tags` boolean

  Active l'utilisation des balises ASP (`<% %>`) tout en conservant les balises PHP (`<?php ?>`). Cela inclut l'utilisation des balises courtes comme <%= $valeur %>. Pour plus d'informations, lisez la page Sortir du mode HTML.

  > Note : Le support des balises ASP a été ajouté en PHP 3.0.4.

`precision` integer

  Le nombre de décimales significatif à afficher dans les nombres à virgule flottante.

`y2k_compliance` boolean

  Force la conformité avec l'an 2000 (peut être la cause de problèmes avec les navigateurs non-conformes)

`allow_call_time_pass_reference` boolean

  Active ou non la possibilité de forcer les arguments à être passés par référence lors de l'appel à une fonction. Cette méthode est dépréciée et ne sera très certainement plus supportée dans les futures versions de PHP/Zend. Il est préférable de spécifier directement dans la déclaration de la fonction si les arguments seront passés ou non par référence. Nous vous encourageons à désactiver cette option et de vous assurer que vos scripts fonctionnent correctement avec, afin d'être sûr qu'ils fonctionneront avec les versions futures du langage (vous devriez recevoir une alerte à chaque fois que vous utiliserez cette fonctionnalité).

  Passer les arguments par référence à l'appel de la fonction a été abandonné pour rendre le code plus clair. Les fonctions risquaient de modifier les arguments d'une manière aléatoire si l'argument était passé par référence. Pour éviter cet effet, il est préférable de spécifier le passage par référence dans le prototype de la fonction.

  Voir aussi l'explication sur les références.

`expose_php` boolean

  Décide ou non si PHP doit être affiché comme étant installé sur le serveur (e.g. en ajoutant sa signature dans les en-têtes du serveur web). Ce n'est en aucun cas une menace de sécurité, mais cela permet de déterminer si vous utilisez PHP ou non sur votre serveur.

`zend.ze1_compatibility_mode` boolean

  Active le mode de compatibilité avec le Zend Engine 1 (PHP 4). Cela affecte le clonage, le casting (les objets sans propriété sont transtipés en `FALSE` ou 0) et la comparaison des objets. Dans ce mode, les objets sont passés par valeur plutôt que par référence, par défaut.

## Limite des ressources

Tableau G-5. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
memory_limit | "8M" | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

`memory_limit` integer

  Cette option détermine la mémoire limite, en octets, qu'un script est autorisé à allouer. Cela permet de prévenir l'utilisation de toute la mémoire par un script mal codé. Pour utiliser cette directive, vous devez l'avoir activé lors de la compilation. Du coup, votre ligne de configuration devait ressembler à cela : `--enable-memory-limit`. Notez que vous devez positionner cette directive à -1 si vous ne voulez aucune limite.

  Depuis PHP 4.3.2 et lorsque memory_limit est actif, la fonction PHP memory_get_usage() est disponible.

  Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

Voir aussi : max_execution_time.

## Réglage de Performance

Tableau G-6. Réglage de Performance

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`realpath_cache_size` entier

  Détermine la taille du cache de realpath qui sera utilisée par PHP. Cette valeur devrait être augmentée sur les systèmes où PHP ouvre plusieurs fichiers, pour refléter la quantité d'opérations exécutées sur les fichiers.

`realpath_cache_ttl` entier

  Temps (en seconde) pour lequel persiste l'information du cache de realpath pour un fichier ou un répertoire donné. Pour des systèmes avec des fichiers qui changent peu souvent, pensez à augmenter cette valeur.

## Gestion des données

Tableau G-7. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 5.0.5.
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.1.0.
allow_webdav_methods | "0" | PHP_INI_PERDIR |

Voici un éclaircissement sur l'utilisation des directives de configuration.

`track_vars` boolean

  Si cette option est configurée, alors les variables d'environnement GET, POST, Cookie et Server peuvent être trouvées respectivement dans les tableaux associatifs globaux `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` et `$_SERVER`.

  Notez que depuis PHP 4.0.3, track_vars est toujours activée.

`arg_separator.output` string

  Le séparateur utilisé lorsque PHP génère les URLs pour séparer les arguments.

`arg_separator.input` string

  Liste des séparateur(s) utilisé(s) par PHP pour analyser les URLs entrantes et en déduire les valeurs.

  > Note : Chaque caractère de cette directive est considéré comme étant un séparateur !

`variables_order` string

  Définit l'ordre d'analyse des variables EGPCS (`E`nvironment, `G`et, `P`ost, `C`ookie, et `S`erver). Par exemple, si variables_order est défini à `"SP"` alors PHP créera superglobals `$_SERVER` et `$_POST`, maisne créera pas `$_ENV`, `$_GET`, et `$_COOKIE`. Le fait de définir cet ordre à "" signifie qu'aucune superglobals ne sera définie.

  Si la directive obsolète register_globals est activée (supprimée depuis PHP 6), alors variables_order configurera également l'ordre pour les variables `ENV`, `GET`, `POST`, `COOKIE` et `SERVER` qui seront peuplées dans le contexte global. Ainsi, par exemple, si variables_order est défini à `"EGPCS"`, si register_globals est actif, et que `$_GET['action']` et `$_POST['action']` sont définies, alors `$action` contiendra la valeur de `$_POST['action']` vu que `P` vient après `G` dans la valeur de la directive pour cet exemple.

  > Note : The content and order of $_REQUEST is also affected by this directive.

`auto_globals_jit` boolean

  Quand directive est activée, les variables SERVER et ENV sont créées lorsqu'elles sont utilisées : seulement si nécessaire. Si ces variables ne sont pas utilisées dans un script, le script verra un gain de performances.

  Les directives PHP register_globals, register_long_arrays, et register_argc_argv doivent être désactivées pour que cete directive soit utilisable. Depuis PHP 5.1.3, il n'est plus nécessaire de désactiver register_argc_argv.

`register_globals` boolean

  Définit si oui ou non les variables EGPCS (Environment, GET, POST, Cookie, Server) seront enregistrées comme des variables globales.

  Depuis PHP 4.2.0, la valeur par défaut de cette directive est off.

  Lisez le chapitre sur la sécurité concernant l'utilisation de register_globals pour plus d'informations.

  Notez que register_globals ne peut pas être défini durant le traitement (ini_set()). Vous pouvez utiliser `.htaccess` si votre hôte vous le permet comme décrit ci-dessous. Exemple d'une entrée `.htaccess` : `php_flag register_globals off`.

  > Note : La directive register_globals est affectée par la directive variables_order .

  Cette directive a été effacée depuis PHP 6.0.0.

`register_argc_argv` boolean

  Dit à PHP s'il doit déclarer ou non les variables argv et argc (qui contiendront les informations GET).

  Voir aussi les lignes de commande. Cette directive a été introduite depuis PHP 4.0.0 et valait toujours "on" avant.

`register_long_arrays` boolean

  Dit à PHP si oui ou non il doit enregistrer les types dépréciés `$HTTP_*_VARS` comme variables pré-définies. Lorsque cette directive est activée (par défaut), les variables longues PHP comme `$HTTP_GET_VARS` seront définies. Si vous ne les utilisez pas, il est recommandé de désactiver cette option pour des raisons de performance. À la place, utilisez les variables tableaux super-globales comme `$_GET`.

  Cette directive est disponible depuis PHP 5.0.0 et a été supprimée depuis PHP 6.0.0.

`post_max_size` integer

  Définit la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés. Pour charger de gros fichiers, cette valeur doit être plus grande que la valeur de upload_max_filesize.

  Si la limitation de mémoire est activée par votre script de configuration, memory_limit affectera également les fichiers chargés. De façon générale, memory_limit doit être plus grand que `post_max_size`.

  Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

  Dans le cas où la taille des données reçues par la méthode POST est plus grande que `post_max_size`, les superglobales `$_POST` et `$_FILES` seront vides. Ceci peut être surveillé de différentes façons, e.g. en passant une variable `$_GET` au script qui traite les données, i.e. `<form action="edit.php?processed=1">`, et ainsi vérifier si `$_GET['processed']` est défini.

`gpc_order` string

  Définit l'ordre de parcours des variables GET/POST/COOKIE. Par défaut, cette directive vaut "GPC". Si vous positionnez cette directive à "GP" par exemple, PHP ignorera complètement les cookies et effacera toutes les variables de la méthode GET avec les variables de la méthode POST portant le même nom.

  > Note : Cette option n'est pas disponible en PHP 4. Utilisez variables_order à la place.

`auto_prepend_file` string

  Spécifie le nom d'un fichier qui sera automatiquement parcouru avant le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction include(), donc include_path est utilisé.

  La valeur spéciale none désactive l'ajout automatique.

`auto_append_file` string

  Spécifie le nom du fichier qui sera automatiquement parcouru après le fichier principal. Ce fichier est inclus comme s'il l'avait été avec la fonction include(), donc include_path est utilisé.

  La valeur spéciale none désactive l'ajout automatique.

  > Note : Si le script se termine par la fonction exit(), l'ajout automatique ne se fera pas.

`default_mimetype` string

`default_charset` string

  Depuis PHP 4.0b4, PHP enverra toujours un jeux de caractères par défaut à l'en-tête HTTP `Content-type: header`. Pour désactiver l'envoi du jeu de caractères, définissez le tout simplement à une valeur vide.

`always_populate_raw_post_data` boolean

  Remplit toujours la variable `$HTTP_RAW_POST_DATA`. Sinon, la variable est remplie uniquement des types MIME non reconnus des données. Cependant, la méthode préférée pour l'accès à ce type de données est php://input. `$HTTP_RAW_POST_DATA` n'est pas disponible avec `enctype="multipart/form-data"`.

`allow_webdav_methods` boolean

  Autorise la gestion des requêtes HTTP WebDav avec des scripts PHP (e.g PROPFIND, PROPPATCH, MOVE, COPY, etc.). Cette directive n'existe plus depuis PHP 4.3.2. Si vous voulez récupérer les données envoyées avec la méthode POST de ce type de requêtes, vous devez également définir always_populate_raw_post_data.

Voir aussi : magic_quotes_gpc, magic_quotes_runtime et magic_quotes_sybase.

## Chemins et répertoires

Tableau G-8. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
include_path | ".;/chemin/vers/php/pear" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/chemin/vers/php" | PHP_INI_SYSTEM |
extension | NULL | `php.ini` uniquement |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
cgi.fix_pathinfo | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
cgi.force_redirect | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
cgi.redirect_status_env | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
fastcgi.impersonate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`include_path` string

  Spécifie une liste de répertoires où les fonctions require(), include() et fopen_with_path() chercheront les fichiers. Le format est identique à la variable d'environnement système `PATH` : une liste de répertoires séparés par deux points (`:`) sous Unix ou par un point-virgule (`;`) sous Windows.

  Exemple G-1. include_path sous Unix

      include_path=".:/php/includes"

  Exemple G-2. include_path sous Windows

      include_path=".;c:\php\includes"

  L'utilisation d'un point (`.`) dans le chemin d'inclusion vous permet de faire des inclusions relatives au répertoire courant.

`doc_root` string

  Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide. Si PHP est configuré avec le safe mode, aucun fichier n'est servi en dehors de ce répertoire. Si PHP n'a pas été compilé avec FORCE_REDIRECT, vous devez définir le doc_root si vous utilisez PHP en tant que CGI sous n'importe quel serveur web (autre que IIS). Alternativement, vous pouvez utiliser la configuration cgi.force_redirect.

`user_dir` string

  Le nom de base du répertoire utilisé dans un répertoire utilisateur pour les fichiers PHP, par exemple, `public_html`.

`extension_dir` string

  Spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger. Voir aussi enable_dl et dl().

`extension` chaîne de caractères

  Quelles extensions doivent être chargées dynamiquement lors du démarrage de PHP.

`cgi.check_shebang_line` booléen

  Contrôle si PHP CGI vérifie la ligne commençant par #! (shebang) en haut du script exécuté. Cette ligne est nécessaire si le script est destiné à être exécuté en mode autonome et via un PHP CGI. PHP en mode CGI ne lit pas cette ligne et ignore son contenu si cette directive est active.

`cgi.fix_pathinfo` booléen

  Fournit un réel PATH_INFO/PATH_TRANSLATED pour CGI. Le comportement précédent de PHP était de définir PATH_TRANSLATED en SCRIPT_FILENAME et de ne pas remplir PATH_INFO. Pour plus d'informations sur PATH_INFO, lisez les spécificités CGI. Si définie à 1, PHP CGI fixera ce chemin suivant les spécifications. Si définie à 0, PHP appliquera l'ancien comportement. Par défaut, cette directive vaut 0. Vous devriez modifier vos scripts pour utiliser SCRIPT_FILENAME à la place de PATH_TRANSLATED.

`cgi.force_redirect` boolean

  cgi.force_redirect est nécessaire pour des raisons de sécurité lors de l'utilisation de PHP en mode CGI sous la plupart des serveurs web. Si vous ne la définissez pas, PHP l'activera automatiquement par défaut. Vous pouvez la désactiver à vos risques et périls.

  > Note : Utilisateurs de Windows : Vous pouvez désactiver cette option en toute sécurité si vous utilisez le serveur web IIS ; en fait, vous le devez. Pour faire fonctionner les serveurs web OmniHTTPD ou Xitami, vous devez désactiver cette directive.

`cgi.redirect_status_env` string

  Si cgi.force_redirect est activé et que vous ne tournez pas sous un serveur web Apache ou Netscape (iPlanet), vous devriez avoir besoin de définir un nom de variable d'environnement que PHP utilisera pour voir si tout est correct pour continuer l'exécution.

  > Note : La définition de cette variable peut avoir des conséquences sur la sécurité. Sachez ce que vous faites avant de faire cela.

`fastcgi.impersonate` string

  FastCGI sous IIS (sur les systèmes d'exploitation basés sur WINNT) supporte la possibilité de déterminer la marque de sécurité du client appelant. Cela permet à IIS de définir le contexte de sécurité sur lequel la requête est exécuté. mod_fastcgi sous Apache ne supporte actuellement pas cette fonctionnalité (03/17/2002). Définie à 1 si vous utilisez IIS. Par défaut, vaut 0.

`cgi.rfc2616_headers` int

  Dit à PHP quel type d'en-tête doit être utilisé lors de l'envoi du code réponse HTTP. Si définie à 0; PHP enverra un en-tête `Status:` qui est supporté par Apache et les autres serveurs web. Lorsque définie à -1, PHP enverra un en-tête répondant à la spécification de la RFC 2616. Laissez cette valeur à 0 à moins que vous sachiez ce que vous faites.

## Chargement de fichiers

Tableau G-9. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`file_uploads` boolean

  Autorise ou non le chargement de fichiers par HTTP. Voir aussi les directives upload_max_filesize, upload_tmp_dir et post_max_size.

  Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

`upload_tmp_dir` string

  Le répertoire temporaire utilisé pour stocker les fichiers lors du chargement. L'utilisateur sous lequel fonctionne PHP doit avoir les droits en écriture sur ce répertoire. Si non spécifié, PHP utilisera celui par défaut du système.

`upload_max_filesize` integer

  La taille maximale en octets d'un fichier à charger.

  Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

## SQL général

Tableau G-10. Options de configuration

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
sql.safe_mode | "0" | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

`sql.safe_mode` boolean

  Si activé, les fonctions de connexion à la base de données qui spécifient des valeurs par défaut utiliseront ces valeurs au lieu des arguments fournis. Pour les valeurs par défaut, reportez-vous à la documentation des fonctions de connexion pour la base de données concernée.

## Directives de configuration de déboguage

Attention
Seulement PHP 3 implémente un débogueur par défaut ; voir Annexe E pour plus d'informations.

`debugger.host` string

  Nom du DNS ou adresse IP de l'hôte utilisé par le débogueur.

`debugger.port` string

  Numéro du port utilisé par le débogueur.

`debugger.enabled` boolean

  Active ou non le débogueur.

Précédent | Sommaire | Suivant
Directives du `php.ini` | Niveau supérieur | Liste des Fuseaux Horaires Supportés