Manuel PHP
Précédent | Chapitre 4. Configuration | Suivant

# Directives de configuration

## Options Httpd

Tableau 4-2. Options Httpd

Nom | Valeur par défaut | Modifications
--- | --- | ---
async_send | "0" | PHP_INI_ALL

## Options du langage

Tableau 4-3. Options du langage

Nom | Valeur par défaut | Modifications
--- | --- | ---
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

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

`short_open_tag` bool

  Active le support de la forme courte des balises `PHP` : `<? ?>`. Si vous voulez utiliser `PHP` avec du XML, vous pouvez désactiver cette option afin que vous puissiez utiliser `<?xml ?>`. Sinon vous pouvez l'afficher avec PHP comme ceci : `<?php echo '<?xml version="1.0"'; ?>`. Si cette directive est désactivée, vous devez utiliser la forme longue des balises `PHP` `<?php ?>`.

  > Note : Cette directive affecte aussi les raccourcis `<?=`, qui est l'équivalent de `<? echo`. Utiliser ce raccourci impose l'activation de la directive short_open_tag.

`asp_tags` bool

  Active l'utilisation des balises de type ASP <% %>, en plus des traditionnelles balises <?php ?> . Cela inclut l'utilisation du raccourcid <%= $value %>. Pour plus d'informations, reportez-vous à inclusion dans le HTML.

  > Note : Le support des balises ASP a été ajouté dans la version 3.0.4.

`precision` integer

  Le nombre de chiffres significatifs à afficher avec les nombre à virgule flottante.

`y2k_compliance` bool

  Active la compatibilité an 2000 (Cela posera des problèmes avec les navigateurs qui ne sont pas compatibles)

`allow_call_time_pass_reference` bool

  Cette directive force le passage des arguments par référence au moment de l'appel des fonctions. Cette méthode est obsolète, et il est probable qu'elle soit abandonnée dans les futures versions de PHP et Zend. La méthode qui est recommandée est d'indiquer le passage par référence dans la déclaration de la fonction. Nous vous recommandons de tenter de désactiver cette directive et d'adapter vos scripts, afin d'en garantir leur portabilité (vous verrez une alerte s'afficher à chaque fois que vous utilisez cette fonctionnalité, et les arguments seront passés par valeur plutôt quee par référence).

  Voir aussi Les références.

`expose_php` bool

  Cette directive active ou non le fait que `PHP` est marqué comme installé sur le serveur web (en ajoutant sa propre signature dans les en-têtes du serveur web). Cet affichage n'est pas une menace en terme de sécurité, mais il permet de déterminer l'utilisation de `PHP` sur votre serveur.

## Limitation des ressources

Tableau 4-4. Limitation des ressources

Nom | Valeur par défaut | Modifications
--- | --- | ---
memory_limit | "8M" | PHP_INI_ALL

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

`memory_limit` integer

  Cette directive fixe la quantité maximale de mémoire, exprimée en octets, qu'un script peut réserver. Cela évite que des scripts mal écrits consomment toute la mémoire sur le serveur. Afin d'utiliser cette directive, vous devez l'avoir activée au moment de la compilation. De ce fait, vous devez trouver dans la ligne de configuration l'option `--enable-memory-limit`. Notez que vous pouvez lui donner la valeur de -1 si vous ne souhaitez pas de limitation de consommation de mémoire.

Voir aussi max_execution_time.

## Gestion des données

Tableau 4-5. Options de gestion des données

Nom | Par défaut | Modifiable
--- | --- | ---
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

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

`track_vars` bool

  Si activé, les variables de l'environnement, GET, POST, Cookie et du serveur sont disponibles respectivement dans les tableaux associatifs `$_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é par `PHP` dans les URL générées par `PHP` pour séparer les arguments.

`arg_separator.input` string

  Liste de séparateur(s) utilisé par `PHP` pour analyser les URL d'entrées, et en déduire les variables.

  > Note : Chacun des caractères de cette directive est considéré comme un séparateur.

`variables_order` string

  Etablit l'ordre de priorité des méthodes GET/POST/COOKIE et des valeurs issues de l'environnement et du serveur. Par défaut, cette directive est établie à "EGPCS". En affectant "GP" à cette directive, `PHP` ignorera les cookies, le serveur et l'environnement et écrasera toute variable issue de la méthode GET par les valeurs des variables de même nom, issues de la méthode POST.

  Voir aussi register_globals.

