Manuel PHP
Précédent |  | Suivant

# Chapitre 3. Configuration

# Le fichier de configuration

Le fichier de configuration (appelé `php3.ini` dans la version 3.0 du PHP, et simplement `php.ini` dans la version 4.0) est lu par le 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 la version CGI le fichier est lu à chaque invocation.

Exemple 3-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éenne peuvent être spécifiées comme ceci :
    ;    true, on, yes
    ; ou false, off, no, none
    register_globals = off
    magic_quotes_gpc = 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"

Lorsque vous utilisez le module Apache, vous pouvez aussi changer les paramètres de configurations en utilisant les directives dans les fichiers de configuration d'Apache et dans les fichiers `.htaccess`.

Dans la version 3.0, à chaque directive de configuration présente dans le fichier de configuration d'Apache correspond une directive de configuration dans le fichier `php3.ini`, à l'exception des directives préfixées par "php3_".

Dans la version 4.0, il n'y a que quelques directives dans le fichier de configuration d'Apache qui vous permettent de modifier la configuration de PHP.

php_value `name` `value`

  Cette directive affecte une valeur à la variable spécifiée.

php_flag `name` `on|off`

  Cette directive est utilisée pour activer ou désactiver une option.

php_admin_value `name` `value`

  Cette directive affecte une valeur à la variable spécifiée. La directive "Admin" ne peut être utilisée que dans le fichier de configuration d'Apache, et non dans un fichier `.htaccess`.

php_admin_flag `name` `on|off`

  Cette directive est utilisée pour activer ou désactiver l'option précédente.

Exemple 3-2. Exemple de configuration Apache
    <IfModule mod_php4.c>
      php_value include_path ".:/usr/local/lib/php"
      php_flag safe_mode on
    </IfModule>
    <IfModule mod_php3.c>
      php3_include_path ".:/usr/local/lib/php"
      php3_safe_mode on
    </IfModule>

Vous pouvez voir l'état de votre configuration en utilisant la fonction phpinfo(). Vous pouvez aussi accéder aux valeurs de votre configuration de manière individuelle en utilisant la fonction get_cfg_var().

## Directives de configuration générale

`allow_url_fopen` boolean

  Cette option autorise les accès au réseau des fonctions fopen(). Par défaut, l'accès est autorisé aux procédures d'accès distants, avec les protocoles FTP, NNTP, et certaines extensions telles ques zlib.

  > Note : Cette option a été introduite immédiatement après la version 4.0.3. Pour les versions jusqu'à 4.0.3 incluse, vous pouvez désactiver cette fonctionnalité au moment de la compilation en utilisant la configuration `--disable-url-fopen-wrapper`.

`asp_tags` booléen

  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.

`auto_append_file` chaîne de caractères

  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` chaîne de caractères

  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.

`cgi_ext` chaîne de caractères

  (NDT : aucune documentation n'est fournie).

`display_errors` booléen

  Cette directive détermine si les erreurs doivent être affichées à l'écran au format HTML ou non.

`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.

`engine` boolean

  Cette directive ne sert vraiment que si PHP est un module Apache. Elle sert aux sites qui veulent activer ou désactiver l'analyse des fichiers par PHP, dossier par dossier. En mettant `php3_engine off` au bon endroit, dans le fichier `httpd.conf`, PHP peut être activé ou désactivé.

`error_log` string

  Nom du fichier où les erreurs seront enregistrées. Si la valeur spéciale `syslog` est utilisée, les erreurs sont envoyées au système standard d'historique. Sous UNIX, c'est `syslog(3)` et sous Windows NT, c'est l'historique d'événements. L'historique système n'est pas supporté sous Windows 95.

