Directives de configuration

Options Httpd

Tableau 4-2. Options Httpd

NomValeur par défautModifications
async_send"0"PHP_INI_ALL

Options du langage

Tableau 4-3. Options du langage

NomValeur par défautModifications
short_open_tagOnPHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tagsOffPHP_INI_SYSTEM|PHP_INI_PERDIR
precision"14"PHP_INI_ALL
y2k_complianceOffPHP_INI_ALL
allow_call_time_pass_referenceOnPHP_INI_SYSTEM|PHP_INI_PERDIR
expose_phpOnPHP_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

NomValeur par défautModifications
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

NomPar défautModifiable
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

NomPar défautModifiable
include_pathPHP_INCLUDE_PATHPHP_INI_ALL
doc_rootPHP_INCLUDE_PATHPHP_INI_SYSTEM
user_dirNULLPHP_INI_SYSTEM
extension_dirPHP_EXTENSION_DIRPHP_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-3. UNIX include_path

include_path=".:/php/includes"

Exemple 4-4. 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.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

NomPar défautModifiable
file_uploads"1"PHP_INI_SYSTEM
upload_tmp_dirNULLPHP_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 lecture pour l'utilisateur qui exécute le script PHP, ou par le serveur web.

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

NomPar défautModifiable
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.