`register_globals` bool

  Cette option active l'enregistrement des variables EGPCS (Environnement, GET, POST, Cookie, Serveur), en tant que variables globales. Par exemple, si register_globals = on, l'URL suivante `http://www.example.com/test.php?id=3` va créer la variable `$id` dans votre script. Ou bien, `$DOCUMENT_ROOT`, issue de `$_SERVER['DOCUMENT_ROOT']`. Vous pouvez désactiver cette fonction si vous ne voulez pas truffer vos scripts avec des valeurs utilisateurs. Depuis `PHP` 4.2.0, cette directive vaut par défaut off. Il est recommandé de lire la liste des Variables prédéfinies, pour découvrir les super-globales : `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` et `$_SERVER`. Lisez aussi le chapitre sur la sécurité Utilisation des variables super-globales pour plus de détails.

  Notez que register_globals ne peut être modifiée durant l'exécution du script (avec ini_set()). Cependant, vous pouvez utiliser le fichier `.htaccess` si votre hôte les supporte, comme décrit ci-dessus. Par exemple, vous pouvez inscrire dans votre fichier `.htaccess` : `php_flag register_globals on`.

  > Note : register_globals est combiné avec la directive variables_order.

`register_argc_argv` bool

  Indique à `PHP` s'il doit déclarer les variables argv et argc (qui contiendront alors les mêmes informations passées par méthode GET).

  Voir aussi utiliser PHP en ligne de commande. De plus, cette directive a été introduite en PHP 4.0.0 et a toujours été à "on" jusque là.

`register_long_arrays` boolean

  Indique à `PHP` s'il doit enregistrer les anciens tableaux `$HTTP_*_VARS`, comme variables prédéfinies. Lorsque cette option est activée (par défaut), les anciens tableaux tels que `$HTTP_GET_VARS` seront définis. Si vous ne les utilisez pas, il est recommandé de les désactiver, pour des raisons de performances. A la place, utilisez les super globales, telles que `$_GET`.

  Cette directive a été introduite avec PHP 5.0.0.

`post_max_size` integer

  Configure la taille maximale de données par méthode POST. Cette configuration affecte aussi le téléchargement de fichiers. Pour autoriser l'upload de grands fichiers, il faut que cette configuration soit plus grande encore, et plus grande que upload_max_filesize.

  Si la limitation de mémoire est activée dans votre script de configuration memory_limit va aussi affecter le téléchargement de fichiers. En général, memory_limit doit être plus grand que `post_max_size`.

`gpc_order` string

  Cette directive est obsolète. Voyez plutôt variables_order.

`auto_append_file` string

  Spécifie le nom d'un fichier qui sera automatiquement ajouté après le fichier principal. Le fichier est inclus comme s'il avait été appelé avec la fonction include(), donc include_path est utilisé.

  Le mot réservé none désactive l'auto-appending.

  > Note : Si le script s'arrête par la fonction exit(), auto-append ne fonctionnera pas.

`auto_prepend_file` string

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

  Le mot réservé none désactive l'auto-appending.

`default_mimetype` string

`default_charset` string

  Depuis la version 4.0b4, `PHP` fournit toujours une indication du jeu de caractères pour les fichiers générés, dans l'en-tête HTTP `Content-type`. Pour désactiver l'envoi de cette indication, laissez cette directive vide.

`always_populate_raw_post_data` bool

  Force le remplissage de la variable `$HTTP_RAW_POST_DATA`.

`allow_webdav_methods` bool

  Cette directive autorise la gestion de requêtes HTTP WebDAV par `PHP` : PROPFIND, PROPPATCH, MOVE, COPY, etc... Si vous voulez les données postées par ces requêtes, vous devez aussi activer always_populate_raw_post_data.

Voir aussi magic_quotes_gpc, magic-quotes-runtime et magic_quotes_sybase.

## Dossiers

Tableau 4-6. Options de dossiers

Nom | Par défaut | Modifiable
--- | --- | ---
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM

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

`include_path` string

  Spécifie une liste de dossiers, où les fonctions require(), include() et fopen_with_path() iront chercher les fichiers. Le format est le même que celui de la variable d'environnement `PATH` : une liste de dossiers, séparés par des deux points (:) sous UNIX, et par des points virgules (;) sous Windows.

  Exemple 4-5. UNIX include_path

      include_path=".:/php/includes"

  Exemple 4-6. Windows include_path

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

  Utiliser un point (`.`) dans l'include_path permet de réaliser des inclusions relatives au dossier courant.