`error_reporting` integer

  Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un champs de bits. Ajoutez les valeurs suivantes pour choisir le niveau que vous désirez :

  Tableau 3-1. Niveau de rapport d'erreur

  valeur du bit | niveau choisi
  --- | ---
  1 | erreurs normales
  2 | alertes normales
  4 | erreurs d'analyseur (parser errors)
  8 | alertes non critiques

  Par défaut, la valeur est de 7 (erreurs normales, alertes normales et erreurs d'analyseur sont affichées).
`open_basedir` string

  Limite l'espace où PHP peut ouvrir des fichiers.

  Lorsqu'un script essaie d'ouvrir un fichier avec les fonctions fopen ou gzopen (par exemple), la localisation du fichier est vérifiée. Si ce fichier est hors du dossier cité dans cette directive, PHP refusera de l'ouvrir. Tous les liens symboliques sont résolus, et subissent aussi la restriction.

  La valeur spéciale . indique que le dossier courant du script est utilisé comme open_basedir.

  Sous Windows, séparez les noms de dossiers par un point virgule (;). Sur les autres systèmes, séparez les noms de dossiers par des deux points (:). Lorsque PHP est un module Apache, la valeur de la directive `open_basedir` des dossiers parents est automatiquement héritée par les fils.

  > Note : Le support pour les dossiers multiples a été ajouté dans 3.0.7.

  La valeur par défaut est : libre accès à tous les fichiers.

`gpc_order` chaîne de caractères

  Etablit l'ordre de préséance des méthodes GET/POST/COOKIE. Par défaut, cette directive est établie à "GPC". En affectant "GP" à cette directive, PHP ignorera les cookies, et écrasera toute méthode GET utilisée par une méthode POST avec des variables du même nom.

`ignore_user_abort` chaîne de caractères

  Désactivée par défaut. Si cette directive est activée, alors tous les scripts lancés iront jusqu'à leur terme, même si le client se déconnecte en plein milieu. Voir aussi la fonction ignore_user_abort().

`include_path` string

  Spécifie une liste de dossiers, où les fonctions require(), include() et fopen_with_path() (NDtraducteur : cette fonction semble avoir disparu) 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 3-3. UNIX include_path
      include_path=.:/home/httpd/php-lib

  Exemple 3-4. Windows include_path
      include_path=".;c:\www\phplib"

  La valeur par défaut pour cette directive est `.`, c'est-à-dire le dossier courant.
`isapi_ext` string

  (Aucune documentation n'est fournie)

`log_errors` boolean

  Indique où les messages d'erreur générés doivent être écrits. Cette fonction est spécifique aux serveurs.

`magic_quotes_gpc` boolean

  Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie). Lorsque magic_quotes est activé, tous les caractères ' (guillemets simples), " (guillemets doubles), \ (antislash) et NUL sont échappés avec un antislash. Si magic_quotes_sybase fonctionne aussi, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.

`magic_quotes_runtime` boolean

  Si `magic_quotes_runtime` est activé, toutes les fonctions qui obtiennent des données auprès d'une source externe, y compris les bases de données et les fichiers texte, verront leur guillemets échappés avec un antislash. Si `magic_quotes_sybase` est aussi activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.

`magic_quotes_sybase` boolean

  Si `magic_quotes_sybase` est activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash, si `magic_quotes_gpc` ou `magic_quotes_runtime` est activé.

`max_execution_time` integer

  Fixe le temps maximal d'éxécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur.

`memory_limit` entier

  Grâce à cette option, vous pouvez donner la quantité maximale de mémoire qu'un script peut allouer. Ceci permet de se prevenir contre des scripts mal codés pouvant consommer toute la mémoire disponible d'un serveur

`nsapi_ext` chaîne de caractères

  Aucune documentation n'est fournie.

`register_globals` boolean

  Cette option active l'enregistrement des variables EGPCS (Environnement, GET, POST, Cookie, Serveur), en tant que variables globales. Vous pouvez désactiver cette fonction si vous ne voulez pas truffer vos scripts avec des valeurs utilisateurs. Cette option est surtout utile lorsqu'elle est utilisée conjointement avec track_vars - dans ce cas, vous pouvez accéder à toutes les variables EGPCS grâce aux tableaux `$HTTP_ENV_VARS`, `$HTTP_GET_VARS`, `$HTTP_POST_VARS`, `$HTTP_COOKIE_VARS`, et `$HTTP_SERVER_VARS`.

`short_open_tag` booléen

  Active ou désactive l'utilisation des balises courtes, (`<? ?>`). Si vous voulez utiliser PHP et XML en même temps, vous devez désactiver cette option. Si cette option est désactivée, vous devez utiliser la forme longue des tags, (`<?php ?>`).

`sql.safe_mode` booléen

  Aucune documentation n'est fournie.

`track_errors` booléen

  Si cette option est activée, le dernier message d'erreur sera placé dans la variable globale $php_errormsg.

`track_vars` booléen

  Si cette option est activée, lors de l'appel des méthodes GET, POST et l'utilisation des cookies, les variables sont disponibles dans des tableaux associatifs globaux appelés respectivement $HTTP_GET_VARS, $HTTP_POST_VARS et $HTTP_COOKIE_VARS.

`upload_tmp_dir` chaîne de caractères

  Indique le répertoire utilisé lors du chargement d'un fichier sur un serveur. Ce répertoire doit être accessible en lecture pour l'utilisateur qui lance le script PHP.

`upload_max_filesize` entier

  La taille maximale d'un fichier téléchargé sur le serveur. La valeur doit être en octets. Par défaut, elle est de 2 méga-octets. in bytes.

`user_dir` chaîne de caractères

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

`warn_plus_overloading` booléen

  Si cette option est activée, PHP émet une alerte lorsque l'opérateur plus (`+`) est utilisé sur une chaîne de caractères. Cela permet de réperer plus facilement les scripts qui doivent être réécrits en utilisant l'opérateur de concaténation (`.`) plutôt que l'opérateur plus.

## Directives de configuration concernant le mail

`SMTP` chaîne de caractères

  Sous Windows, adresse IP ou nom que PHP doit utiliser pour envoyer du mail avec la fonction mail().

`sendmail_from` chaîne de caractères

  Sous Windows, valeur du champs "From:" qui doit être utilisée lors de l'envoi de mail.

`sendmail_path` chaîne de caractères

  Localisation du programme de sendmail : habituellement `/usr/sbin/sendmail` ou `/usr/lib/sendmail`. configure essaye de repérer la présence de sendmail par lui-même, et affecte ce résultat par défaut. En cas de problème de localisation, vous pouvez établir une nouvelle valeur par défaut ici.

  Tout système n'utilisant pas sendmail doit établir cette directive à la valeur chemin du programme de substitution qui remplace le serveur de mail, si celui-ci existe, par exemple, Qmail. Dans ce cas là, vous devez mettre: `/var/qmail/bin/sendmail`.

## Directives de configuration du "Safe Mode"

`safe_mode` booléen

  Cette directive active ou désactive l'option "safe mode". Lisez le chapitre sécurité pour plus d'informations.

`safe_mode_exec_dir` chaîne de caractères

  Si l'option "SAFE MODE" est activée, system() et les autres fonctions exécutant des programmes systèmes refusent de se lancer si ces programmes ne sont pas placés dans ce répertoire.

## Directives de configuration de débugage.

`debugger.host` chaîne de caractères

  Adresse IP ou nom de l'hôte utilisé pour le débugage.

`debugger.port` chaîne de caractères

  Numéro du port utilisé pour le débugage.

`debugger.enabled` booléen

  Activation ou désactivation du débugueur.

## Directives de chargement des extensions

`enable_dl` booléen

  Cette directive n'est réellement utile que dans le cas d'une compilation comme module Apache. Vous pouvez activer le chargement dynamique des extensions avec la fonction dl(), et cela de manière locale à chaque serveur virtuel ou à chaque répertoire.

  La principale raison qui pousse à désactiver le chargement dynamique est un problème de sécurité. Lorsque le chargement dynamique est activé, il est possible d'ignorer les directives safe mode ou "open_basedir".

  Par défaut, il est possible d'utiliser le chargement dynamique, sauf lorsque la directive safe mode est activée. En effet, il est alors impossible d'utiliser la fonction dl().

`extension_dir` chaîne de caractères

  Définit le répertoire dans lequel le PHP doit chercher les extensions lors du chargement dynamique.

`extension` chaîne de caractères

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

## Directives de configuration MySQL

`mysql.allow_persistent` booléen

  Active ou désactive les connexions persistantes à la base de données MySQL.

`mysql.default_host` chaîne de caractères

  Adresse par défaut du serveur, à utiliser lors de la connexion à un serveur MySQL, si aucun hôte n'est spécifié.

`mysql.default_user` chaîne de caractères

  Utilisateur par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun utilisateur n'est spécifié.

`mysql.default_password` chaîne de caractères

  Mot de passe par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun mot de passe n'est spécifié.

`mysql.default_port` string

  Le numéro de port TCP par défaut, utilisé pour se connecter à la base de données, lorsqu'aucun port n'est spécifié. Si aucun port par défaut est spécifié, le port sera alors obtenu en lisant la variable d'environnement `MYSQL_TCP_PORT`, l'entrée `mysql-tcp` dans le fichier `/etc/services` ou encore la constante de compilation `MYSQL_PORT`, dans cet order. Win32 n'utilisera aussi que la constante `MYSQL_PORT`.

`mysql.default_socket` string

  Le nom par défaut de la socket lorsque l'on se conecte au serveur local, si aucune autre socket n'est spécifiée.

`mysql.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données MySQL, par processus.

`mysql.max_links` entier

  Nombre de connexions maximum à une base de données MySQL, par processus, incluant les connexions persistantes

## Directives de configuration mSQL

`msql.allow_persistent` booléen

  Active ou désactive les connexions persistantes à la base de données mSQL.

`msql.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données mSQL, par processus.

`msql.max_links` entier

  Nombre maximum de connexions à une base de données mSQL, par processus, incluant les connexions persistantes.

## Directives de configuration Postgres

`pgsql.allow_persistent` booléen

  Active ou désactive les connexions persistantes à la base de données Postgres.

`pgsql.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données Postgres, par processus.

`pgsql.max_links` entier

  Nombre maximal de connexions à une base de données Postgres, par processus, incluant les connexions persistantes.

## Directives de configuration SESAM

`sesam_oml` string

  Nom de la librairieBS2000 PLAM contenant les pilotes de connexion SESAM. Obligatoire pour les fonctions SESAM. La librairie BS2000 PLAM doit être configurée avec `ACCESS=READ,SHARE=YES`, car elle doit être accessible à l'utilisateur Apache.

`sesam_configfile` string

  Nom du fichier de configuration de l'application SESAM. Obligatoire pour les fonctions SESAM. Le fichier BS2000 doit être accessible être accessible à l'utilisateur Apache.

  Le fichier de configuration de l'application va contenir la configuration sur le schéma suivant (voir le manuel SESAM) :

      CNF=B
      NAM=K
      NOTYPE

`sesam_messagecatalog` string

  Nom du catalogue de messages SESAM. Dans la plupart des cas, cette directive n'est pas nécessaire. Seulement, si le fichier de messages SESAM n'est pas installé dans la table de messages BS2000, il faut indiquer sa localisation avec cette directive.

  Le catalogue de messages doit être paramétré avec `ACCESS=READ,SHARE=YES`, car il doit être accessible à l'utilisateur Apache.

## Directives de configuration Sybase

`sybase.allow_persistent` booléen

  Active ou désactive les connexions persistantes à la base de données Sybase.

`sybase.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données Sybase par processus.

`sybase.max_links` entier

  Nombre maximum de connexions à une base de données Sybase, par processus, incluant les connexions persistantes.

## Directives de configuration Sybase-CT

`sybct.allow_persistent` booléen

  Active ou désactive les connexions persistantes à la base de données Sybase-CT. Par défaut, cette option est activée.

`sybct.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données Sybase-CT par processus. Par défaut, cette option est à -1, ce qui signifie que le nombre de connexion est illimité.

`sybct.max_links` entier

  Nombre maximum de connexions à une base de données Sybase-CT, par processus, incluant les connexions persistantes. Par défaut, cette option est à -1, ce qui signifie que le nombre de connexions est illimité.

`sybct.min_server_severity` entier

  Les messages en provenance du serveur d'un niveau d'erreur égal à sybct.min_server_severity seront considérés comme des alertes (warnings). Cette valeur peut être modifiée à l'intérieur du script en appelant la fonction sybase_min_server_severity (NDtraducteur : cette fonction semble ne pas exister). Par défaut, cette valeur vaut 10.

`sybct.min_client_severity` entier

  Les messages en provenance de la librairie client avec un niveau d'erreur égal ou supérieur à sybct.min_client_severity seront considérés comme des alertes. Cette valeur peut être modifiée à l'intérieur du script en appelant la fonction sybase_min_client_severity (NDtraducteur : cette fonction semble ne pas exister). Par défaut, cette valeur vaut 10, ce qui annule tout rapport d'erreur.

`sybct.login_timeout` entier

  Délai de validité d'une tentative de connexion. Il est à noter que si max_execution_time est dépassé avant que la connexion n'expire, le script sera terminé avant le message d'erreur. Par défaut, cette valeur vaut 1 minute.

`sybct.timeout` entier

  Temps maximum en secondes avant qu'une tentative de requête "select_db" ou "query" non aboutie renvoie une erreur. Il est à noter que si max_execution_time est dépassé avant que la requête n'expire, votre script sera terminé avant le message d'erreur. Par défaut, il n'y a pas de limite.

`sybct.hostname` chaîne de caractères

  Nom de l'hôte à partir duquel vous vous connectez, afin d'être affiché par la fonction sp_who (NDtraducteur : cette fonction semble ne pas exister). Par défaut, cette valeur égale à 0.

## Directives de configuration Informix

`ifx.allow_persistent` booléen

  Active les connexions persistantes à une base de données Informix.

`ifx.max_persistent` entier

  Nombre maximum de connexions persistantes à une base de données Informix, par processus.

`ifx.max_links` entier

  Nombre maximum de connexions à une base de données Informix par processus, en incluant les connexions persistantes.

`ifx.default_host` chaîne de caractères

  Hôte par défaut où se connecter si aucun hôte n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect().

`ifx.default_user` chaîne de caractères

  Utilisateur par défaut si aucun utilisateur n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect().

`ifx.default_password` chaîne de caractères

  Mot de passe par défaut si aucun mot de passe n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect().

`ifx.blobinfile` booléen

  Lorsque cette option est activée, les colonnes de type "blob" seront retournées dans un fichier. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_blobinfile_mode().

`ifx.textasvarchar` booléen

  Lorsque cette option est activée, les colonnes de type "TEXT" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

`ifx.byteasvarchar` booléen

  Lorsque cette option est activée, les colonnes de type "BYTE" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

`ifx.charasvarchar` booléen

  Lorsque cette option est activée, les espaces en fin de chaîne de caractères seront conservés lors d'une commande FETCH.

`ifx.nullformat` booléen

  Lorsque cette option est activée, les colonnes de valeur `NULL` seront retournées comme des chaînes de caractères vides. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_nullformat().

## Directives de configuration pour les calculs mathématiques.

`bcmath.scale` entier

  Nombre de chiffres après la virgule pour toutes les fonctions de précision mathématique arbitraire.

## Directives de configuration du navigateur.

`browscap` chaîne de caractères

  Nom du fichier de descriptif des clients HTML. Voir aussi get_browser().

## Directives de configuration du pilote ODBC unifié

`uodbc.default_db` chaîne de caractères

  Source de données ODBC à utiliser par défaut avec les fonctions odbc_connect() ou odbc_pconnect().

`uodbc.default_user` chaîne de caractères

  Nom d'utilisateur défaut avec les fonctions odbc_connect() ou odbc_pconnect().

`uodbc.default_pw` chaîne de caractères

  Mot de passe par défaut dans les fonctions odbc_connect() ou odbc_pconnect().

`uodbc.allow_persistent` booléen

  Cette option active ou désactive les connexions persistantes à la base de données, via le canal ODBC.

`uodbc.max_persistent` entier

  Nombre maximum de connexions persistantes autorisées à la base de données.

`uodbc.max_links` entier

  Nombre maximum de connexions (persistantes ou non), par processus, à la base de données.

## Directives de configuration des chaînes mulit-octets

`mbstring.internal_encoding` string

  `mbstring.internal_encoding` définit l'encodage interne par défaut.

`mbstring.http_input` string

  `mbstring.http_input` définit l'encodage de reception HTTP par défaut.

`mbstring.http_output` string

  `mbstring.http_output` définit l'encodage d'affichage HTTP par défaut.

`mbstring.detect_order` string

  `mbstring.detect_order` définit l'ordre de détection des encodages par défaut.

`mbstring.substitute_character` string

  `mbstring.substitute_character` définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides.

Précédent | Sommaire | Suivant
Des problèmes? | Niveau supérieur | Sécurité