`doc_root` string

  Le dossier racine de `PHP`. Cette directive n'est utilisée que si elle est définie. Si `PHP` est configuré en safe mode, aucun fichier en dehors de ce dossier ne sera accessible. Si `PHP` n'a pas été compilé avec l'option FORCE_REDIRECT, vous DEVRIEZ utiliser cette option, si vous exécutez `PHP` en tant que CGI avec serveur web autre que IIS. La solution alternative est d'utiliser la directive cgi.force_redirect ci-dessous.

`user_dir` string

  Répertoire où sont stockés les fichiers `PHP` dans le répertoire d'un utilisateur. Par exemple, `public_html`.

`extension_dir` string

  Définit le répertoire dans lequel le PHP doit chercher les extensions lors du chargement dynamique. Voir aussi enable_dl et dl().

`extension` string

  Définit les extensions qui doivent être chargées lors du démarrage du PHP.

`cgi.fix_pathinfo` boolean

  Fourni les vraies PATH_INFO/PATH_TRANSLATED pour le CGI. Le comportemnt précédent de `PHP` était de donner à PATH_TRANSLATED la valeur de SCRIPT_FILENAME, et ne de pas utiliser PATH_INFO. Pour plus d'informations sur PATH_INFO, voyez les spécifications CGI. En donnant la valeur de 1 à cette directive, `PHP` CGI va se conformer aux spécifications. La valeur de zéro conserve le comportement précédent de `PHP`.

`cgi.force_redirect` bool

  cgi.force_redirect est nécesssaire pour assurer la sécurité de `PHP`, lorsqu'il fonctionne en tant que CGI pour la plupart des serveurs web. Même si laissé vide, `PHP` va activer cette option par défaut. Vous pouvez la désactiver à vos risques et périls.

  > Note : Utilisateurs Windows : vous pouvez désactiver cette option sans problème avec IIS et en fait, vous DEVEZ la désactiver. Pour faire fonctionner OmniHTTPD ou Xitami, vous devrez aussi la désactiver.

`cgi.cgi.redirect_status_env` string

  Si la directive cgi.force_redirect est activée, et que vous ne fonctionnez pas sous Apache ou Netscape (iPlanet), vous POURRIEZ devoir allouer une variable d'environnement que `PHP` ira rechercher pour s'assurer qu'il peut continuer son exécution.

  > Note : Allouer cette variable PEUT causer des problèmes de sécurité, RENSEIGNEZ VOUS AVANT DE LE FAIRE.

`cgi.rfc2616_headers` int

  Indique à `PHP` quel type d'en-tête utiliser lorsqu'il envoie les en-têtes de réponse HTTP. Si cette option vaut 0, `PHP` envoie un en-tête `Status:` qui est supporté par Apache et d'autres serveurs web. Lorsque cette option vaut 1, `PHP` va envoyer des en-têtes compatibles RFC 2616. Laissez le à 0 si vous ne savez pas de quoi il s'agit.

`fastcgi.impersonate` string

  FastCGI sous IIS (sur Windows NT) supporte la possibilité de traiter les tokens de sécurité du client. Cela permet à IIS de définir le contexte de sécurité à utiliser. mod_fastcgi sous Apache ne supporte pas encore cette fonctionnalité (17/03/2002). Utilisez la valeur de 1 pour l'activer sous IIS. La valeur par défaut est zéro.

## Chargement de fichiers

Tableau 4-7. Options de configuration pour le chargement de fichiers

Nom | Par défaut | Modifiable
--- | --- | ---
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

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

`file_uploads` bool

  Cette directive indique si les chargements de fichiers sont supportés sur le serveur. Voir aussi upload_max_filesize, upload_tmp_dir et post_max_size.

`upload_tmp_dir` string

  Indique le répertoire utilisé lors du chargement d'un fichier sur le serveur. Ce répertoire doit être accessible en écriture pour l'utilisateur qui exécute le script `PHP`, ou par le serveur web. Si il n'est pas spécifié, `PHP` utilisera le répertoire par défaut du système.

`upload_max_filesize` integer

  La taille maximale d'un fichier chargé sur le serveur. La valeur est en octets. Par défaut, elle est de 2 méga-octets.

## Options de SQL

Tableau 4-8. Options de SQL

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

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

`sql.safe_mode` bool

## Configuration des débogeurs

`debugger.host` string

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

`debugger.port` string

  Numéro de port du débogueur.

`debugger.enabled` bool

  Indique si le débogeur est activé ou pas.

Précédent | Sommaire | Suivant
Comment modfier la configuration | Niveau supérieur | Référence