cvs: phpdoc-fr /chapters config.xml install.xml intro.xml security.xml tutorial.xml
| From: | Damien Seguy | Date: | Sat, 18 Jan 2003 16:11:36 +0000 |
| Subject: | cvs: phpdoc-fr /chapters config.xml install.xml intro.xml security.xml tutorial.xml | ||
| Groups: | php.doc.fr | ||
| Request: | Send a blank email to doc-fr+get-157@lists.php.net to get a copy of this message | ||
dams Sat Jan 18 11:11:36 2003 EDT
Modified files:
/phpdoc-fr/chapters config.xml install.xml intro.xml security.xml
tutorial.xml
Log:
commiting major update
Index: phpdoc-fr/chapters/config.xml diff -u phpdoc-fr/chapters/config.xml:1.17 phpdoc-fr/chapters/config.xml:1.18 --- phpdoc-fr/chapters/config.xml:1.17 Thu Nov 21 21:25:38 2002 +++ phpdoc-fr/chapters/config.xml Sat Jan 18 11:11:34 2003 @@ -1,20 +1,44 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.17 $ --> +<!-- $Revision: 1.18 $ --> <chapter id="configuration"> <title>Configuration</title> <sect1 id="configuration.file"> <title>Le fichier de configuration</title> <simpara> Le fichier de configuration (appelé <filename>php3.ini</filename> - dans la version 3.0 du PHP, et simplement <filename>php.ini</filename> + 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 <acronym>HTTP</acronym>. Pour la version <acronym>CGI</acronym> le fichier est lu à chaque invocation. </simpara> <para> + La localisation par défaut du &php.ini; est une option de compilation (voir + <link linkend="faq.installation.phpini">FAQ</link>), mais elle peut être + changée pour les versions <acronym>CGI</acronym> et <acronym>CLI</acronym> avec + l'option de ligne de commande <literal>-c</literal> : voyez le chapitre + sur l'utilisation de &php; en <link linkend="features.commandline">ligne de commande</link>. + Vous pouvez aussi utiliser la variable d'environnement <literal>PHPRC</literal> + pour indiquer des chemins supplémentaires pour rechercher le fichier + &php.ini;. + </para> + <para> + Toutes les directives &php; ne sont pas documentées ci-dessous. Pour une + ligne de toutes les directives, lisez le &php.ini;, qui est très bien + documenté. Vous pouvez jeter un oeil à sa toute dernière version + <ulink url="&url.php.cvs.phpini;">dans le CVS</ulink>. + </para> + <note> + <para> + La valeur par défaut de la directive &php; + <link linkend="ini.register-globals">register_globals</link> a été changée + de <emphasis>on</emphasis> à <emphasis>off</emphasis> en &php; + <ulink url="&url.php.release4.2.0;">4.2.0</ulink>. + </para> + </note> + <para> <example> - <title>Extrait du php.ini</title> + <title>Extrait du &php.ini;</title> <programlisting role="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 @@ -31,6 +55,13 @@ <!-- TODO: add more details about values and expressions --> </example> </para> + </sect1> + + <sect1 id="configuration.changes"> + <title>Comment modfier la configuration</title> + + <sect2 id="configuration.changes.apache"> + <title>Exécuter &php; comme module Apache</title> <simpara> Lorsque vous utilisez le module Apache, vous pouvez aussi changer les paramètres de configurations en utilisant les directives @@ -45,9 +76,8 @@ préfixées par "php3_". </simpara> <simpara> - 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. + Dans la version 4.0, il y a de nombreuses directives + Apache qui vous permettent de modifier la configuration de &php;. </simpara> <variablelist> <varlistentry> @@ -58,9 +88,19 @@ </term> <listitem> <para> - Cette directive affecte une valeur à la variable - spécifiée. - </para> + Modifie la valeur de la directive spécifiée. + Cette instruction n'est utilisable qu'avec les directives + &php; de type PHP_INI_ALL et PHP_INI_PERDIR. + Pour annuler une valeur qui aurait été modifiée au préalable, + utilisez la valeur <literal>none</literal>. + <informalexample> + <programlisting role="ini"> +<![CDATA[ +php_value auto_prepend_file none +]]> + </programlisting> + </informalexample> + </para> </listitem> </varlistentry> <varlistentry> @@ -71,8 +111,10 @@ </term> <listitem> <para> - Cette directive est utilisée pour activer ou + Cette instruction est utilisée pour activer ou désactiver une option. + Cette instruction n'est utilisable qu'avec les directives + &php; de type PHP_INI_ALL et PHP_INI_PERDIR. </para> </listitem> </varlistentry> @@ -84,10 +126,12 @@ </term> <listitem> <para> - 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 <filename>.htaccess</filename>. + Cette instruction affecte une valeur à la variable + spécifiée. + Cette instruction NE peux PAS être utilisée dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configurée avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas être + modifiée en utilisant le fichier <filename>.htaccess</filename>. </para> </listitem> </varlistentry> @@ -101,6 +145,10 @@ <para> Cette directive est utilisée pour activer ou désactiver l'option précédente. + Cette instruction NE peux PAS être utilisée dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configurée avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas être + modifiée en utilisant le fichier <filename>.htaccess</filename>. </para> </listitem> </varlistentry> @@ -109,30 +157,205 @@ <example> <title>Exemple de configuration Apache</title> <programlisting role="ini"> -<IfModule mod_php4.c> +<![CDATA[ +<IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" - php_flag safe_mode on -</IfModule> -<IfModule mod_php3.c> + php_admin_flag safe_mode on +</IfModule> +<IfModule mod_php3.c> php3_include_path ".:/usr/local/lib/php" php3_safe_mode on -</IfModule> +</IfModule> +]]> </programlisting> </example> </para> - <simpara> + <note> + <para> + Les constantes &php; n'existent pas en dehors de &php;. Par + exemple, dans le fichier <filename>httpd.conf</filename>, + vous ne pouvez pas utiliser des constantes &php; telles que + <constant>E_ALL</constant> ou <constant>E_NOTICE</constant> + pour fixer le niveau de <link linkend="ini.error-reporting">rapport d'erreur</link>, + car ces constantes n'ont pas de signification pour Apache, + et seront remplacées par <emphasis>0</emphasis>. + Utilisez les valeurs numériques à la place. + Les valeurs numériques peuvent aussi être + utilisées dans le &php.ini; + </para> + </note> + </sect2> + + <sect2 id="configuration.changes.other"> + <title>Autres interfaces de configuration de &php;</title> + <para> + Indépendamment de l'interface de &php;, vous pouvez modifier + certaines valeurs de la configuration durant l'exécution des + scripts, grâce à la fonction <function>ini_set</function>. + La table suivante fournit une présentation des différents endroits + où la directive peut être modifiée. + </para> + <para> + <table> + <title>Definition des constantes PHP_INI_*</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Constante</entry> + <entry>Valeur</entry> + <entry>Signification</entry> + </row> + </thead> + <tbody> + <row> + <entry>PHP_INI_USER</entry> + <entry>1</entry> + <entry>La directive peut être configurée dans les scripts.</entry> + </row> + <row> + <entry>PHP_INI_PERDIR</entry> + <entry>2</entry> + <entry> + La directive peut être configurée dans le fichier &php.ini;, le + fichier <filename>.htaccess</filename> ou encore dans le fichier + <filename>httpd.conf</filename> + </entry> + </row> + <row> + <entry>PHP_INI_SYSTEM</entry> + <entry>4</entry> + <entry> + La directive peut être configurée dans le fichier &php.ini; ou + dans <filename>httpd.conf</filename> + </entry> + </row> + <row> + <entry>PHP_INI_ALL</entry> + <entry>7</entry> + <entry>La directive peut être modifiée n'importe où.</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> Vous pouvez voir l'état de votre configuration en utilisant la fonction <function>phpinfo</function>. Vous pouvez aussi accéder aux valeurs de votre configuration de manière - individuelle en utilisant la fonction <function>get_cfg_var</function>. - </simpara> - <sect2 id="ini.sect.general"> - <title>Directives de configuration générale</title> + individuelle en utilisant les fonctions + <function>ini_get</function> or <function>get_cfg_var</function>. + </para> + </sect2> + </sect1> + + <sect1 id="configuration.directives"> + <title>Directives de configuration</title> + + <sect2 id="ini.sect.httpd-options"> + <title>Options Httpd</title> + <para> + <table> + <title>Options Httpd</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>async_send</entry> + <entry>"0"</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + </para> + </sect2> + + <sect2 id="ini.sect.language-options"> + <title>Options du langage</title> + <para> + <table> + <title>Options du language</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>short_open_tag</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>asp_tags</entry> + <entry>Off</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>precision</entry> + <entry>"14"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>y2k_compliance</entry> + <entry>Off</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>allow_call_time_pass_reference</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>expose_php</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> <variablelist> + <varlistentry id="ini.short-open-tag"> + <term> + <parameter>short_open_tag</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Active le support de la forme courte des balises &php; : + <userinput><? ?></userinput>. Si vous voulez utiliser + &php; avec du XML, vous pouvez désactiver cette option afin que + vous puissiez utiliser <userinput><?xml ?></userinput>. Sinon + vous pouvez l'afficher avec PHP comme ceci : + <userinput><?php echo '<?xml version="1.0"'; ?></userinput>. + Si cette directive est inactivée, vous devez utiliser la + forme longue des balises &php; <userinput><?php ?></userinput>. + </para> + <note> + <para> + Cette directive affecte aussi les raccourcis <userinput><?=</userinput>, + qui est l'équivalent de <userinput><? echo</userinput>. Utiliser ce + raccourci impose l'activation de la directive + <systemitem role="directive">short_open_tag</systemitem>. + </para> + </note> + </listitem> + </varlistentry> <varlistentry id="ini.asp-tags"> <term> <parameter>asp_tags</parameter> - <type>booléen</type> + <type>&boolean;</type> </term> <listitem> <para> @@ -148,117 +371,347 @@ </note> </listitem> </varlistentry> - <varlistentry id="ini.auto-append-file"> + <varlistentry id="ini.precision"> <term> - <parameter>auto_append_file</parameter> - <type>chaîne de caractères</type> + <parameter>precision</parameter> + <type>&integer;</type> + </term> + <listitem> + <simpara> + Le nombre de chiffres significatifs à afficher avec les &float;. + </simpara> + </listitem> + </varlistentry> + <varlistentry id="ini.y2k-compliance"> + <term> + <parameter>y2k_compliance</parameter> + <type>&boolean;</type> + </term> + <listitem> + <simpara> + Active la compatibilité an 2000 (Cela posera des problèmes avec les + navigateurs qui ne sont pas compatibles) + </simpara> + </listitem> + </varlistentry> + <varlistentry id="allow-call-time-pass-reference"> + <term> + <parameter>allow_call_time_pass_reference</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilisé. + 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 focntion. 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 au lieu de par référence). </para> <para> - Le mot réservé <systemitem class="constant">NONE</systemitem> - désactive l'auto-appending. + Voir aussi <link linkend="language.references">Les références</link>. </para> - <note> - <para> - Si le script s'arrête par la fonction <function>exit</function>, - auto-append <emphasis>ne fonctionnera pas</emphasis>. - </para> - </note> </listitem> </varlistentry> - <varlistentry id="ini.auto-prepend-file"> + + <varlistentry id="expose-php"> <term> - <parameter>auto_prepend_file</parameter> - <type>chaîne de caractères</type> + <parameter>expose_php</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilisé. + Cette directive active ou non le fait que &php; est marqué comme installé + sur le serveur web (en ajoutant sa propre signature dans les entê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. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + + <sect2 id="ini.sect.resource-limits"> + <title>Limitation des ressources</title> + <para> + <table> + <title>Limitation des ressources</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>memory_limit</entry> + <entry>"8M"</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur cette directive. + <variablelist> + + <varlistentry id="ini.memory-limit"> + <term> + <parameter>memory_limit</parameter> + <type>&integer;</type> + </term> + <listitem> + <para> + 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 consomme 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 <literal>--enable-memory-limit</literal>. Notez que vous + pouvez lui donner la valeur de -1 si vous ne souhaitez pas de + limitation de consommation de mémoire. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + <para> + Voir aussi + <link linkend="ini.max-execution-time">max_execution_time</link>. + </para> + </sect2> + <sect2 id="ini.sect.data-handling"> + <title>Gestion des données</title> + <para> + <table> + <title>Options de gestion des données</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>track-vars</entry> + <entry>"On"</entry> + <entry>PHP_INI_??</entry> + </row> + <row> + <entry>arg_separator.output</entry> + <entry>"&"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>arg_separator.input</entry> + <entry>"&"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>variables_order</entry> + <entry>"EGPCS"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>register_globals</entry> + <entry>"Off"</entry> + <entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>register_argc_argv</entry> + <entry>"On"</entry> + <entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>post_max_size</entry> + <entry>"8M"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>gpc_order</entry> + <entry>"GPC"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>auto_prepend_file</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>auto_append_file</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>default_mimetype</entry> + <entry>"text/html"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>default_charset</entry> + <entry>"iso-8859-1"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>always_populate_raw_post_data</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>allow_webdav_methods</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.track-vars"> + <term> + <parameter>track_vars</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Si activé, les variables de l'environnement, GET, POST, Cookie et + du serveur sont disponibles respectivement dans les tableaux associatifs + <varname>$_ENV</varname>, + <varname>$_GET</varname>, + <varname>$_POST</varname>, + <varname>$_COOKIE</varname> et + <varname>$_SERVER</varname>. </para> <para> - Le mot réservé <systemitem class="constant">NONE</systemitem> - désactive l'auto-appending. - </para> + Notez que depuis PHP 4.0.3, + <systemitem role="directive">track_vars</systemitem> est toujours + activée. + </para> </listitem> </varlistentry> - <varlistentry id="ini.cgi-ext"> + + <varlistentry id="ini.arg-separator.output"> <term> - <parameter>cgi_ext</parameter> - <type>chaîne de caractères</type> + <parameter>arg_separator.output</parameter> + <type>&string;</type> </term> <listitem> - <para> - (NDT : aucune documentation n'est fournie). - </para> + <para> + Le séparateur utilisé par &php; dans les URL générées par &php; pour + séparer les arguments. + </para> </listitem> </varlistentry> - <varlistentry id="ini.doc-root"> + + <varlistentry id="arg-separator.input"> <term> - <parameter>doc_root</parameter> - <type>string</type> + <parameter>arg_separator.input</parameter> + <type>&string;</type> </term> <listitem> <para> - Le dossier racine de PHP. Cette directive n'est utilisée que - si elle est définie. Si PHP est configuré en - &safemode;, aucun fichier en dehors de ce dossier ne sera accessible. + Liste de séparateur(s) utilisé par &php; pour analyser les + URL d'entrées, et en déduire les variables. </para> + <note> + <para> + Chacun des caractères de cette directive est consdiré comme + un séparateur. + </para> + </note> </listitem> </varlistentry> - <varlistentry id="ini.open-basedir"> + + <varlistentry id="ini.variables-order"> <term> - <parameter>open_basedir</parameter> - <type>string</type> + <parameter>variables_order</parameter> + <type>&string;</type> </term> <listitem> - <para> - Limite l'espace où PHP peut ouvrir des fichiers. - </para> - <para> - 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. - </para> - <para> - La valeur spéciale <systemitem class="constant">.</systemitem> - indique que le dossier courant du script est utilisé comme open_basedir. - </para> - <para> - 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 <literal>open_basedir</literal> - des dossiers parents est automatiquement héritée par les fils. - </para> + <para> + 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. + </para> + <para> + Voir aussi <link linkend="ini.register-globals">register_globals</link>. + </para> + </listitem> + </varlistentry> + <varlistentry id="ini.register-globals"> + <term> + <parameter>register_globals</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + 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 + <literal>http://www.example.com/test.php?id=3</literal> va créer + la variable <varname>$id</varname> dans votre script. Ou bien, + <varname>$DOCUMENT_ROOT</varname>, issue de + <varname>$_SERVER['DOCUMENT_ROOT']</varname>. + Vous pouvez désactiver cette fonction + si vous ne voulez pas truffer vos scripts avec des + valeurs utilisateurs. + Depuis &php; <ulink url="&url.php.release4.2.0;">4.2.0</ulink>, + cette directive vaut par défaut <emphasis>off</emphasis>. Il est recommandé + de lire la liste des <link linkend="reserved.variables">Variables prédéfinies</link>, + pour découvrir les + <link linkend="language.variables.superglobals">super-globales</link> : + <varname>$_ENV</varname>, + <varname>$_GET</varname>, + <varname>$_POST</varname>, + <varname>$_COOKIE</varname> et + <varname>$_SERVER</varname>. + Lisez aussi le chapitre sur la sécurité + <link linkend="security.registerglobals">Utilisation des variables super-globales</link> + pour plus de détails. + </para> + <para> + Notez que <systemitem role="directive">register_globals</systemitem> + ne peut être modifiée durant l'exécution du script (avec <function>ini_set</function>). + Cependant, vous pouvez utiliser le fichier <filename>.htaccess</filename> si + votre hôte les supporte, comme décrit ci-dessus. Par exemple, vous pouvez + inscrire dans votre fichier <filename>.htaccess</filename> : + <userinput>php_flag register_globals on</userinput>. + </para> <note> <para> - Le support pour les dossiers multiples a été ajouté dans 3.0.7. - </para> - </note> - <para> - La valeur par défaut est : libre accès à tous les fichiers. - </para> + <systemitem role="directive">register_globals</systemitem> est combiné avec + la directive <link linkend="ini.variables-order">variables_order</link>. + </para> + </note> </listitem> </varlistentry> + <varlistentry id="ini.register-argc-argv"> <term> <parameter>register_argc_argv</parameter> - <type>boolean</type> + <type>&boolean;</type> </term> <listitem> <simpara> Indique à &php; si il doit déclarer les variables argv et - argc (qui contiendront alors les mêmes informations passées par méthode GET). + argc (qui contiendront alors les mêmes informations passées + par méthode GET). </simpara> <simpara> Voir aussi <link linkend="features.commandline">command line</link>. @@ -271,7 +724,7 @@ <varlistentry id="ini.post-max-size"> <term> <parameter>post_max_size</parameter> - <type>integer</type> + <type>&integer;</type> </term> <listitem> <simpara> @@ -290,283 +743,513 @@ </simpara> </listitem> </varlistentry> + <varlistentry id="ini.gpc-order"> <term> - <parameter>gpc_order</parameter> - <type>chaîne de caractères</type> + <parameter>gpc_order</parameter> + <type>&string;</type> </term> <listitem> - <para> - 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. - </para> + <para> + Cette directive est obsolète. Voyez plutôt + <link linkend="ini.variables-order">variables_order</link>. + </para> </listitem> </varlistentry> - <varlistentry id="ini.include-path"> + + <varlistentry id="ini.auto-append-file"> <term> - <parameter>include_path</parameter> - <type>string</type> - </term> - <listitem> - <para> - Spécifie une liste de dossiers, où les fonctions <function>require</function>, - <function>include</function> 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 <envar>PATH</envar> : une liste de dossiers, - séparés par des deux points (:) sous UNIX, et par des points virgules (;) - sous Windows. - <example> - <title>UNIX include_path</title> - <programlisting role="php3.ini"> -include_path=.:/home/httpd/php-lib - </programlisting> - </example> - <example> - <title>Windows include_path</title> - <programlisting role="php3.ini"> -include_path=".;c:\www\phplib" - </programlisting> - </example> - La valeur par défaut pour cette directive est <literal>.</literal>, - c'est-à-dire le dossier courant.</para> - </listitem> - </varlistentry> - <varlistentry id="ini.isapi-ext"> - <term> - <parameter>isapi_ext</parameter> - <type>string</type> + <parameter>auto_append_file</parameter> + <type>&string;</type> </term> <listitem> - <para> - (Aucune documentation n'est fournie) + <para> + 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 <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilisé. </para> - </listitem> - </varlistentry> - <varlistentry id="ini.memory-limit"> - <term> - <parameter>memory_limit</parameter> - <type>entier</type> - </term> - <listitem> <para> - 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 + Le mot réservé <systemitem class="constant">NONE</systemitem> + désactive l'auto-appending. </para> + <note> + <para> + Si le script s'arrête par la fonction <function>exit</function>, + auto-append <emphasis>ne fonctionnera pas</emphasis>. + </para> + </note> </listitem> </varlistentry> - <varlistentry id="ini.nsapi-ext"> + + <varlistentry id="ini.auto-prepend-file"> <term> - <parameter>nsapi_ext</parameter> - <type>chaîne de caractères</type> + <parameter>auto_prepend_file</parameter> + <type>&string;</type> </term> <listitem> <para> - Aucune documentation n'est fournie. + 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 <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilisé. </para> + <para> + Le mot réservé <systemitem class="constant">none</systemitem> + désactive l'auto-appending. + </para> </listitem> </varlistentry> - <varlistentry id="ini.register-globals"> + + <varlistentry id="ini.default-mimetype"> <term> - <parameter>register_globals</parameter> - <type>boolean</type> + <parameter>default_mimetype</parameter> + <type>&string;</type> </term> <listitem> <para> - 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 <link - linkend="ini.track-vars">track_vars</link> - dans ce cas, - vous pouvez accéder à toutes les variables EGPCS grâce aux tableaux - <varname>$HTTP_ENV_VARS</varname>, - <varname>$HTTP_GET_VARS</varname>, - <varname>$HTTP_POST_VARS</varname>, - <varname>$HTTP_COOKIE_VARS</varname>, et - <varname>$HTTP_SERVER_VARS</varname>. </para> </listitem> </varlistentry> - <varlistentry id="ini.short-open-tag"> + + <varlistentry id="ini.default-charset"> <term> - <parameter>short_open_tag</parameter> - <type>booléen</type> + <parameter>default_charset</parameter> + <type>&string;</type> </term> <listitem> <para> - Active ou désactive l'utilisation des balises courtes, - (<userinput><? ?></userinput>). 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, - (<userinput><?php ?></userinput>).</para> + Depuis la version 4.0b4, &php; fournit toujours une indication + de jeu de caractères pour les fichiers générés, dans l'entête HTTP + <literal>Content-type</literal>. Pour inactiver l'envoi de cette + indication, laissez cette directive vide. + </para> </listitem> </varlistentry> - <varlistentry id="ini.sql.safe-mode"> + + <varlistentry id="ini.always-populate-raw-post-data"> <term> - <parameter>sql.safe_mode</parameter> - <type>booléen</type> + <parameter>always_populate_raw_post_data</parameter> + <type>&boolean;</type> </term> <listitem> <para> - Aucune documentation n'est fournie. + Force le remplissage de la variable <varname>$HTTP_RAW_POST_DATA</varname>. </para> </listitem> </varlistentry> - <varlistentry id="ini.track-vars"> + + <varlistentry id="ini.allow-webdav-methods"> <term> - <parameter>track_vars</parameter> - <type>booléen</type> + <parameter>allow_webdav_methods</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <symbol>$HTTP_GET_VARS</symbol>, - <symbol>$HTTP_POST_VARS</symbol> et <symbol>$HTTP_COOKIE_VARS</symbol>. + 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 + <link linkend="ini.always-populate-raw-post-data">always_populate_raw_post_data</link>. </para> </listitem> </varlistentry> - <varlistentry id="ini.upload-tmp-dir"> + </variablelist> + </para> + <para> + Voir aussi + <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>, + <link linkend="ini.magic-quotes-runtime">magic-quotes-runtime</link> et + <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>. + </para> + </sect2> + <sect2 id="ini.sect.path-directory"> + <title>Dossiers</title> + <para> + <table> + <title>Options de dossiers</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>include_path</entry> + <entry>PHP_INCLUDE_PATH</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>doc_root</entry> + <entry>PHP_INCLUDE_PATH</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>user_dir</entry> + <entry>NULL</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>extension_dir</entry> + <entry>PHP_EXTENSION_DIR</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>cgi.force_redirect</entry> + <entry>"1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>cgi.redirect_status_env</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>fastcgi.impersonate</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.include-path"> <term> - <parameter>upload_tmp_dir</parameter> - <type>chaîne de caractères</type> + <parameter>include_path</parameter> + <type>&string;</type> </term> <listitem> <para> - 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. + Spécifie une liste de dossiers, où les fonctions + <function>require</function>, <function>include</function> et + fopen_with_path() iront chercher les fichiers. Le format est + le même que celui de la variable d'environnement + <envar>PATH</envar> : une liste de dossiers, séparés + par des deux points (:) sous UNIX, et par des points virgules (;) + sous Windows. + </para> + <para> + <example> + <title>UNIX include_path</title> + <programlisting role="php.ini"> +<![CDATA[ +include_path=".:/php/includes" +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title>Windows include_path</title> + <programlisting role="php.ini"> +<![CDATA[ +include_path=".;c:\php\includes" +]]> + </programlisting> + </example> + </para> + <para> + Utiliser un point (<literal>.</literal>) dans l'include_path + permet de réaliser des inclusions relatives au dossier + courant. </para> </listitem> </varlistentry> - <varlistentry id="ini.upload-max-filesize"> + + <varlistentry id="ini.doc-root"> <term> - <parameter>upload_max_filesize</parameter> - <type>entier</type> + <parameter>doc_root</parameter> + <type>&string;</type> </term> <listitem> <para> - 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. + Le dossier racine de &php;. Cette directive n'est utilisée que + si elle est définie. Si &php; est configuré en + &safemode;, 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 solutin alternative est d'utiliser la directive + <link linkend="ini.cgi.force-redirect">cgi.force_redirect</link> ci-dessous. </para> - </listitem> - </varlistentry> + </listitem> + </varlistentry> + <varlistentry id="ini.user-dir"> <term> <parameter>user_dir</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Répertoire où sont stockés les fichiers PHP dans le - répertoire d'un utilisateur. Par exemple, <literal>public_html</literal>. + Répertoire où sont stockés les fichiers &php; + dans le répertoire d'un utilisateur. Par exemple, + <literal>public_html</literal>. </para> </listitem> </varlistentry> - </variablelist> - </sect2> - <sect2 id="ini.sect.safe-mode"> - <title>Directives de configuration du "Safe Mode"</title> - <variablelist> - <varlistentry id="ini.safe-mode"> + + <varlistentry id="ini.extension-dir"> <term> - <parameter>safe_mode</parameter> - <type>booléen</type> + <parameter>extension_dir</parameter> + <type>&string;</type> </term> <listitem> <para> - Cette directive active ou désactive l'option &safemode;, un - mode de sécurisation de PHP lors du partage avec plusieurs utilisateurs. - </para> + Définit le répertoire dans lequel le PHP doit chercher + les extensions lors du chargement dynamique. Voir aussi + <link linkend="ini.enable-dl">enable_dl</link> et <function>dl</function>. + </para> </listitem> </varlistentry> - <varlistentry id="ini.safe-mode-exec-dir"> + + <varlistentry id="ini.extension"> <term> - <parameter>safe_mode_exec_dir</parameter> - <type>chaîne de caractères</type> + <parameter>extension</parameter> + <type>&string;</type> </term> <listitem> <para> - Si l'option "SAFE MODE" est activée, <function>system</function> 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. + Définit les extensions qui doivent être chargées lors du + démarrage du PHP. </para> </listitem> </varlistentry> - </variablelist> + + <varlistentry id="ini.cgi.force-redirect"> + <term> + <parameter>cgi.force_redirect</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + cgi.force_redirect est nécesssaire pour assurer la sécurité de + &php;, lorsqu'il fonctionne en tant que CGI pour la plus part + des serveur web. Même si laissé vide, &php; va activer cette + option par défaut. Vous pouvez l'inactiver + <emphasis>à vos risques et périls</emphasis>. + </para> + <note> + <para> + Utilisateurs Windows : vous pouvez inactiver cette option sans problème + avec IIS et en fait, vous DEVEZ l'inactiver. + Pour faire fonctionner OmniHTTPD ou Xitami, vous devrez aussi l'inactiver. + </para> + </note> + </listitem> + </varlistentry> + + <varlistentry id="ini.cgi.redirect-status-env"> + <term> + <parameter>cgi.cgi.redirect_status_env</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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. + </para> + <note> + <para> + Allouer cette variable PEUT causer des problèmes de sécurité, + RENSEIGNEZ VOUS AVANT DE LE FAIRE. + </para> + </note> + </listitem> + </varlistentry> + + <varlistentry id="fastcgi.impersonate"> + <term> + <parameter>fastcgi.impersonate</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> </sect2> + <sect2 id="ini.sect.file_uploads"> + <title>File Uploads</title> + <para> + <table> + <title>File Uploads Configuration Options</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>file_uploads</entry> + <entry>"1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>upload_tmp_dir</entry> + <entry>NULL</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>upload_max_filesize</entry> + <entry>"2M"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.file-uploads"> + <term> + <parameter>file_uploads</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Cette directive indique si les + <link linkend="features.file-upload">téléchargements de fichiers</link> + sont supportés sur le serveur. Voir aussi + <link linkend="ini.upload-max-filesize">upload_max_filesize</link>, + <link linkend="ini.upload-tmp-dir">upload_tmp_dir</link> et + <link linkend="ini.post-max-size">post_max_size</link>. + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.upload-tmp-dir"> + <term> + <parameter>upload_tmp_dir</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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 exécute le script &php;, ou par le serveur web. + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.upload-max-filesize"> + <term> + <parameter>upload_max_filesize</parameter> + <type>&integer;</type> + </term> + <listitem> + <para> + La taille maximale d'un fichier téléchargé sur le serveur. + La valeur est en octets. Par défaut, elle est de 2 méga-octets. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + + <sect2 id="ini.sql-general"> + <title>Options de SQL</title> + <para> + <table> + <title>Options de SQL</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>sql.safe_mode</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur cette directive. + <variablelist> + <varlistentry id="ini.sql.safe-mode"> + <term> + <parameter>sql.safe_mode</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + <sect2 id="ini.sect.debugger"> - <title>Directives de configuration de débugage.</title> + <title>Configuration des débogeurs</title> <variablelist> + <varlistentry id="ini.debugger.host"> <term> <parameter>debugger.host</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Adresse IP ou nom de l'hôte utilisé pour le débugage. + Nom DNS ou adresse IP de l'hôte du débogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.port"> <term> <parameter>debugger.port</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Numéro du port utilisé pour le débugage. + Numéro de port du débogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.enabled"> <term> <parameter>debugger.enabled</parameter> - <type>booléen</type> + <type>&boolean;</type> </term> <listitem> <para> - Activation ou désactivation du débugueur.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - <sect2 id="ini.sect.extension"> - <title>Directives de chargement des extensions</title> - <variablelist> - <varlistentry id="ini.extension-dir"> - <term> - <parameter>extension_dir</parameter> - <type>chaîne de caractères</type> - </term> - <listitem> - <para> - Définit le répertoire dans lequel le PHP doit chercher les extensions lors - du chargement dynamique. - </para> - </listitem> - </varlistentry> - <varlistentry id="ini.extension"> - <term> - <parameter>extension</parameter> - <type>chaîne de caractères</type> - </term> - <listitem> - <para> - Définit les extensions qui doivent être chargées lors du - démarrage du PHP. + Indique si le débogeur est activé ou pas. </para> </listitem> </varlistentry> + </variablelist> </sect2> + </sect1> </chapter> <!-- Keep this comment at the end of the file Index: phpdoc-fr/chapters/install.xml diff -u phpdoc-fr/chapters/install.xml:1.36 phpdoc-fr/chapters/install.xml:1.37 --- phpdoc-fr/chapters/install.xml:1.36 Mon Aug 12 22:59:46 2002 +++ phpdoc-fr/chapters/install.xml Sat Jan 18 11:11:34 2003 @@ -1 +1 @@ -<?xml version="1.0" encoding="iso-8859-1"?><!-- $Revision: 1.36 $ --><chapter id="installation"> <title>Installation</title> <sect1 id="install.general"> <title>Considérations générales sur l'installation</title> <para> Avant d'installer PHP, vous devez savoir ce que vous voulez faire de PHP. Il y a trois cas d'utilisation que vous a décrit la section <link linkend="intro-whatcando">Que peut faire?</link> section: <itemizedlist> <listitem><simpara>Scripts web</simpara></listitem> <listitem><simpara>Scripts de ligne de commande</simpara></listitem> <listitem><simpara>Application à interface graphique</simpara></listitem> </itemizedlist> </para> <para> Pour la première tâche, qui est de loin la plus répandue, vous avez besoin de trois choses : PHP lui-même, un serveur web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre système d'exploitation, vous pouvez aussi disposer d'un serveur Web (i.e. Apache sous Linux ou IIS sous Windows). Vous pouvez aussi louer un espace à une société. De cette façon, vous n'aurez pas à mettre en place PHP, mais uniquement à écrire vos scripts, les charger sur le serveur et voir le résultat sur votre navigateur. Vous pouvez trouver une liste de ces compagnies à <ulink url="&url.php.hosts;">&url.php.hosts;</ulink>. </para> <para> Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur web, vous pouvez toujours l'utiliser comme processeur CGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable PHP (<filename>php.exe</filename> sous Windows), pour qu'il traite les fichiers PHP sur le serveur. </para> <para> Si vous souhaitez aussi utiliser PHP en ligne de commande (écrire des scripts de génération d'image hors ligne, par exemple, ou bien traiter des textes en fonctions d'information que vous leur passeriez), vous aurez besoin d'un exécutable PHP. Pour plus de détails, lisez la section <link linkend="commandline">écrire des applications PHP en ligne de commande</link>. Dans ce cas, vous n'aurez pas besoin de serveur web, ni de navigateur. </para> <para> Avec PHP, vous pouvez aussi écrire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche complètement différente de l'écriture des pages web, car vous ne générerez pas de fichiers HTML, mais vous aurez à gérer des fenêtres et des objets. Pour plus de détails sur PHP-GTK, voyez le <ulink url="&url.php.gtk;">site officiel</ulink>. PHP-GTK n'est pas inclus dans la distribution officielle de PHP. </para> <para> A partir de maintenant, cette section décrit l'installation de PHP avec un serveur web sous Unix et Windows, sous forme de module ou d'exécutables CGI. </para> <simpara> Les codes source et les exécutables compilés de certains OS (y compris Windows), sont disponibles à <ulink url="&url.php;">&url.php;</ulink>. Nous recommandons l'utilisation du <ulink url="&url.mirrors;">miroir</ulink> le plus proche pour accélérer les chargements. </simpara> </sect1> <sect1 id="install.unix"> <title>Installation sous UNIX</title> <para> Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur web avant de passer à l'installation. </para> <para> Pré-requis : <itemizedlist> <listitem> <simpara> Connaissance de base d'UNIX (savoir faire un "make" et compiler en C, si besoin). </simpara> </listitem> <listitem> <simpara> Un compilateur ANSI C (pour les codes sources) </simpara> </listitem> <listitem> <simpara> flex (pour les codes sources) </simpara> </listitem> <listitem> <simpara> bison (pour les codes sources) </simpara> </listitem> <listitem> <simpara> Un serveur web </simpara> </listitem> <listitem> <simpara> Tous les composants nécessaires aux extensions (librairie <acronym>GD</acronym>, <acronym>PDF</acronym>, etc...) </simpara> </listitem> </itemizedlist> </para> <para> Il y a plusieurs façons d'installer PHP sur une plate-forme UNIX : soit un processus de compilation-configuration, ou bien avec des packages déjà tout prêts. Cette documentation se concentre sur la première solution. </para> <para> La première partie du processus est faite en ligne de commande, grâce aux options du script <filename>configure</filename>. Cette section présente l'utilisation des options les plus courantes, mais il y en a beaucoup d'autres à essayer. Reportez-vous à la <link linkend="install.configure">liste complète des options de configuration </link> pour une liste exhaustive. Voici les différentes méthodes d'installation de PHP : <itemizedlist> <listitem> <simpara> Comme <link linkend="install.apache">module Apache</link> </simpara> </listitem> <listitem> <simpara> Comme <link linkend="install.fhttpd">module fhttpd</link> </simpara> </listitem> <listitem> <simpara> Pour l'utiliser avec <link linkend="install.otherhttpd">AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, ou Zeus.</link> </simpara> </listitem> <listitem> <simpara> Comme <link linkend="install.commandline">exécutable CGI</link> </simpara> </listitem> </itemizedlist> </para> <sect2 id="install.unix.apache-module"> <title>Référence Module Apache</title> <para> PHP peut être compilé de nombreuses manières différentes, mais la plus populaire est le module Apache. La liste suivante est un récapitulatif de l'installation. </para> <example id="install.unix.apache-module.quick"> <title> Instructions d'installation PHP 4 (Version Module Apache) </title> <programlisting>1. gunzip apache_1.3.x.tar.gz2. tar xvf apache_1.3.x.tar3. gunzip php-x.x.x.tar.gz4. tar xvf php-x.x.x.tar5. cd apache_1.3.x6. ./configure --prefix=/www7. cd ../php-x.x.x8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars9. make10. make install11. cd ../apache_1.3.x12. ./configure --activate-module=src/modules/php4/libphp4.a13. make14. make install15. cd ../php-x.x.x16. cp php.ini-dist /usr/local/lib/php.ini17. "Editez votre fichier httpd.conf ou srm.conf et ajoutez : " AddType application/x-httpd-php .php18. "Utilisez votre procédure habituelle pour redémarrer le serveur Apache. (vous devez arrêter puis redémarrer le serveur, et pas seulement forcer le serveur à relire la configuration initiale). </programlisting> </example> </sect2> <sect2 id="install.building"> <title>Compilation</title> <simpara> Lorsque PHP est configuré, vous êtes prêts à compiler l'exécutable CGI. La commande <command>make</command> doit prendre tout en charge. Si ce n'est pas le cas et que vous restez bloqué, reportez-vous aux <link linkend="install.problems">problèmes courants</link>. </simpara> </sect2> </sect1> <sect1 id="install.linux"> <title>Installation sous Linux</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Linux. </para> <sect2 id="install.linux.packages"> <title>Utilisation des packages</title> <simpara> De nombreuses distributions Linux disposent d'un système d'installation par package, comme le fameux RPM. Ils vous permettent de faire des installations standard, mais si vous avez des configurations spécifiques (comme par exemple un serveur sécurisé, ou un pilote de base de données exotique), vous aurez probablement à compiler vous-même votre PHP et votre serveur web. Si vous n'êtes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra répondre à vos besoins. </simpara> </sect2> </sect1> <sect1 id="install.hpux"> <title>Installation sous HP-UX</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions HP-UX. </para> <example id="install.hpux.example"> <title> Instructions d'installation pour HP-UX 10 </title> <programlisting>From: paul_mckay@clearwater-it.co.uk04-Jan-2001 09:49(Ces conseils sont destinés à PHP 4.0.4 et Apache v1.3.9)Vous voulez installer PHP et Apache sur une HP-UX 10.20?1. Vous aurez besoin de gzip. Téléchargez la distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z,puis décompressez la, et utilisez swinstall pour installer.2. Vous aurez besoin de gcc. Téléchargez une distribution compilée àhttp://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz,puis décompressez la, et utilisez swinstall pour installer.3. Vous aurez besoin de GNU binutils.Téléchargez une distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz, puis décompressez la, et utilisez swinstall pour installer.4. Vous aurez besoin de bison. Téléchargez une distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, puis décompressez la, et utilisez swinstall pour installer.5. Vous aurez besoin de flex. Téléchargez une distribution source sur l'undes miroirs http://www.gnu.org. Il se trouve dans le dossier non-gnu du site FTP.Téléchargez le fichier, décompressez leur,puis utilisez tar -xvf avec. Allez dans le nouveau dossier flex ainsi créé,et exécutez la commande "./configure", puis faites un "make", puis un "make install".Si vous avez des erreurs à cette étape, c'est probablement par ce que gcc etles autres ne sont pas inscrites dans votre PATH. Ajoutez les.Maintenant, la partie délicate.6. Téléchargez les sources d'Apache et de PHP.7. Décompressez les avec gunzip puis faites "tar -xvf" avec les deux archives.Nous devons modifier quelques fichiers avant de les compiler.8. Premièrement, le fichier de configuration doit être modifié car ilsemble oublier qu'il est sur une machine HP-UX. Il y a des méthodes plusrusées, mais le plus simple et le plus efficace est d'ajouter "lt_target=hpux10.20" à la ligne 47286 du script de configuration.9. Le fichier d'Apache GuessOS doit être modifié. Sousapache_1.3.9/src/helpers, modifier la ligne 89, en remplaçant "echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0"par : "echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0"10. Il n'est pas possible d'installer PHP sous forme de shared object sousHP-UX, ce qui fait que vous devez le compiler en statique. Suivezsimplement les instructions de la section Apache.11. PHP et Apache sont maintenant compilés correctement, mais Apache ne démarre pas. Vous devez créer un nouvel utilisateur Apache, par exemple www, ou apache. Puis, modifiez les lignes 252 et 253 de conf/httpd.conf pour remplacer User nobody Group nogrouppar vos valeurs, par exemple : User www Group sysIl n'est pas possible d'éxécuter Apache avec l'utilisateur nobody sousHP-UX. A partir de ce moment là, PHP et Apache doivent fonctionner.J'espère que cela aidera quelqu'un.Paul Mckay. </programlisting> </example> </sect1> <sect1 id="install.solaris"> <title>Installation sous Solaris</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Solaris. </para> <sect2 id="install.solaris.required"> <title>Logiciels nécessaires</title> <para> L'installation Solaris oublie généralement les compilateurs C, et leurs utilitaires. Voici la liste des outils nécessaires : <itemizedlist> <listitem> <simpara> gcc (recommandé, mais d'autres compilateurs C peuvent fonctionner) </simpara> </listitem> <listitem> <simpara> make </simpara> </listitem> <listitem> <simpara> flex </simpara> </listitem> <listitem> <simpara> bison </simpara> </listitem> <listitem> <simpara> m4 </simpara> </listitem> <listitem> <simpara> autoconf </simpara> </listitem> <listitem> <simpara> automake </simpara> </listitem> <listitem> <simpara> perl </simpara> </listitem> <listitem> <simpara> gzip </simpara> </listitem> <listitem> <simpara> tar </simpara> </listitem> </itemizedlist> De plus, vous devrez aussi installer (et peut être aussi compiler) toutes les librairies nécessaires aux extensions (MySQL, ORACLE..). </para> </sect2> <sect2 id="install.solaris.packages"> <title>Utilisation des packages</title> <simpara> Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants. </simpara> </sect2> </sect1> <sect1 id="install.openbsd"> <title>Installations Unix/OpenBSD</title> <para> Cette section contient les notes spécifiques à l'installation de PHP sous <ulink url="&url.openbsd;">OpenBSD</ulink>. </para> <sect2 id="install.openbsd.ports"> <title>Utilisation des ports</title> <simpara> Ceci est la méthode recommandée d'installation de PHP sous OpenBSD, car elle prend en compte les dernières modifications et mises à jour de sécurité. Pour utiliser cette méthode, assurez vous que vous avez bien <ulink url="&url.openbsd.ports;">ports tree</ulink> récent. Choisissez alors simplement la version que vous souhaitez installer, et utilisez la commande <command>make install</command>. Ci-dessous, voici un exemple. </simpara> <example id="install.openbsd.ports.example"> <title>Exemple d'installation de PHP sous OpenBSD avec Ports</title> <programlisting>$ cd /usr/ports/www/php4$ make show VARNAME=FLAVORS (choisissez les versions que vous souhaitez sur votre liste).$ env FLAVOR="imap gettext ldap mysql gd" make install$ /usr/local/sbin/php4-enable </programlisting> </example> </sect2> <sect2 id="install.openbsd.packages"> <title>Utilisation des Packages</title> <simpara> Il existe des packages pré-compilés disponibles en téléchargement à <ulink url="&url.openbsd;">OpenBSD</ulink>. Ils s'intègrent automatiquement avec la version d'Apache installée sur votre OS. Cependant, comme il y a un grand nombre d'options (appelées <emphasis>flavors</emphasis>) disponibles, vous trouverez peut-être plus facile de le compiler à partir de l'arbre de ports. Lisez le manuel <ulink url="&url.openbsd.packages;">packages(7)</ulink> pour plus de détails sur les packages disponibles (en anglais). </simpara> </sect2> </sect1> <sect1 id="install.macosx"> <title>Installation sous Mac OS X</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Mac OS X. </para> <sect2 id="install.macosx.packages"> <title>Utilisation des packages</title> <simpara> Il existe quelques versions pré-packagée et pré-compilées de PHP pour Mac OS X. Ils permettent de réaliser rapidement des installations standard, mais si vous avez des configurations personnelles, (comme un serveur sécurisé SSL ou un pilote de base de données exotique), vous devrez compiler PHP et/ou votre serveur web vous-même. Si vous n'êtes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra répondre à vos besoins. </simpara> </sect2> <sect2 id="install.macosx.compile"> <title>Compilation pour serveur OS X</title> <simpara> Il existe deux versions légèrement différentes de Mac OS X, client et serveur. Cette installation est faite pour le OS X Serveur. </simpara> <example id="install.macosx.compile.example"> <title>Installation sous Mac OS X serveur</title> <programlisting>1. Téléchargez la dernière version de Apache et PHP2. Décompressez puis désarchivez la, puis configurez Apache comme ceci : ./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache4. Vous aurez peut être besoin d'ajouter ces lignes ci, pour optimiser lacompilation : setenv OPTIM=-O25. Puis, allez dans le dossier source de PHP 4, et configurez le : ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/share/man \ --with-xml \ --with-apache=/src/apache_1.3.12 Si vous avez d'autres composants (MySQL, GD, etc.), n'oubliez pas de les ajouter à ce moment la. Pour l'option --with-apache, ajoutez le chemin jusqu'au dossier source d'Apache, par exemple "/src/apache_1.3.12".6. Exécutez un "make"7. Exécutez un "make install" Cette commande ajoutera un dossier dans le dossier Apache : src/modules/php4.8. Maintenant, reconfigurez Apache pour compiler PHP 4. ./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache \ --activate-module=src/modules/php4/libphp4.a Vous pouvez rencontrer un message qui vous dira que libmodphp4.a est obsolète. Si c'est le cas, allez dans le dossier src/modules/php4 de votre dossier Apache et exécutez la commande suivante : ranlib libmodphp4.a Puis, revenez à la racine de la distribution Apache, et recommencez la configuration. Cela aura mis à jour la table de liens.9. Exécutez un "make"10. Exécutez un "make install"11. Copiez et renommez le fichier php.ini-dist de votre distribution PHP 4 dans votre dossier "bin": cp php.ini-dist /usr/local/bin/php.ini ou (si vous n'avez pas de dossier local) cp php.ini-dist /usr/bin/php.ini </programlisting> </example> <simpara> D'autres exemples pour <ulink url="&url.stepwise.macosx-client;">Mac OS X client</ulink> et <ulink url="&url.stepwise.macosx-client;">Mac OS X server</ulink> sont disponibles à <ulink url="&url.stepwise;">Stepwise</ulink>. </simpara> </sect2> <sect2 id="install.macosx.client"> <title>Compilation pour MacOS X client</title> <simpara> Ces conseils sont gracieusement fourni par <ulink url="&url.macosx;">Marc Liyanage</ulink>. </simpara> <simpara> Le module PHP pour Apache est inclus dans Mac OS X. Cette version inclus le support des bases de données MySQL et PostgreSQL. </simpara> <simpara> NOTE: Soyez prudent avec cette manipulation, vous risquez de mettre votre serveur Apache à terre! </simpara> <para> Instructions : <itemizedlist> <listitem> <simpara> 1. Ouvrez un terminal </simpara> </listitem> <listitem> <simpara> 2. Tapez "wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz", attendez la fin du téléchargement. </simpara> </listitem> <listitem> <simpara> 3. Tapez "gunzip libphp4.so.gz" </simpara> </listitem> <listitem> <simpara> 4. Tapez "sudo apxs -i -a -n php4 libphp4.so" </simpara> </listitem> </itemizedlist> Maintenant, tapez "<literal>sudo open -a TextEdit /etc/httpd/httpd.conf</literal>" TextEdit ouvrira le fichier de configuration. Recherchez ces deux lignes, vers la fin du fichier (Utilisez la commande Find) <programlisting> * #AddType application/x-httpd-php .php * #AddType application/x-httpd-php-source .phps </programlisting> Supprimez les deux marques de commentaires (<literal>#</literal>), puis sauvez le fichier, et quittez TextEdit. </para> <para> Finalement, tapez "<literal>sudo apachectl graceful</literal>" pour redémarrer le serveur Apache. </para> <para> PHP devrait fonctionner. Vous pouvez le tester en placant un script dans le dossier "Sites". Par exemple, le fichier "test.php", qui contient la simple ligne : "<literal><?php phpinfo() ?></literal>". </para> <para> Ouvrez l'URL <literal>127.0.0.1/~your_username/test.php</literal> dans votre navigateur. Vous obtiendrez le tableau de bord de PHP. </para> </sect2> </sect1> <sect1 id="install.configure"> <title>Liste complète des options de configuration</title> <para> Cette section rassemble la liste complète des options de configuration supportées par PHP 3 et PHP 4, à utiliser avec le fichier <filename>configure</filename>, lors de la configuration sous Unix. Certaines options sont disponibles sous PHP 3, d'autres sous PHP 4 et certains sous PHP 3 et PHP 4, comme inidiqué. Il y a de nombreuses options dont le nom a changé entre PHP 3 et PHP 4. Ces options ont des liens entre elles : si vous vous souvenez d'un nom d'option en PHP 3, regardez si le nom a changé. </para> <itemizedlist> <listitem> <para> <link linkend="install.configure.databases">Base de données</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.ecommerce">E-commerce</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.graphics">Images</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.misc">Divers</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.networking">Réseau</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.php">Comportement PHP</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.servers">Serveur</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.text">Texte et langue</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.xml">XML</link> </para> </listitem> </itemizedlist> <sect2 id="install.configure.databases"> <title>Base de données</title> <variablelist> <varlistentry id="install.configure.with-adabas"> <term> <parameter>--with-adabas[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Adabas D. DIR est le dossier d'installation de Adabas (par défaut, <literal>/usr/local</literal>). </para> <para> <ulink url="&url.adabas;">Adabas home page</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dba"> <term> <parameter>--enable-dba=shared</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile DBA comme module partagé </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dbx"> <term> <parameter>--enable-dbx</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support DBX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dbase"> <term> <parameter>--enable-dbase</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-dbase">--with-dbase</link> instead. </para> <para> PHP 4: Active la librairie dbase livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbase"> <term> <parameter>--with-dbase</parameter> </term> <listitem> <para> PHP 3: Active la librairie dbase livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-dbase">--enable-dbase</link> instead. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-db2"> <term> <parameter>--with-db2[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support Berkeley DB2. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-db3"> <term> <parameter>--with-db3[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Berkeley DB3. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbm"> <term> <parameter>--with-dbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support DBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbmaker"> <term> <parameter>--with-dbmaker[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3. </para> <para> PHP 4: Inclut le support DBMaker. DIR est le dossier d'installation DBMaker (par défaut, c'est le dossier de la dernière installation DBMaker, comme <literal>/home/dbmaker/3.6</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-empress"> <term> <parameter>--with-empress[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Empress. DIR est le dossier d'installation Empress (par défaut, <literal>$EMPRESSPATH</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-filepro"> <term> <parameter>--enable-filepro</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-filepro">--with-filepro</link> instead. </para> <para> PHP 4: Active la librairie filePro (lecture seule) livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fbsql"> <term> <parameter>--with-fbsql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible. </para> <para> PHP 4: Inclut le support de FrontBase SQL. DIR est le chemin jusqu'à l'installation de FrontBase base. Par défaut, c'est le dossier standard d'installation Frontbase. L'installation dépend de votre OS : Solaris: <literal>/opt/FrontBase</literal>, WinNT: <literal>\usr\FrontBase</literal>, Linux: <literal>/usr/frontbase</literal>, Mac OSX: <literal>/Library/FrontBase</literal>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-filepro"> <term> <parameter>--with-filepro</parameter> </term> <listitem> <para> PHP 3: Inclut le support IBM DB2. Aucune librairie supplémentaire n'est nécessaire. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-filepro">--enable-filepro</link>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gdbm"> <term> <parameter>--with-gdbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support GDBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-hyperwave"> <term> <parameter>--with-hyperwave</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support Hyperwave. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ibm-db2"> <term> <parameter>--with-ibm-db2[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support IBM DB2. DIR est le dossier d'installation de DB2 (par défaut, <filename>/home/db2inst1/sqllib</filename>). </para> <para> <ulink url="&url.ibmdb2;">IBM DB2</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-informix"> <term> <parameter>--with-informix[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Informix. DIR est le dossier d'installation d'Informix (par défaut, aucune valeur). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ingres"> <term> <parameter>--with-ingres[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Ingres II. DIR est le dossier d'installation d'Ingres (par défaut, <literal>/II/ingres</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-interbase"> <term> <parameter>--with-interbase[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support InterBase. DIR est le dossier d'installation d'InterBase (par défaut, <filename>/usr/interbase</filename>). </para> <simpara> <link linkend="ref.ibase">Fonctions Interbase</link> </simpara> <simpara> <ulink url="&url.ibase;">Interbase</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-ldap"> <term> <parameter>--with-ldap[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support LDAP. DIR est le dossier d'installation de LDAP (par défaut <filename>/usr</filename> et <filename>/usr/local</filename>). </para> <para> PHP 4: Inclut le support LDAP. DIR est le dossier d'installation de LDAP. (par défaut; <filename class="directory">/usr/local/ldap</filename>). </para> <simpara> Plus de détails sur LDAP sont disponibles à <ulink url="&url.rfc;rfc1777.html">RFC1777</ulink> et <ulink url="&url.rfc;rfc1778.html">RFC1778</ulink>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-msql"> <term> <parameter>--with-msql[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support mSQL. DIR est le dossier d'installation de mSQL (par défaut <filename>/usr</filename> et <filename>/usr/local/Hughes</filename>, pour la version 2.0). <command>configure</command> détecte automatiquement la version de mSQL qui fonctionne. PHP supporte les versions 1.0 et 2.0, mais si vous compilez PHP avec mSQL 1.0, vous ne pourrez accéder qu'à des bases mSQL 1.0, et vice-versa. </para> <simpara> Voir aussi <link linkend="ini.sect.msql">Configuration mSQL</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.msql;">mSQL</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-mysql"> <term> <parameter>--with-mysql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support MySQL. DIR est le dossier d'installation de MySQL (par défaut, il cherche dans différents dossiers où MySQL a coutume d'être installé). </para> <para> PHP 4: Inclut le support MySQL. DIR est le dossier de l'installation MySQL. S'il est omis, la librairie MySQL livrée en standard avec PHP sera utilisée par défaut. </para> <para> Voir aussi <link linkend="ini.sect.mysql">Configuration MySQL</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </para> <para> <ulink url="&url.mysql;">MySQL</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ndbm"> <term> <parameter>--with-ndbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support NDBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ovrimos"> <term> <parameter>--with-ovrimos</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Ovrimos. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-oci8"> <term> <parameter>--with-oci8[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Oracle-oci8. DIR est le dossier d'installation de Oracle-oci8 (par défaut, <filename>ORACLE_HOME</filename>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-oracle"> <term> <parameter>--with-oracle[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support Oracle database. DIR est le dossier d'installation de Oracle (par défaut, <filename>$ORACLE_HOME</filename>). </para> <para> PHP 4: Inclut le support Oracle-oci7. DIR est le dossier d'installation de Oracle-oci7 (par défaut, <filename>ORACLE_HOME</filename>). </para> <simpara> Inclut le support Oracle. Ce support a été testé et permet de travailler avec les versions d'Oracle de 7.0 à 7.3. Le paramètre est le dossier <envar>ORACLE_HOME</envar>. Vous n'avez pas à spécifier ce paramètre si votre environnement Oracle a été configuré. </simpara> <simpara> <ulink url="&url.oracle;">Oracle</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-pgsql"> <term> <parameter>--with-pgsql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support PostgresSQL. DIR est le dossier d'installation de PostgresSQL (par défaut, <filename>/usr/local/pgsql</filename>). </para> <para> PHP 4: Inclut le support PostgreSQL. DIR est le dossier d'installation de PostgreSQL (par défaut, <filename>/usr/local/pgsql</filename>). Pour compiler en "dl", utilisez la valeur "shared", ou "shared,DIR", pour compiler en "dl", mais spécifier DIR malgré tout. </para> <simpara> Voir aussi <link linkend="ini.sect.pgsql">Postgres</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.pgsql;">PostgreSQL</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-solid"> <term> <parameter>--with-solid[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Solid. DIR est le dossier d'installation de Solid (par défaut, <literal>/usr/local/solid</literal>). </para> <simpara> <ulink url="&url.solid;">Solid</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-sybase-ct"> <term> <parameter>--with-sybase-ct[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Sybase-CT. DIR est le dossier d'installation de Sybase (par défaut, <literal>/home/sybase</literal>). </para> <simpara> Voir aussi <link linkend="ini.sect.sybct">Sybase-CT</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-sybase"> <term> <parameter>--with-sybase[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Sybase-DB. DIR est le dossier d'installation de Sybase (par défaut, <filename>/home/sybase</filename>). </para> <simpara> Voir aussi <link linkend="ini.sect.sybase">Sybase</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.sybase;">Sybase</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-openlink"> <term> <parameter>--with-openlink[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support OpenLink ODBC. DIR est le dossier d'installation d'OpenLink (par défaut <literal>/usr/local/openlink</literal>). A partir de PHP 4.0.6, cette option n'est plus valable. Utilisez plutôt <link linkend="install.configure.with-iodbc"> --with-iodbc</link> si vous voulez utiliser l'ODBC de OpenLink Software. </para> <simpara> <ulink url="&url.openlink;">OpenLink Software</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-iodbc"> <term> <parameter>--with-iodbc[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support iODBC. DIR est le dossier d'installation d'iODBC (par défaut, <filename>/usr/local</filename>). </para> <para> Cette fonctionnalité a d'abord été développée avec le gestionnaire iODBC Driver Manager, un pilote ODBC librement distribuable, qui fonctionne sous divers UNIX. </para> <simpara> <ulink url="&url.freeodbc;">FreeODBC</ulink> ou <ulink url="&url.iodbc;">iODBC</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-custom-odbc"> <term> <parameter>--with-custom-odbc[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support ODBC, avec une librairie tierce. Le paramètre DIR est le nom du dossier d'installation de cette librairie. Par défaut, il vaut <filename class="directory">/usr/local</filename>. </para> <simpara> Cette option implique qus vous avez défini CUSTOM_ODBC_LIBS lorsque vous éxécutez le script de configuration. Vous devez aussi avoir une en-tête <filename>odbc.h</filename> valide dans vos dossiers d'Inclution. Si vous n'en avez pas, créez le, et ajoutez-y vos en-têtes spécifiques. Votre en-tête peut aussi réclamer d'autres définitions, surtout si elle est multi-plate-forme. Définissez les dans CFLAGS. </simpara> <simpara> Par exemple, vous pouvez utilisez Sybase SQL Anywhere sous QNX comme ceci : <literal> CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50 </literal> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.disable-unified-odbc"> <term> <parameter>--disable-unified-odbc</parameter> </term> <listitem> <para> PHP 3: Inactive le support unified ODBC. Uniquement valable si iODBC, Adabas, Solid, Velocis ou une interface spéciale ODBC a été activée. </para> <para> PHP 4: Option non disponible en PHP 4 </para> <simpara> Le module Unified ODBC est commun à toutes les bases de données ODBC, comme par exemple Solid, IBM DB2 et Adabas D. Il fonctionne aussi avec les librairies ODBC normales. Des tests ont été menés avec iODBC, Solid, Adabas D, IBM DB2 et Sybase SQL Anywhere. Il requiert une (et une seule) de ces extensions, ou l'extension Velocis, ou une librairie ODBC spéciale. Cette option n'est possible qu'avec l'utilisation de l'une des options suivantes : <link linkend="install.configure.with-iodbc">--with-iodbc</link>, <link linkend="install.configure.with-solid">--with-solid</link>, <link linkend="install.configure.with-ibm-db2">--with-ibm-db2</link>, <link linkend="install.configure.with-adabas">--with-adabas</link>, <link linkend="install.configure.with-velocis">--with-velocis</link>, ou <link linkend="install.configure.with-custom-odbc">--with-custom-odbc</link>. </simpara> <simpara> Voir aussi <link linkend="ini.sect.uodbc">Unified ODBC</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-unixODBC"> <term> <parameter>--with-unixODBC[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support unixODBC. DIR est le dossier d'installation d'unixODBC (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-velocis"> <term> <parameter>--with-velocis[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclus le support Velocis. DIR est le dossier d'installation de Velocis (par défaut, <literal>/usr/local/velocis</literal>). </para> <simpara> <ulink url="&url.velocis;">Velocis</ulink> </simpara> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.ecommerce"> <title>E-commerce</title> <variablelist> <varlistentry id="install.configure.with-ccvs"> <term> <parameter>--with-ccvs[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Ajoute le support CCVS. DIR est le dossier d'installation de CCVS. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cybermut"> <term> <parameter>--with-cybermut[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support de Cybermut pour PHP 4. DIR est le dossier du SDK Cybermut, qui contient les deux fichiers <filename>libcm-mac.a</filename> et <filename>cm-mac.h</filename>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mck"> <term> <parameter>--with-mck[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support Cybercash MCK. DIR est le dossier d'installation de cybercash mck (par défaut, <filename>/usr/src/mck-3.2.0.3-linux</filename>). Plus d'aide dans le dossier <filename>extra/cyberlib</filename>. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.with-cybercash">--with-cybercash</link> instead. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cybercash"> <term> <parameter>--with-cybercash[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-mck">--with-mck</link> instead. </para> <para> PHP 4: Inclut le support CyberCash. DIR est le dossier d'installation de CyberCash MCK. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pfpro"> <term> <parameter>--with-pfpro[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Verisign Payflow Pro. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.graphics"> <title>Images</title> <variablelist> <varlistentry id="install.configure.enable-freetype-4bit-antialias-hack"> <term> <parameter>--enable-freetype-4bit-antialias-hack</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support de FreeType2 (expérimental). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gd"> <term> <parameter>--with-gd[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support GD. DIR est le dossier d'installation de GD. </para> <para> PHP 4: Inclut le support GD. DIR est le dossier d'installation de GD. Pour compiler en "dl", utilisez la valeur "shared", ou "shared,DIR", pour compiler en "dl", mais spécifier DIR malgré tout. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-gd"> <term> <parameter>--without-gd</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inactive le support GD . </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imagick"> <term> <parameter>--with-imagick[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support ImageMagick. DIR est le dossier d'installation de ImageMagick. S'il est omis, PHP essaiera de le trouver de lui-même (expérimental). </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-jpeg-dir"> <term> <parameter>--with-jpeg-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: dossier JPEG pour pdflib 2.0 </para> <para> PHP 4: dossier JPEG pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-png-dir"> <term> <parameter>--with-png-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: dossier PNG pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-t1lib"> <term> <parameter>--enable-t1lib</parameter> </term> <listitem> <para> PHP 3: Active le support t1lib. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.with-t1lib">--with-t1lib</link> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-t1lib"> <term> <parameter>--with-t1lib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-t1lib">--enable-t1lib</link>. </para> <para> PHP 4: Inclut le support T1lib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tiff-dir"> <term> <parameter>--with-tiff-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: dossier TIFF pour pdflib 2.0 </para> <para> PHP 4: dossier TIFF pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ttf"> <term> <parameter>--with-ttf[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support FreeType. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-xpm-dir"> <term> <parameter>--with-xpm-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: dossier XPM pour GD-1.8+ </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.misc"> <title>Divers</title> <para> Ces options seront classées ultérieurement, lorsqu'une catégorie adéquate apparaîtra. </para> <variablelist> <varlistentry id="install.configure.disable-bcmath"> <term> <parameter>--disable-bcmath</parameter> </term> <listitem> <para> PHP 3: Inactive la librairie BCmath. </para> <para> PHP 4: Option non disponible en PHP 4. La librairie BCmath n'est pas compilée par défaut. Utilisez <link linkend="install.configure.enable-bcmath">--enable-bcmath</link> pour l'inclure. </para> </listitem> </varlistentry> <varlistentry id="install.configure.gmp"> <term> <parameter>--with-gmp</parameter> </term> <listitem> <para> PHP 3, PHP 4 : Inclut le support GMP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-display-source"> <term> <parameter>--disable-display-source</parameter> </term> <listitem> <para> PHP 3: Compile sans afficher le support des sources </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-libtool-lock"> <term> <parameter>--disable-libtool-lock</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Empêche le verrouillage (risque d'empêcher certaines compilations paralléles). </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-pear"> <term> <parameter>--disable-pear</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: N'installe pas PEAR </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-pic"> <term> <parameter>--disable-pic</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive PIC pour les shared objects </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-posix"> <term> <parameter>--disable-posix</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; Utilisez plutôt <link linkend="install.configure.without-posix">--without-posix</link> </para> <para> PHP 4: Inactive les fonctions POSIX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-rpath"> <term> <parameter>--disable-rpath</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive le passage de chemins supplémentaires pour la recherche de librairie lors de l'exécution. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-session"> <term> <parameter>--disable-session</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive le support session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-bcmath"> <term> <parameter>--enable-bcmath</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; bcmath est compilée par défaut. Utilisez plutôt <link linkend="install.configure.disable-bcmath">--disable-bcmath</link>, pour l'inactiver. </para> <para> PHP 4: Active le support de l'extension bc maths. Voir aussi <link linkend="ref.bc">les fonctions BCMath</link>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-c9x-inline"> <term> <parameter>--enable-c9x-inline</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active les sémantiques C9x-inline </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-calendar"> <term> <parameter>--enable-calendar</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support des conversions calendaires </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-debug"> <term> <parameter>--enable-debug</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile sans les symboles de débuggages </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-debugger"> <term> <parameter>--enable-debugger</parameter> </term> <listitem> <para> PHP 3: Compile avec les fonctions de débuggage à distance </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-discard-path"> <term> <parameter>--enable-discard-path</parameter> </term> <listitem> <para> PHP 3, PHP 4: Si cette option est activée, le CGI PHP peut être placé hors de l'arborescence web, pour que personne ne puisse l'atteindre, même en contournant les .htaccess. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dmalloc"> <term> <parameter>--enable-dmalloc</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active dmalloc </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-exif"> <term> <parameter>--enable-exif</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support exif. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-experimental-zts"> <term> <parameter>--enable-experimental-zts</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Cela risque fortement de ne plus compiler du tout! </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-fast-install"> <term> <parameter>--enable-fast-install[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Optimise pour les installations rapides for fast installation (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-force-cgi-redirect"> <term> <parameter>--enable-force-cgi-redirect</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active la vérification interne des redirections serveurs. Il est recommandé d'utiliser cette option si vous avez compilé PHP en CGI. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-inline-optimization"> <term> <parameter>--enable-inline-optimization</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Si vous avez beaucoup de mémoire disponible et que vous utilisez gcc, essayez donc ça. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-libgcc"> <term> <parameter>--enable-libgcc</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active explicitement les liens avec libgcc </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-maintainer-mode"> <term> <parameter>--enable-maintainer-mode</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active des règles de make et de dépendances qui sont parfois absconses et ne servent pas aux utilisateurs habituels (Bref, ne l'utilisez pas). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-memory-limit"> <term> <parameter>--enable-memory-limit</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile avec le support de la limitation de mémoire (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-safe-mode"> <term> <parameter>--enable-safe-mode</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le SAFE_MODE (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-satellite"> <term> <parameter>--enable-satellite</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support CORBA via Satellite (Requiert ORBit) </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shared"> <term> <parameter>--enable-shared[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile les librairies partagées (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sigchild"> <term> <parameter>--enable-sigchild</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le gestionnaire SIGCHLD propre à PHP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-static"> <term> <parameter>--enable-static[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile les librairies en statique (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sysvsem"> <term> <parameter>--enable-sysvsem</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support des sémaphores System V. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sysvshm"> <term> <parameter>--enable-sysvshm</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support de partage de mémoire System V. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-trans-sid"> <term> <parameter>--enable-trans-sid</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active la propagation transparente des identifiants de session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cdb"> <term> <parameter>--with-cdb[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support CDB. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-config-file-path"> <term> <parameter>--with-config-file-path=PATH</parameter> </term> <listitem> <para> PHP 3: Indique le chemin dans lequel aller lire le fichier <filename>php3.ini</filename>. Par défaut, c'est <filename>/usr/local/lib</filename>. </para> <para> PHP 4: Indique le chemin dans lequel allet lire le fichier <filename>php.ini</filename>. Par défaut, c'est <filename>/usr/local/lib</filename>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cpdflib"> <term> <parameter>--with-cpdflib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support ClibPDF. DIR est le dossier d'installation de ClibPDF (par défaut, <literal>/usr/local</literal>). </para> <para> PHP 4: Inclut le support ClibPDF.(requires cpdflib >= 2). DIR est le dossier d'installation de cpdfllib (par défaut, <literal>/usr</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-esoob"> <term> <parameter>--with-esoob[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Easysoft OOB. DIR est le dossier d'installation de OOB (par défaut, <literal>/usr/local/easysoft/oob/client</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-exec-dir"> <term> <parameter>--with-exec-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: N'autorise que les exécutables placés dans le dossier DIR, lorsque le SAFE MODE est activé (par défaut, c'est <literal>/usr/local/php/bin</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fdftk"> <term> <parameter>--with-fdftk[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support fdftk. DIR est le dossier d'installation de fdftk (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gnu-ld"> <term> <parameter>--with-gnu-ld</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Suppose que le compilateur C utilise GNU ld (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-icap"> <term> <parameter>--with-icap[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support ICAP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imap"> <term> <parameter>--with-imap[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support IMAP. DIR est le dossier d'include d'IMAP (et aussi c-client.a). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imsp"> <term> <parameter>--with-imsp[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support IMSP.(DIR est le dossier d'installation IMSP, là où il y a les dossiers d'include et libimsp.a). </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-java"> <term> <parameter>--with-java[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Java. DIR est le dossier d'installation du JDK). Cette extension peut uniquement être compilée comme "dl". </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-kerberos"> <term> <parameter>--with-kerberos[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Kerberos dans IMAP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mcal"> <term> <parameter>--with-mcal[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support MCAL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mcrypt"> <term> <parameter>--with-mcrypt[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mcrypt. DIR est le dossier d'installation de mcrypt. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mhash"> <term> <parameter>--with-mhash[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mhash. DIR est le dossier d'installation de mhash. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mm"> <term> <parameter>--with-mm[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support mm pour le stockage de session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mod_charset"> <term> <parameter>--with-mod_charset</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le transfert des tables depuis le module Apache mod_charset (Rus Apache). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pdflib"> <term> <parameter>--with-pdflib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support pdflib (testé avec 0.6 et 2.0). DIR est le dossier d'installation de pdflib (par défaut, c'est <filename>/usr/local</filename>). </para> <para> PHP 4: Inclut le support pdflib 3.x/4.x. DIR est le dossier d'installation de pdflib. Par défaut, c'est <filename>/usr/local</filename>. </para> <para> PHP 4 et PDFlib 3.x/4.x requiert les librairies JPEG et TIFF. Lors de la compilation du support PDFlib utilise les options <link linkend="install.configure.with-jpeg-dir">--with-jpeg-dir</link> et <link linkend="install.configure.with-tiff-dir">--with-tiff-dir</link>. Vous pouvez aussi utiliser <link linkend="install.configure.with-png-dir">--with-png-dir</link> et <link linkend="install.configure.with-zlib-dir">--with-zlib-dir</link>, pour compiler le support PNG et Zlib avec PDFlib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shared-pdflib"> <term> <parameter>--enable-shared-pdflib</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut pdflib comme shared librairy. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-readline"> <term> <parameter>--with-readline[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support readline. DIR est le dossier d'installation de readline. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-regex"> <term> <parameter>--with-regex=TYPE</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Type de librairie d'expressions régulières : système, apache, php </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-servlet"> <term> <parameter>--with-servlet[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support servlet. DIR est le dossier d'installation de JSDK. Ce SAPI demande que l'extension Java soit compilée comme shared dl. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ming"> <term> <parameter>--with-ming</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Flash 4 avec Ming. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-swf"> <term> <parameter>--with-swf[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support SWF. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-system-regex"> <term> <parameter>--with-system-regex</parameter> </term> <listitem> <para> PHP 3: Inactive la librairie d'expressions régulières livrée avec PHP. </para> <para> PHP 4: (Obsolète) Utilise la librairie d'expressions régulières système. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tsrm-pth"> <term> <parameter>--with-tsrm-pth[=pth-config]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Utilise GNU Pth. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tsrm-pthreads"> <term> <parameter>--with-tsrm-pthreads</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Utilise les threads POSIX (par défaut). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-x"> <term> <parameter>--with-x</parameter> </term> <listitem> <para> PHP 3: Utilise X Window System </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-bzip2-dir"> <term> <parameter>--with-bz2[=DIR]</parameter> </term> <listitem> <para> PHP 4: Ajoute le support bzip2. DIR est le dossier d'installation de bzip2. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zlib-dir"> <term> <parameter>--with-zlib-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Dossier zlib pour pdflib 2.0 ou active le support zlib. </para> <para> PHP 4: Dossier zlib pour pdflib 3.x/4.x ou active le support zlib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zlib"> <term> <parameter>--with-zlib[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support zlib. (requiert zlib >= 1.0.9). DIR est le dossier d'installation de zlib (par défaut, <literal>/usr</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zziplib"> <term> <parameter>--with-zziplib[=DIR]</parameter> </term> <listitem> <para> PHP 4: Inclut le support ZZIPlib (requiert ZZIPlib >= 0.10.6). DIR est le dossier d'installation de ZZIPliby (par défaut, <literal>/usr/local</literal>). </para> <para> La dernière version de ZZIPlib est disponible à <ulink url="&url.zziplib;">&url.zziplib;</ulink>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-pcre-regex"> <term> <parameter>--without-pcre-regex</parameter> </term> <listitem> <para> PHP 3: Inactive le support des expressions régulières Perl. </para> <para> PHP 4: Inactive le support des expressions régulières Perl. Utilisez --with-pcre-regex=DIR pour spécifier le dossier d'installation de PCRE, si vous n'utilisez pas la librairie livrée en standard. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-posix"> <term> <parameter>--without-posix</parameter> </term> <listitem> <para> PHP 3: N'Inclut pas lrs fonctions POSIX. </para> <para> PHP 4: Option non disponible en PHP 4; utilisez plutôt <link linkend="install.configure.disable-posix">--disable-posix</link>. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.networking"> <title>Réseau</title> <variablelist> <varlistentry id="install.configure.with-curl"> <term> <parameter>--with-curl[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support CURL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-ftp"> <term> <parameter>--enable-ftp</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-ftp">--with-ftp</link> </para> <para> PHP 4: Active le support FTP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ftp"> <term> <parameter>--with-ftp</parameter> </term> <listitem> <para> PHP 3: Inclut le support FTP. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-ftp">--enable-ftp</link> instead </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-url-fopen-wrapper"> <term> <parameter>--disable-url-fopen-wrapper</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inactive le support des URL avec <function>fopen</function>. </para> <warning> <para> Cette option n'est disponible que jusqu'à la version 4.0.3. Les versions plus récentes fournissent un paramètre dans le fichier <filename>php.ini</filename> appelé <parameter>allow_url_fopen</parameter>, afin de vous éviter de faire ce choix au moment de la compilation. </para> </warning> </listitem> </varlistentry> <varlistentry id="install.configure.with-mod-dav"> <term> <parameter>--with-mod-dav=DIR</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support DAV, grâce au module Apache mod_dav. DIR est le dossier d'installation de mod_dav (valable uniquement pour les serveurs Apache). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-openssl"> <term> <parameter>--with-openssl[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support OpenSSL avec SNMP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-snmp"> <term> <parameter>--with-snmp[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support SNMP. DIR est le dossier d'installation de SNMP (par défaut, il scanne un nombre de dossiers habituels de l'installation SNMP). Utilisez la valeur de "shared" pour compiler sous forme de "dl", ou "shared,DIR" pour compiler sous forme de "dl" tout en spécifiant un dossier. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-ucd-snmp-hack"> <term> <parameter>--enable-ucd-snmp-hack</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le hack UCD SNMP </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sockets"> <term> <parameter>--enable-sockets</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support des sockets. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-yaz"> <term> <parameter>--with-yaz[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support YAZ.(ANSI/NISO Z39.50). DIR est le dossier d'installation de YAZ (dossier bin). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-yp"> <term> <parameter>--enable-yp</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-yp">--with-yp</link> </para> <para> PHP 4: Active le support YellowPages (YP). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-yp"> <term> <parameter>--with-yp</parameter> </term> <listitem> <para> PHP 3: Active le support YellowPages (YP). </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-yp">--enable-yp</link> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mnogosearch"> <term> <parameter>--with-mnogosearch</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mnoGoSearch. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.php"> <title>Comportement PHP</title> <variablelist> <varlistentry id="install.configure.enable-magic-quotes"> <term> <parameter>--enable-magic-quotes</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active les magic quotes par défaut. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-short-tags"> <term> <parameter>--disable-short-tags</parameter> </term> <listitem> <para> PHP 3, PHP 4: Désactive la forme courte des balises PHP (<? ?>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-track-vars"> <term> <parameter>--enable-track-vars</parameter> </term> <listitem> <para> PHP 3: Active le suivi des variables GET/POST/Cookie par défaut. </para> <para> PHP 4: Option non disponible en PHP 4; à partir de PHP 4.0.2, cette option est toujours activée. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.servers"> <title>Serveur</title> <variablelist> <varlistentry id="install.configure.with-aolserver-src"> <term> <parameter>--with-aolserver-src=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'à la distribution source de AOLserver </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-aolserver"> <term> <parameter>--with-aolserver=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'à la distribution installée de AOLserver. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-apache"> <term> <parameter>--with-apache[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP en module Apache. DIR est le dossier d'installation supérieur d'Apache (par défaut, <literal>/usr/local/etc/httpd</literal>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-apxs"> <term> <parameter>--with-apxs[=FILE]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP comme module partagé d'Apache module. FILE est le chemin optionnel jusqu'à Apache apxs tool; par défaut, c'est apxs). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-versioning"> <term> <parameter>--enable-versioning</parameter> </term> <listitem> <para> PHP 3: Tire profit du système de versionnage et de scoping fourni par Solaris 2.x et Linux </para> <para> PHP 4: Exporte uniquement les symboles nécessaires. Voyez l'installation pour plus de détails. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-caudium"> <term> <parameter>--with-caudium[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP sous forme de module Pike pour être utilisé avec le serveur web Caudium. DIR est le dossier d'installation de Caudium (par défaut, <literal>$prefix/caudium/server</literal>. Le préfixe est paramétré par l'option --prefix (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fhttpd"> <term> <parameter>--with-fhttpd[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP comme module fhttpd. DIR est le dossier d'installation de fhttpd (par défaut, <literal>/usr/local/src/fhttpd</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-nsapi"> <term> <parameter>--with-nsapi=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'au serveur Netscape </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-phttpd"> <term> <parameter>--with-phttpd=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pi3web"> <term> <parameter>--with-pi3web=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module pour Pi3Web. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-roxen"> <term> <parameter>--with-roxen=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module pour Pi3Web Pike. DIR est le dossier d'installation de Roxen (par défaut, <literal>/usr/local/roxen/server</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-roxen-zts"> <term> <parameter>--enable-roxen-zts</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile le module Roxen en utilisant Zend Thread Safety. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-thttpd"> <term> <parameter>--with-thttpd=SRCDIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zeus"> <term> <parameter>--with-zeus=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module ISAPI pour Zeus. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.text"> <title>Texte et langue</title> <variablelist> <varlistentry id="install.configure.with-aspell"> <term> <parameter>--with-aspell[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support ASPELL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gettext"> <term> <parameter>--with-gettext[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support GNU gettext. DIR est le dossier d'installation de gettext (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-iconv"> <term> <parameter>--with-iconv[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support iconv. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pspell"> <term> <parameter>--with-pspell[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support PSPELL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-recode"> <term> <parameter>--with-recode[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support GNU recode. </para> <para> PHP 4: Inclut le support recode. DIR est le dossier d'installation de recode. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shmop"> <term> <parameter>--enable-shmop</parameter> </term> <listitem> <para> PHP 3, PHP 4 : Inclut le support shmop. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.xml"> <title>XML</title> <variablelist> <varlistentry id="install.configure.with-dom"> <term> <parameter>--with-dom[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support DOM. (requiert libxml >= 2.0). DIR est le dossier d'installation de libxml (par défaut, <filename>/usr</filename>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sablot-errors-descriptive"> <term> <parameter>--enable-sablot-errors-descriptive</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active les erreurs descriptives. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-sablot"> <term> <parameter>--with-sablot[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Sablotron. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-wddx"> <term> <parameter>--enable-wddx</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support WDDX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-xml"> <term> <parameter>--disable-xml</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; Les fonctions XML ne sont pas construites par défaut. Utilisez plutôt <link linkend="install.configure.with-xml">--with-xml</link> pour les activer. </para> <para> PHP 4: Inactive le support XML, qui utilise la librairie expat, livrée avec PHP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-xml"> <term> <parameter>--with-xml</parameter> </term> <listitem> <para> PHP 3: Active le support XML. </para> <para> PHP 4: Option non disponible en PHP 4; Le support XML est activé par défaut. Utilisez plutôt <link linkend="install.configure.disable-xml">--disable-xml</link> pour l'inactiver. </para> </listitem> </varlistentry> </variablelist> </sect2> </sect1> <sect1 id="install.windows"> <title>Installation sous Windows</title> <para> Cette section s'applique aux systèmes Windows 95/98/Me et Windows NT/2000/XP. (La configuration n'est actuellement pas confirmée sous XP). Ne vous attendez pas à ce que PHP fonctionne sur les plateformes 16 bits, comme Windows 3.1. Parfois, on décrira les plateformes supportées sous le nom de Win32. </para> <para> Il y a deux méthodes principales pour installer PHP sous Windows : soit <link linkend="install.windows.manual">manuellement</link>, soit avec <link linkend="install.windows.installer">InstallShield</link>. </para> <para> Si vous avez Microsoft Visual Studio, vous pouvez aussi <link linkend="install.windows.build">compiler</link> PHP à partir des sources. </para> <para> Une fois que PHP est installé sur votre Windows, vous pouvez aussi ajouter diverses <link linkend="install.windows.extensions">extensions</link>. </para> <sect2 id="install.windows.installer"> <title>InstallShield sous Windows</title> <para> L'installeur Windows de PHP disponible depuis les pages de <ulink url="&url.php;">téléchargement</ulink>, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami. Notez bien que bien que InstallShield soit une méthode simple pour installer PHP, il est limité dans son fonctionnement, puisque l'installation automatique des extensions n'est pas prise en compte. </para> <simpara> Installez votre serveur <acronym>HTTP</acronym> favori sur votre système et assurez-vous qu'il fonctionne. </simpara> <simpara> Exécutez l'installeur et suivez les instructions fournies par le wizard. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement. </simpara> <simpara> Le wizard d'installation rassemble suffisamment d'informations pour configurer <filename>php.ini</filename> et le serveur web qui utilisera PHP. Pour IIS, mais aussi PWS sous NT Workstation, une liste de l'arboresence web est affichée, et vous pouvez sélectionner les dossiers qui utiliseront PHP. </simpara> <simpara> Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement. </simpara> <warning> <para> Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destinée à l'utilisation sur des serveurs de production. </para> </warning> </sect2> <sect2 id="install.windows.manual"> <title>Instructions Générales d'installation</title> <simpara> Ce guide vous permet d'installer et de configurer manuellement PHP sur vos stations Windows 9x/Me/NT/2000. La première version de ce guide a été compilée par &link.bob;. La version originale est disponible (en anglais) à <ulink url="&url.win32install;">&url.win32install;</ulink>. </simpara> <para> Ce guide fournit une aide d'installation pour : <itemizedlist> <listitem> <para> Personal Web Server (Version la plus récente recommandée) </para> </listitem> <listitem> <para> Internet Information Server 3 ou 4 </para> </listitem> <listitem> <para> Apache 1.3.x </para> </listitem> <listitem> <para> Omni HTTPd 2.0b1 et plus récent </para> </listitem> <listitem> <para> Oreilly Website Pro </para> </listitem> <listitem> <para> Xitami </para> </listitem> <listitem> <para> Netscape Enterprise Server, iPlanet </para> </listitem> </itemizedlist> </para> <para> PHP 4 pour Windows est décliné en deux versions : un exécutable CGI (<filename>php.exe</filename>), et plusieurs modules SAPI (par exemple php4isapi.dll). Cette dernière forme est nouvelle pour PHP 4 et founit des performances améliorées ainsi que des fonctionnalités supplémentaires. </para> <para> Notez cependant que les modules SAPI <emphasis>ne sont pas</emphasis> considéré comme ayant atteint une qualité de production. La raison à cela est que les modules SAPI utilisent le système de thread sécurisé de PHP, ce qui est nouveau en PHP 4, et qui n'a pas été testé et torturé suffisamment pour être considérés comme stable. </para> <para> Il y a encore quelques bugs qui trainent. D'un autre côté, certains d'entre vous ont rapporté des résultats significativement meilleurs avec les modules SAPI, même si nous ne connaissons actuellement personne qui le fasse fonctionner en production. En clair, faites votre choix : soit vous avez absolument besoin de stabilité, et il vaut mieux laisser les performances SAPI de côté; soit vous avez besoin de performances, et alors c'est l'occasion de tester en production et de nous rapporter vos résultats. </para> <para> Si vous choisissez l'un des modules SAPI et utilisez Windows 95, pensez à télécharger la mise à jour DCOM à <ulink url="http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe">Microsoft DCOM pages</ulink>. Pour le module ISAPI, comme un serveur web compatible est nécessaire (testé avec IIS 4.0, PWS 4.0 et IIS 5.0). IIS 3.0 <emphasis>n'est pas</emphasis> supporté; vous devez télécharger et installer le Windows NT 4.0 Option Pack avec IIS 4.0 si vous voulez le support natif de PHP. </para> <para> Voici les différentes étapes d'installation avant les étapes spécifiques au serveur. <itemizedlist> <listitem> <para> Extrayez la distribution dans le dossier de votre choix. <filename>"C:\php\"</filename> est une bonne idée. </para> </listitem> <listitem> <para> Vous devez vous assurer que les DLL que PHP utilise sont disponibles. La liste précise des DLL dépend du serveur web que vous utiliser, et de la méthode que vous utiliser pour faire exécuter vos script (CGI ou module). <filename>php4ts.dll</filename> est toujours nécessaire. Si vous utiliser PHP en module, (e.g. ISAPI or Apache), vous aurez besoin de la DLL ad hoc, dans le dossier <filename>sapi</filename>. Si vous utilisez des extensions PHP, vous aurez besoin des DLL associées. Pour être certains que les DLL sont accessibles, vous pouvez les copier dans le dossier système (i.e. <filename>winnt/system32</filename> ou <filename>windows/system</filename>) ou vous pouvez vous assurer qu'elles sont dans le même dossier que l'exécutable PHP ou les autres DLL de votre serveur web (i.e. php.exe, ou php4apache.dll). </para> <para> L'exécutable binaire PHP, les modules SAPI, et certaines extensions utilisent des DLL externes. Assurez vous que ces DLL sont dans votre distribution, et dans un dossier qui est cité dans le PATH Windows. Le mieux à faire est de copier les fichiers ci-dessous dans votre dossier système, qui est généralement : <simplelist> <member>c:\windows\system pour Windows 9x/Me</member> <member>c:\winnt\system32 pour Windows NT/2000</member> </simplelist> Les fichiers à copier sont : <simplelist> <member> 'php4ts.dll', s'il existe, écrasez le </member> <member> Les fichiers 'dlls' de votre distribution. Si vous les avez déjà installé, ne les remplacez pas, sauf si quelquechose ne fonctionne pas correctement (avant de les écraser, il est recommandé de les sauver de toutes manières, au cas où quelque chose irait de travers). </member> </simplelist> </para> <para> Téléchargez la dernière version de Microsoft Data Access Components (MDAC) pour votre plateforme, spécialement si vous utilisez Microsoft Windows 9x/NT4. MDAC est disponible à <ulink url="&url.mdac;">&url.mdac;</ulink>. </para> </listitem> <listitem> <para> Copiez le fichier '<filename>php.ini-dist</filename>' dans votre dossier '%WINDOWS%' sous Windows 95/98, ou vers votre dossier '%SYSTEMROOT%' sous Windows NT ou Windows 2000 et renommez le en '<filename>php.ini</filename>'. Votre dossier '%WINDOWS%' ou '%SYSTEMROOT%' est généralement : <simplelist> <member>c:\windows pour Windows 9x/Me</member> <member>c:\winnt ou c:\winnt40 pour les serveurs NT/2000</member> </simplelist> </para> <para> Il y a deux fichiers ini, distribués dans le fichier zip, <filename>php.ini-dist</filename> et <filename>php.ini-optimized</filename>. Nous vous recommandons d'utiliser <filename>php.ini-optimized</filename>, car nous l'avons optimisé d'un point de vue sécurité et vitesse d'exécution. Le mieux est tout de même de lire le fichier de configuration <link linkend="configuration.file">php.ini</link> et de choisir vos options manuellement. Si vous voulez atteindre un meilleur niveau de sécurité, c'est par ce moyen que vous pourez le faire, même si PHP focntionne parfaitement avec les configurations par défaut. </para> </listitem> <listitem> <para> Editez votre fichier <filename>php.ini</filename> : <itemizedlist> <listitem> <simpara> Vous devez changer votre option 'extension_dir' pour qu'il pointe sur votre dossier d'installation PHP, ou vers l'endroit où vous avez installé vos 'php_*.dll'. ex: c:\php\extensions </simpara> </listitem> <listitem> <simpara> Si vous utilisez Omni Httpd, sautez l'étape suivante. Modifiez 'doc_root' pour qu'il pointe sur votre racine de serveur web. ex: <filename>c:\apache\htdocs</filename> ou <filename>c:\webroot</filename>. </simpara> </listitem> <listitem> <simpara> Choisissez les modules que vous voulez charger lorsque PHP démarre. Vous pouvez décommenter les lignes 'extension=php_*.dll' pour charger ces modules. Certains modules requièrent que des librairies supplémentaires soient installées sur votre système. La <ulink url="&url.php.faq;">FAQ</ulink> PHP a plus d'informations sur ces librairies. Vous pouvez aussi charger dynamiquement ces librairies avec <command>dl("php_*.dll");</command>. Voyez la section sur les <link linkend="install.windows.extensions">extensions Windows</link>. </simpara> </listitem> <listitem> <simpara> Sous PWS et IIS, vous pouvez modifier le fichier <filename>browscap.ini</filename> pour qu'il pointe sur : <filename>c:\windows\system\inetsrv\browscap.ini</filename> sous Windows 9x/Me et <filename>c:\winnt\system32\inetsrv\browscap.ini</filename> sous NT/2000. </simpara> </listitem> <listitem> <simpara> Notez que le dossier <filename>mibs</filename> fourni avec la distribution Windows, contient des fichiers de support du protocole SNMP. Ce dpssier doit être déplacé dans le dossier <filename>DRIVE:\usr\mibs</filename> (<filename>DRIVE</filename> est le périphérique où PHP est installé.) </simpara> </listitem> </itemizedlist> </para> </listitem> </itemizedlist> </para> </sect2> <sect2 id="install.windows.build"> <title>Compilation des sources</title> <para> Avant de commencer, il est bon de se poser la question suivante : "Pourquoi la compilation de PHP sous Windows est si difficile?". Deux raisons viennent immédiatement à l'esprit : </para> <orderedlist> <listitem><simpara> Windows ne dispose pas (encore) d'une grande communauté de développeurs qui partagent librement leurs sources. La conséquence directe est que les investissements nécessaires en infrastructure pour supporter ce type de développement n'ont pas été faits. Ce qui fait que le portage des utilitaires Unix a été la solution pour pallier ce manque. Ne soyez donc pas surpris de rencontrer cette parenté de temps en temps. </simpara></listitem> <listitem><simpara> La majorité des instructions que vous allez rencontrer sont du type : "faire et oublier". Alors, asseyez-vous confortablement et suivez aussi scrupuleusement que possible les instructions. </simpara></listitem> </orderedlist> <sect3 id="install.windows.build.prepare"> <title>Préparation</title> <para> Avant de commencer, il faut télécharger un maximum de fichiers! </para> <itemizedlist> <listitem> <simpara> Pour commencer, téléchargez le Cygwin depuis le miroir <ulink url="http://sources.redhat.com/cygwin/download.html">cygwin</ulink> le plus proche. Cela vous donnera les utilitaires GNU les plus populaires, utilisés durant le processus de compilation. </simpara> </listitem> <listitem> <simpara> Téléchargez le reste des utilitaires de compilation dont vous aurez besoin depuis le site PHP à <ulink url="http://www.php.net/extra/win32build.zip"> http://www.php.net/extra/win32build.zip</ulink>. </simpara> </listitem> <listitem> <simpara> Téléchargez le code source du DNS utilisé par PHP à <ulink url="http://www.php.net/extra/bindlib_w32.zip"> http://www.php.net/extra/bindlib_w32.zip</ulink>. Il remplacera le fichier <filename>resolv.lib</filename> inclut dans <filename>win32build.zip</filename>. </simpara> </listitem> <listitem> <simpara> Si vous n'avez pas d'utilitaire de dézippage, vous devez en télécharger un. Une version libre est disponible à <ulink url="http://www.cdrom.com/pub/infozip/UnZip.html">InfoZip</ulink>. </simpara> </listitem> </itemizedlist> <simpara> Finalement, vous aurez besoin des sources PHP 4 elles-mêmes!! Les dernières versions sont accessibles sur le serveur CVS <ulink url="http://www.php.net/anoncvs.php">anonyme</ulink>. Si vous téléchargez une version <ulink url="http://snaps.php.net/">intermédiaire</ulink> ou la <ulink url="http://www.php.net/downloads.php">source</ulink>, vous devez non seulement extraire les fichiers, mais aussi convertir les nouvelles lignes en leur équivalent windows (crlf) dans les fichiers <filename>*.dsp</filename> et <filename>*.dsw</filename> avant que Microsoft Visual C++ ne soit capable de les comprendre. </simpara> <note> <simpara> Placez les dossiers <filename>Zend</filename> et <filename>TSRM</filename> dans le dossier <filename>php4</filename> pour que les projets puissent les trouver durant la compilation. </simpara> </note> </sect3> <sect3 id="install.windows.build.install"> <title>Mettre tout ensemble</title> <itemizedlist> <listitem> <simpara> Suivez les instructions pour installer l'utilitaire d'unzip de votre choix. </simpara> </listitem> <listitem> <simpara> Exécutez <filename>setup.exe</filename> et suivez les instructions d'installation. Si vous décidez d'installer dans un autre dossier que <filename>c:\cygnus</filename>, indiquez le au processus de compilation en modifiant la variable d'environnement Cygwin. Sous Windows 9x/Me, modifier une variable d'environnement se fait en ajoutant une ligne dans le fichier <filename>autoexec.bat</filename>. Sous Windows NT, allez dans le menu "Démarrer => Paramètres => Panneau de contrôle => Système " ("My Computer => Control Panel => System ") et sélectionnez l'onglet "environnement" ("environment"). </simpara> <warning> <simpara> Créez un dossier temporaire pour Cygwin, sinon de nombreuses commandes (comme bison) échoueront. Sous Windows 9x/Me, <userinput>mkdir C:\TMP</userinput>. Sous Windows NT, <userinput>mkdir %SystemDrive%\tmp</userinput>. </simpara> </warning> </listitem> <listitem> <simpara> Créez un dossier et dézippez <filename>win32build.zip</filename> dedans. </simpara> </listitem> <listitem> <simpara> Lancez Microsoft Visual C++, et allez dans le menu "select Tools => Options". Dans le dialogue, sélectionnez l'onglet "directories". Assurez-vous que <filename>cygwin\bin</filename>, <filename>win32build\include</filename>, et <filename>win32build\lib</filename> sont bien dans les menus déroulants "Executables", "Include", et "Library". (Pour ajouter une entrée, sélectionnez une ligne blanche, et tapez). Une entrée typique ressemble à ceci : </simpara> <itemizedlist> <listitem> <simpara> <filename>c:\cygnus\bin</filename> </simpara> </listitem> <listitem> <simpara> <filename>c:\php-win32build\include</filename> </simpara> </listitem> <listitem> <simpara> <filename>c:\php-win32build\lib</filename> </simpara> </listitem> </itemizedlist> <simpara> Pressez "OK", et sortez de Visual C++. </simpara> </listitem> <listitem> <simpara> Créez un autre dossier et dézippez <filename>bindlib_w32.zip</filename> dedans. Décidez si vous avez besoin des symboles de débuggage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration adéquate : </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs de GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et "bindlib". Puis sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration voulue. Enfin, sélectionnez "Build=>Rebuild All". </simpara> </listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté <command>vcvars.bat</command>. Exécutez maintenant l'une des commandes suivantes : </simpara> <itemizedlist> <listitem> <simpara> <userinput>msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"</userinput> </simpara> </listitem> <listitem> <simpara> <userinput>msdev bindlib.dsp /MAKE "bindlib - Win32 Release"</userinput> </simpara> </listitem> </itemizedlist> </listitem> <listitem> <simpara> A ce stade, vous avez une librairie <filename>resolv.lib</filename> utilisable, soit dans votre dossier <filename>Debug</filename>, soit sans le dossier <filename>Release</filename>. Copiez ce fichier dans votre dossier <filename>win32build\lib</filename>, en remplaçant le fichier du même nom. </simpara> </listitem> </itemizedlist> </listitem> </itemizedlist> </sect3> <sect3 id="install.windows.build.compile"> <title>Compilation</title> <simpara> La meilleure façon de compiler est de commander par la version CGI/exécutable. </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et sélectionnez "php4ts". Ensuite, sélectionnez le menu "Build=>Set Active Configuration", et sélectionnez la configuration voulue. Finalement, sélectionnez le menu "Build=>Rebuild All". </simpara></listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté <command>vcvars.bat</command>. Exécutez maintenant l'une des commandes suivantes : </simpara> <itemizedlist> <listitem><simpara> <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"</userinput> </simpara></listitem> <listitem><simpara> <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"</userinput> </simpara></listitem> <listitem> <simpara> A ce stade, vous avez une librairie <filename>php.exe</filename> utilisable, soit dans votre dossier <filename>Debug_TS</filename> soit sans le dossier <filename>Release_TS</filename>. </simpara> </listitem> </itemizedlist> </listitem> </itemizedlist> <simpara> Répétez les instructions ci-dessus avec <filename>php4isapi.dsp</filename> (qui est dans <filename>sapi\isapi</filename>) pour compiler le code nécessaire pour intégrer PHP avec Microsoft IIS. </simpara> </sect3> </sect2> <sect2 id="install.windows.extensions"> <title>Installation des extensions sous Windows</title> <para> Après avoir installé PHP et votre serveur web sous Windows, vous voudrez sûrement ajouter quelques extensions bien pratiques. La table suivante liste une partie des extensions disponibles. Comme indiqué dans le manuel, vous pouvez choisir quelles extensions vous voulez charger en décommentant la ligne 'extension=php_*.dll' dans le fichier <filename>php.ini</filename>. Vous pouvez aussi charger dynamiquement un module avec la fonction <function>dl</function>. </para> <para> Les fichiers DLLs des extensions PHP sont préfixés par 'php_' en PHP 4, et 'php3_' en PHP 3. Cela évite la confusion des extensions PHP et de leurs librairies. </para> <note> <para> En PHP 4.0.4pl1, les extensions BCMath, BCMath,Calendar, COM, FTP, MySQL, ODBC, PCRE, Sessions, WDDX et XML sont activées <emphasis>par défaut</emphasis>. Vous n'avez rien à faire pour qu'elles soient inclues. Lisez le fichier <filename>README.txt</filename> ou <filename>install.txt</filename> dans votre distribution pour connaître la liste des modules par défaut. </para> </note> <note> <para> Certaines de ces extensions requièrent des librairies DLL supplémentaires pour fonctionner correctement. Certaines d'entre elles sont disponibles dans la distribution. dans le dossier <filename>dlls</filename> mais certaines (comme Oracle (php_oci8.dll)), demandent des dlls qui ne sont pas dans la distribution. </para> <para> Copiez les dlls fournies depuis le dossier <filename>dlls</filename> dans votre PATH Windows. Les bons emplacements sont typiquement <simplelist> <member>c:\windows\system pour Windows 9x/Me</member> <member>c:\winnt\system32 pour Windows NT/2000</member> </simplelist> Si vous les avez déjà d'installées sur votre système, ne les écrasez que si PHP ne fonctionne pas correctement (et de toutes manières, faites une sauvegarde de ces DLL, en cas de problème). </para> </note> <para> <table> <title>Extensions PHP</title> <tgroup cols="3"> <thead> <row> <entry>Extension</entry> <entry>Description</entry> <entry>Notes</entry> </row> </thead> <tbody> <row> <entry>php_bz2.dll</entry> <entry>Fonctions de compression Bzip2</entry> <entry>Aucune</entry> </row> <row> <entry>php_calendar.dll</entry> <entry>Fonctions de conversions calendaires (Depuis PHP 4.03, elles sont activées par défaut)</entry> <entry>Activée automatiquement depuis PHP 4.0.3</entry> </row> <row> <entry>php_cpdf.dll</entry> <entry>Fonctions ClibPDF</entry> </row> <row> <entry>php_crypt.dll</entry> <entry>Fonctions de cryptage</entry> <entry>Aucune</entry> </row> <row> <entry>php_ctype.dll</entry> <entry>Fonctions ctype</entry> <entry>Aucune</entry> </row> <row> <entry>php_curl.dll</entry> <entry>Fonctions CURL</entry> <entry>Requiert : libeay32.dll, ssleay32.dll (fournies)</entry> </row> <row> <entry>php_cybercash.dll</entry> <entry>Fonctions de paiement Cybercash</entry> <entry>Aucune</entry> </row> <row> <entry>php_db.dll</entry> <entry>Fonctions DBM</entry> <entry>Obsolète. Utilisez DBA à la place (php_dba.dll)</entry> </row> <row> <entry>php_dba.dll</entry> <entry>Fonctions dbm-style</entry> <entry>Aucune</entry> </row> <row> <entry>php_dbase.dll</entry> <entry>Fonctions DBase</entry> <entry>Aucune</entry> </row> <row> <entry>php3_dbm.dll</entry> <entry>Librairie d'émulation GDBM via Berkely DB2</entry> <entry>Aucune</entry> </row> <row> <entry>php_domxml.dll</entry> <entry>Fonctions DOM XML</entry> <entry>Requiert : libxml2.dll (fournie)</entry> </row> <row> <entry>php_dotnet.dll</entry> <entry>Fonctions .NET</entry> <entry>Aucune</entry> </row> <row> <entry>php_exif.dll</entry> <entry>Entêtes EXIF des images JPEG</entry> <entry>Aucune</entry> </row> <row> <entry>php_fbsql.dll</entry> <entry>Fonctions FrontBase</entry> <entry>Aucune</entry> </row> <row> <entry>php_fdf.dll</entry> <entry>Fonction FDF (Forms Data Format)</entry> <entry>Requiert: fdftk.dll (fournie)</entry> </row> <row> <entry>php_filepro.dll</entry> <entry>Lecture des bases filepro</entry> <entry>Accès en lecture seule</entry> </row> <row> <entry>php_ftp.dll</entry> <entry><link linkend="ref.ftp">Fonctions FTP</link></entry> <entry>Activée par défaut depuis PHP 4.0.3</entry> </row> <row> <entry>php_gd.dll</entry> <entry>Bibliothèque GD (pour les manipulations d'images)</entry> <entry>Aucune</entry> </row> <row> <entry>php_gettext.dll</entry> <entry>Fonctions GNU Gettext</entry> <entry>Requiert : gnu_gettext.dll (fournie)</entry> </row> <row> <entry>php_hyperwave.dll</entry> <entry>Fonctions HyperWave</entry> <entry>Aucune</entry> </row> <row> <entry>php_iconv.dll</entry> <entry>Fonctions de conversions ICONV</entry> <entry>Requiert : iconv-1.3.dll (fournie)</entry> </row> <row> <entry>php_ifx.dll</entry> <entry>Fonctions Informix</entry> <entry>Requiert: librairies Informix</entry> </row> <row> <entry>php_iisfunc.dll</entry> <entry>Fonctions IIS</entry> <entry>Aucune</entry> </row> <row> <entry>php_imap.dll</entry> <entry>Fonctions IMAP 4(en PHP 3: php3_imap4r1.dll)</entry> <entry>PHP 3: php3_imap4r1.dll</entry> </row> <row> <entry>php_ingres.dll</entry> <entry>Fonctions Ingres II</entry> <entry>Requiert: librairies Ingres II</entry> </row> <row> <entry>php_interbase.dll</entry> <entry>Fonctions InterBase</entry> <entry>Requiert: gds32.dll (fournie)</entry> </row> <row> <entry>php_java.dll</entry> <entry>Extension Java</entry> <entry>Requiert: jvm.dll (fournie)</entry> </row> <row> <entry>php_ldap.dll</entry> <entry>Fonctions LDAP</entry> <entry>Requiert: libsasl.dll (fournie)</entry> </row> <row> <entry>php_mhash.dll</entry> <entry>Fonctions Mhash</entry> <entry>Aucune</entry> </row> <row> <entry>php_ming.dll</entry> <entry>Fonctions Ming pour Flash</entry> <entry>Aucune</entry> </row> <row> <entry>php_msql.dll</entry> <entry>Fonctions mSQL</entry> <entry>Requiert: msql.dll (fournie)</entry> </row> <row> <entry>php3_msql1.dll</entry> <entry>Fonctions mSQL 1</entry> <entry>Aucune</entry> </row> <row> <entry>php3_msql2.dll</entry> <entry>Fonctions mSQL 2</entry> <entry>Aucune</entry> </row> <row> <entry>php_mssql.dll</entry> <entry>Fonctions MSSQL (anciennement php_mssql70.dll, requiert MSSQL DB-Libraries)</entry> <entry>Requiert: ntwdblib.dll (fournie)</entry> </row> <row> <entry>php3_mysql.dll</entry> <entry>Fonctions MySQL (Activées par défaut en PHP 4)</entry> <entry>Aucune</entry> </row> <row> <entry>php_nsmail.dll</entry> <entry>Fonctions Netscape mail</entry> <entry>Aucune</entry> </row> <row> <entry>php3_oci73.dll</entry> <entry>Fonctions Oracle</entry> <entry>Aucune</entry> </row> <row> <entry>php_oci8.dll</entry> <entry>Fonctions Oracle 8</entry> <entry>Requiert: librairies clientes Oracle 8</entry> </row> <row> <entry>php_openssl.dll</entry> <entry>Fonctions OpenSSL</entry> <entry>Requiert: libeay32.dll (fournie)</entry> </row> <row> <entry>php_oracle.dll</entry> <entry>Fonctions Oracle</entry> <entry>Requiert: librairies clientes Oracle 7</entry> </row> <row> <entry>php_pdf.dll</entry> <entry>Fonctions PDF</entry> <entry>Aucune</entry> </row> <row> <entry>php_pgsql.dll</entry> <entry>Fonctions PostgreSQL</entry> <entry>Aucune</entry> </row> <row> <entry>php_printer.dll</entry> <entry>Fonctions d'impression</entry> <entry>Aucune</entry> </row> <row> <entry>php_sablot.dll</entry> <entry>Focntions XSLT</entry> <entry>Requiert: sablot.dll (fournie)</entry> </row> <row> <entry>php_snmp.dll</entry> <entry>Fonctions <acronym>SNMP</acronym> get et walk</entry> <entry>NT uniquement!</entry> </row> <row> <entry>php_sybase_ct.dll</entry> <entry>Fonctions Sybase</entry> <entry>Requiert: librairies clientes Sybase</entry> </row> <row> <entry>php_yaz.dll</entry> <entry>Fonctions YAZ</entry> <entry>Aucune</entry> </row> <row> <entry>php_zlib.dll</entry> <entry>Fonctions ZLib</entry> <entry>Aucune</entry> </row> </tbody> </tgroup> </table> </para> </sect2> </sect1> <sect1 id="install.apache"> <title>Installation du serveur Apache</title> <para> Cette section contient des notes spécifiques pour l'installation de PHP avec Apache, aussi bien pour la version <link linkend="install.apache.unix">Unix</link> que <link linkend="install.apache.windows">Windows</link>. </para> <sect2 id="install.apache.unix"> <title>Détails pour l'installation de PHP sous Apache sous Unix.</title> <simpara> Il y a deux méthodes d'installation de PHP avec Apache 1.3.x sous Windows. L'une passe par les CGI (php.exe), l'autre est d'utiliser la DLL de module d'apache. Dans les deux cas, vous devrez arrêter le serveur Apache, et éditer le fichier <filename>srm.conf</filename> ou <filename>httpd.conf</filename>, pour configurer Apache avec PHP. </simpara> <para> Vous pouvez sélectionner des options à ajouter au fichier <command>configure</command> à la ligne 8 depuis la <link linkend="install.configure">liste complète des options de configuration</link>. </para> <example id="install.apache.unix.longer"> <title> Instructions d'installation (version module) </title> <programlisting>1. gunzip apache_1.3.x.tar.gz2. tar xvf apache_1.3.x.tar3. gunzip php-x.x.x.tar.gz4. tar xvf php-x.x.x.tar5. cd apache_1.3.x6. ./configure --prefix=/www7. cd ../php-x.x.x8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars9. make10. make install11. cd ../apache_1.3.x12. for PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a13. make14. make install Au lieu de cette étape, vous pouvez aussi copier le binaire httpd et remplacer votre exécutable actuel. Assurez-vous tout de même que le serveur est bien éteint.15. cd ../php-x.x.x16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini for PHP 4: cp php.ini-dist /usr/local/lib/php.ini Vous pouvez éditer votre fichier php.ini pour modifier certaines options PHP. Si vous préférez placer ce fichier ailleurs, utilisez --with-config-file-path=/path lors de l'étape 8.17. Editez votre fichier httpd.conf ou srm.conf file et ajoutez : Pour PHP 3: AddType application/x-httpd-php3 .php3 Pour PHP 4: AddType application/x-httpd-php .php Vous pouvez choisir n'importe quelle extension que vous voulez ici. .php est uniquement une suggestion. Vous pouvez aussi inclure .html.18. Utilisez votre procédure habituelle pour démarrer votre serveur Apache.(vous devez l'éteindre et le redémarrer, pas seulement lui envoyerun signal HUP ou USR1.) </programlisting> </example> <para> Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez <literal>/path/to/</literal> par le chemin d'accès à vos applications sur votre système. <informalexample> <programlisting>1. Nombreuses variantes Linux SysV :/etc/rc.d/init.d/httpd restart2. Avec les scripts apachectl :/path/to/apachectl stop/path/to/apachectl start3. httpdctl et httpsdctl (utilisant OpenSSL), similaire à apachectl:/path/to/httpsdctl stop/path/to/httpsdctl start4. En utilisant mod_ssl, ou un autre seveur SSL, manuellement :/path/to/apachectl stop/path/to/apachectl startssl </programlisting> </informalexample> Les exécutables apachectl et http(s)dctl peuvent être situés dans différents dossiers. Si votre système a <literal>locate</literal> ou <literal>whereis</literal> ou <literal>which</literal>, utilisez-les pour retrouver vos programmes. </para> <para> Différents exemples de compilation PHP pour Apache suivent : <informalexample> <programlisting>./configure --with-apxs --with-pgsql </programlisting> </informalexample> </para> <para> Cette commande va créer une librairie partagée <filename>libphp4.so</filename> qui sera chargée par Apache avec une ligne LoadModule dans le fichier <filename>httpd.conf</filename>. Le support PostgreSQL est aussi inclut dans <filename>libphp4.so</filename>. </para> <para> <informalexample> <programlisting>./configure --with-apxs --with-pgsql=shared </programlisting> </informalexample> </para> <para> Cette commande va créer une autre librairie partagée <filename>libphp4.so</filename>, mais va aussi créer une librairie partagée <filename>pgsql.so</filename> qui sera chargée dans PHP avec les options de configurations du fichier <filename>php.ini</filename> ou par chargement dynamique avec <function>dl</function>. </para> <para> <informalexample> <programlisting>./configure --with-apache=/path/to/apache_source --with-pgsql </programlisting> </informalexample> </para> <para> Cette commande va créer une autre librairie partagée <filename>libmodphp4.a</filename>, un fichier <filename>mod_php4.c</filename> et quelques fichiers compagnons dans le dossier <literal>src/modules/php4</literal> de dossier Apache. Puis, vous devez compiler Apache avec <literal>--activate-module=src/modules/php4/libphp4.a</literal> et le système de compilation d'Apache va créer un fichier <filename>libphp4.a</filename> et le lien statiquement avec <filename>httpd</filename>. Le support PostgreSQL est alors inclut directement dans l'exécutable <filename>httpd</filename>, ce qui fait que le résultat final est un fichier unique <filename>httpd</filename>, qui inclus Apache et PHP. </para> <para> <informalexample> <programlisting>./configure --with-apache=/path/to/apache_source --with-pgsql=shared </programlisting> </informalexample> </para> <para> Identique à la version précédente, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable final <filename>httpd</filename>, vous allez obtenir une librairie partagée <filename>pgsql.so</filename> que vous pouvez charger dans PHP soit grâce au fichier de configuration <filename>php.ini</filename> ou dynamiquement avec <function>dl</function>. </para> <para> Lorsque vous faites le choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'éxécuter plus rapidement PHP. Pour plus d'informations, voyez <ulink url="&url.apachedso;">webpage on DSO support</ulink>. </para> </sect2> <sect2 id="install.apache.windows"> <title>Détails sur l'installation de PHP sous Windows avec Apache 1.3.x</title> <simpara> Il y a deux méthodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La première est d'utiliser l'exécutable CGI (php.exe), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arrêter le serveur Apache, éditer votre fichier <literal>srm.conf</literal> ou <literal>httpd.conf</literal> pour configurer Apache. </simpara> <simpara> Bien qu'il puisse y avoir quelques différences de configurations de PHP sous Apache, le processus reste simple et à la portée du néophyte. Reportez-vous aux documentations Apache pour plus de détails sur ces directives. </simpara> <para> Si vous avez dézippé le package dans <filename>C:\PHP\</filename> comme indiqué dans <link linkend="install.windows.manual">Instructions Générales d'installation</link>, vous devez insérer les lignes suivantes dans votre fichier <literal>srm.conf</literal> ou <literal>httpd.conf</literal> pour qu'il fonctionne en CGI : <itemizedlist> <listitem> <simpara> <literal> ScriptAlias /php/ "c:/php/" </literal> </simpara> </listitem> <listitem> <simpara> <literal> AddType application/x-httpd-php .php .phtml </literal> </simpara> </listitem> <listitem> <simpara> <literal> Action application/x-httpd-php "/php/php.exe" </literal> </simpara> </listitem> </itemizedlist> N'oubliez pas de redémarrer le serveur, avec la commande <literal>NET STOP APACHE</literal> suivie de <literal>NET START APACHE</literal>. </para> <para> Si vous voulez utiliser PHP comme module Apache, vous devez déplacer le fichier <filename>php4ts.dll</filename> dans le dossier <filename>windows/system</filename> (pour Windows 9x/Me) ou <filename>winnt/system32</filename> (pour Windows NT/2000), en écrasant les anciennes versions. Puis, vous devez ajouter les deux lignes suivantes dans le fichier de configuration Apache : <itemizedlist> <listitem> <simpara> <literal> LoadModule php4_module c:/php/sapi/php4apache.dll </literal> </simpara> </listitem> <listitem> <simpara> <literal> AddType application/x-httpd-php .php .phtml </literal> </simpara> </listitem> </itemizedlist> </para> <note> <simpara> Avec Apache 1.3.22 pour Windows, le fichier de configuration par défaut (<filename>httpd.conf-dist-win</filename>) a une directive <literal>ClearModuleList</literal> incluse par défaut. Si cette directive est utilisé, il est nécessaire de mettre une ligne <literal>AddModule mod_php4.c</literal> à la liste <literal>AddModule</literal>, sinon PHP ne sera pas enregistré comme Module Apache. </simpara> </note> <simpara> Pour utiliser les fonctionnalités de mise en évidence du code source, créez simplement un script PHP et ajoutez le code suivant : <literal><?php show_source("original_php_script.php"); ?></literal>. Remplacez le fichier <literal>original_php_script.php</literal> par le fichier que vous voulez afficher : c'est la seule manière de le faire, car il n'y a pas de fonctionnalités phps sous Windows. </simpara> <note> <simpara> Sous Win-Apache tous les antislash des noms de chemins tels que "<filename>c:\directory\file.ext</filename>", doivent être convertis en slash c'est à dire "c:/directory/file.ext". </simpara> </note> </sect2> </sect1> <sect1 id="install.commandline"> <title>CGI/ Installation pour exécution en ligne de commande</title> <para> Par défaut, PHP est compilé comme une CGI. Si PHP peut être incorporé au serveur web que vous utilisez en tant que module, de manière générale c'est cette solution que vous devriez adopter pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs de lancer des scripts PHP sous leur UID respectives. Lisez attentivement le chapitre consacré à la <link linkend="security">sécurité</link> si vous souhaitez utiliser cette solution. </para> <sect2 id="install.commandline.testing"> <title>Tests</title> <simpara> Si vous avez compilé PHP comme programme CGI, vous pouvez tester votre produit en tapant : <command>make test</command>. C'est toujours une bonne chose de tester le résultat d'une compilation. Cela vous permet de repérer des problèmes entre PHP et votre plate-forme, bien plus facilement que si vous attendez. </simpara> </sect2> <sect2 id="install.commandline.benchmarking"> <title>Performances</title> <simpara> Si vous avez compilé PHP comme programme CGI, vous pouvez évaluer les performances de PHP 3 avec la commande <command>make bench</command>. Notez que si le <link linkend="ini.safe-mode">safe mode</link> est activé (par défaut), vous ne risquez pas de voir l'évaluation s'arrêter une fois les 30 secondes réglementaires écoulées. En effet, la fonction <function>set_time_limit</function> ne peut pas être utilisée si le <link linkend="ini.safe-mode">safe mode</link> fonctionne. Utilisez l'option <link linkend="ini.max-execution-time">max_execution_time</link> pour contrôler le temps d'éxécution de vos scripts. <command>make bench</command> ignore le fichier de <link linkend="configuration.file">configuration file</link>. </simpara> <note> <simpara> <command>make bench</command> n'est disponible qu'en PHP 3. </simpara> </note> </sect2> </sect1> <sect1 id="install.fhttpd"> <title>Installation avec les serveurs fhttpd</title> <para> Pour compiler PHP comme un module fhttpd, répondre "yes" à la question "Build as an fhttpd module ?" (cela correspond à l'option de configuration <link linkend="install.configure.with-fhttpd">--with-fhttpd</link>=<replaceable>DIR</replaceable> et spécifier la racine de la distribution fhttpd. Le répertoire par défaut est: <filename class="directory">/usr/local/src/fhttpd</filename>. Si vous utilisez fhttpd, compiler PHP en module vous permettra d'obtenir des performances supérieures, plus de contrôle et la possibilité d'exécution à distance. </para> </sect1> <sect1 id="install.caudium"> <title>Installation sur serveur Caudium</title> <para> PHP 4 peut être compilé comme module Pike pour le serveur web Caudium. Notez que ce mode n'est pas supporté en PHP 3. Suivez simplement les instructions suivantes pour installer PHP 4 sur un serveur Caudium. </para> <example id="install.caudium.instructions"> <title>Instructions d'installation Caudium</title> <programlisting>1. Assurez-vous que vous avez un serveur Caudium installé avant de tenter l'installation PHP 4. Pour que PHP 4 fonctionne correctement, vous devez installer Pike 7.0.268 ou plus récent. Pour cet exemple, nous supposerons que vous avez installé Caudium dans le dossier /opt/caudium/server/.2. Renommez le dossier en php-x.y.z (où x.y.z est le numéro de version).3. ./configure --with-caudium=/opt/caudium/server4. make5. make install6. Redémarrez Caudium s'il était en fonctionnement7. Connectez-vous à l'interface de configuration graphique et allez dans le serveur virtuel auquel vous voulez ajouter le support PHP.8. Cliquez sur "Add Module" et recherchez puis ajoutez le module "PHP 4 Script Support".9. Si la documentation dit que 'PHP 4 interpreter isn't available', assurez-vous que vous avez bien redémarré le serveur. Si vous l'avez fait, vérifiez le fichier /opt/caudium/logs/debug/default.1 : il contient peut-être des erreurs liées à <filename>PHP4.so</filename>. De même, assurez-vous que <filename>caudium/server/lib/[pike-version]/PHP4.so</filename> est présent.10. Configurez le module "PHP Script Support" si nécessaire. </programlisting> </example> <para> Vous pouvez bien sûr compiler votre module Caudium avec les diverses extensions disponibles. Voyez la <link linkend="install.configure">liste complète des options de configuration</link> pour une liste exhaustive. </para> <note> <para> Lorsque vous ajoutez le support MySQL à PHP 4, vous devez-vous assurer que le client MySQL normal est utilisé. Sinon, il peut y avoir des conflits avec Pike, qui dispose déjà du support MySQL. Vous pouvez le faire en spécifiant le dossier d'installation de MySQL grâce à l'option <link linkend="install.configure.with-mysql">--with-mysql</link>. </para> </note> </sect1> <sect1 id="install.iis"> <title>Installation avec les serveurs IIS/PWS</title> <para> Cette section contient des notes sur l'installation de PHP avec IIS ( Microsoft Internet Information Server) : <link linkend="install.iis.iis3">PWS/IIS 3</link>, <link linkend="install.iis.pws4">PWS 4 ou plus récent</link> et <link linkend="install.iis.iis4">IIS 4 ou plus récent</link>. </para> <sect2 id="install.iis.iis3"> <title>Windows et PWS/IIS 3</title> <simpara> La méthode recommandée pour configurer ces serveurs est d'utiliser le fichier INF inclus dans la distribution (<filename>php_iis_reg.inf</filename>). Vous pouvez éditer ce fichier, pour vous assurer que les extenstions et les dossiers d'installation de PHP sont bien ceux de votre configuration. Ou alors, vous pouvez suivre les instructions suivantes : </simpara> <warning> <para> ATTENTION: Ces instructions requièrent la manipulation du fichier de registry de Windows. Une erreur peut laisser votre système dans un état instable. Nous vous recommandons vivement de sauvegarder ce fichier en lieu sûr. L'équipe de développement et les traducteurs de cette documentation ne pourront pas être tenus responsable d'un quelconque dommage qui pourrait survenir dans votre registry. </para> </warning> <para> <itemizedlist> <listitem> <simpara> Lancez Regedit. </simpara> </listitem> <listitem> <simpara> Naviguez jusqu'à : <literal>HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap</literal>. </simpara> </listitem> <listitem> <simpara> Dans le menu "edit", sélectionnez : <literal>New->String Value</literal>. </simpara> </listitem> <listitem> <simpara> Entrez l'extension que vous voulez utiliser pour les scripts PHP. Par exemple : <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> Double-cliquez sur la chaîne, et entrez le chemin jusqu'à <literal>php.exe</literal> dans le champ "value data". ex: <literal>c:\php\php.exe</literal>. </simpara> </listitem> </itemizedlist> </para> <para> Les étapes suivantes n'affectent pas la configuration du serveur web, et ne s'appliquent que si vous voulez que vos scripts PHP soient exécutés lorsqu'il sont exécutés en ligne de commande (par exemple, run <filename>c:\messcripts\test.php</filename>) ou en double-cliquant sur l'icone. Vous pouvez ignorer ces étapes si vous préférez que vos scripts PHP s'ouvrent dans éditeur de texte, plutôt que de les voir s'exécuter lorsque vous double-cliquez dessus. </para> <para> <itemizedlist> <listitem> <simpara> Répétez ces instructions pour toutes les extensions que vous voulez associer aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Naviguez jusqu'à : <literal>HKEY_CLASSES_ROOT</literal> </simpara> </listitem> <listitem> <simpara> Dans le menu edit, sélectionnez: <literal>New->Key</literal>. </simpara> </listitem> <listitem> <simpara> Donnez le nom de votre extension à la clé : ex: <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> Sélectionnez le nom de la nouvelle clée dans le panneau de droite, et double cliquez dans "default value", puis entrez <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> Répétez ces instructions pour toutes les extensions que vous avez associées aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Créez une autre <literal>New->Key</literal> sous <literal>HKEY_CLASSES_ROOT</literal> et nommez-la <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> Sélectionnez la nouvelle clé <literal>phpfile</literal> et dans le panneau de doite, double-cliquez dans "default value" et entrez <literal>PHP Script</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>phpfile</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>Shell</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>Shell</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>open</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>open</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>command</literal>. </simpara> </listitem> <listitem> <simpara> Sélectionnez la nouvelle clé <literal>command</literal> et dans le panneau de droite, faites un double clic dans "default value", puis entrez le chemin jusqu'à <literal>php.exe</literal>. ex: <literal>c:\php\php.exe -q %1</literal>. (n'oubliez pas le <literal>%1</literal>). </simpara> </listitem> <listitem> <simpara> Quittez Regedit. </simpara> </listitem> <listitem> <simpara> Si vous utilisez PWS sous Windows, redémarrez pour prendre en compte la nouvelle registry. </simpara> </listitem> </itemizedlist> </para> <simpara> Les utilisateurs de PWS et IIS 3 sont prêts à utiliser leur serveur. Avec IIS 3, vous pouvez utiliser un <ulink url="&url.iiscfg;">outil</ulink> bien pratique de Steven Genusa pour configurer votre carte des scripts. </simpara> </sect2> <sect2 id="install.iis.pws4"> <title>Windows et PWS 4 ou plus récent</title> <simpara> Pour installer PHP sous Windows avec PWS 4 ou plus récent, vous avez deux options : l'une est d'avoir PHP sous forme de CGI, l'autre est d'utiliser les modules SAPI, sous forme de DLL. </simpara> <para> Si vous optez pour le CGI, faites ceci : <itemizedlist> <listitem> <simpara> Editez le fichier <filename>pws-php4cgi.reg</filename> (dans le dossier <filename>sapi</filename>) pour indiquer la localisation de votre fichier <filename>php.exe</filename>. Les slash doivent être échappés. Par exemple : <literal>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\PHP\\php.exe"</literal> </simpara> </listitem> <listitem> <simpara> Dans le gestionnaire PWS Manager, faites un clic droit sur les dossiers qui supporteront PHP, et sélectionnez "Properties". Cochez l'option "Execute" et confirmez. </simpara> </listitem> </itemizedlist> </para> <para> Si vous optez pour les modules ISAPI, faites ceci : <itemizedlist> <listitem> <simpara> Editez le fichier <filename>pws-php4isapi.reg</filename> (dans le dossier <filename>sapi</filename>) pour indiquer la localisation de votre fichier <filename>php4isapi.dll</filename>. Les slash doivent être échappés. Par exemple : <literal>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\PHP\\sapi\\php4isapi.dll"</literal> </simpara> </listitem> <listitem> <simpara> Dans le gestionnaire PWS Manager, faites un clic droit sur les dossiers qui supporteront PHP, et sélectionnez "Properties". Cochez l'option "Execute" et confirmez. </simpara> </listitem> </itemizedlist> </para> </sect2> <sect2 id="install.iis.iis4"> <title>Windows NT/2000 et IIS 4 ou plus récent</title> <simpara> Pour installer PHP sous Windows NT/2000 serveyr avec IIS 4 ou plus récent, vous avez deux options : l'une est d'avoir PHP sous forme de CGI, l'autre est d'utiliser les modules SAPI, sous forme de DLL. </simpara> <simpara> Dans les deux cas, vous devez lancer la console "Microsoft Management" (elle peut aussi s'appeler "Internet Services Manager". Elle est située soit dans "Windows NT 4.0 Option Pack" ou dans "Control Panel=>Administrative Tools" sous Windows 2000). Puis, faites un clic droit sur votre dossier web (qui apparaitra probablement comme <filename>Default Web Server</filename>), et sélectionnez "Properties". </simpara> <para> Si vous optez pour le CGI, faites ceci : <itemizedlist> <listitem> <simpara> Sous "Home Directory", "Virtual Directory", ou "Directory", cliquez sur le bouton "Configuration", et sélectionnez l'onglet "App Mappings". </simpara> </listitem> <listitem> <simpara> Cliquez sur "Add", puis dans la boîte "Executable", tapez : <literal>c:\php\php.exe</literal> (si vous avez installé PHP dans le dossier <literal>c:\php\</literal>.) </simpara> </listitem> <listitem> <simpara> Dans la boîte "Extension", tapez le nom de l'extension que vous voulez associer aux scripts PHP. Laissez "Method exclusions" vide, et cochez "Script engine". Vous pouvez aussi préférer cocher la boîte 'check that file exists' - pour un coût faible, IIS (ou PWS) s'assirurera que le script existe, et résoudra les problèmes d'autentification avant de démarrer PHP. Cela signifie que vous obtiendrez des messages d'erreur 404 intelligents, plutôt que d'avoir simplement une plainte du serveur comme quoi les CGI n'ont rien retournés. </simpara> <simpara> Répétez les étapes 3 et 4 pour chaque extension que vous souhaitez associer aux scripts PHP. (<literal>.php</literal> et <literal>.phtml</literal> sont les plus répandues.) </simpara> </listitem> <listitem> <simpara> Configurer la sécurité nécessaire (dans "Internet Service Manager"), et si votre serveur NT utilise NTFS, ajoutez les droits adéquats pour I_USR_, au dossier qui contient <literal>php.exe</literal>. </simpara> </listitem> </itemizedlist> </para> <para> Si vous optez pour les modules ISAPI, faites ceci : <itemizedlist> <listitem> <simpara> Si vous ne voulez pas effectuer des authentifications HTTP avec PHP, vous pouvez (et devez) sauter cette étape. Avec ISAPI Filters, ajoutez un nouveau filtre ISAPI. Utilisez PHP comme nom de filtre, et ajoutez simplement le chemin jusqu'à <filename>php4isapi.dll</filename>. </simpara> </listitem> <listitem> <simpara> Sous "Home Directory", cliquez sur le bouton "Configuration". Ajoutez une nouvelle entrée dans "Application Mappings". Utilisez le chemin jusqu'à <filename>php4isapi.dll</filename> comme "Executable", indiquez ".php" comme extension, laissez "Method exclusions" vide, et cochez "Script engine". </simpara> </listitem> <listitem> <simpara> Arrêtez totalement IIS (NET STOP iisadmin) </simpara> </listitem> <listitem> <simpara> Démarrez IIS (NET START w3svc) </simpara> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.netscape-enterprise"> <title>Installation sous Netscape et iPlanet Enterprise Serveur</title> <para> Cette section contient les notes et détails spécifique à l'installation Netscape et iPlanet, aussi bien pour <link linkend="install.netscape.sun">Sun Solaris</link> que <link linkend="install.netscape.windows">Windows</link>. </para> <para> Vous pouvez trouvez plus d'informations sur la configuration de PHP avec Netscape Enterprise Server : <ulink url="&url.netscape.nsapi;">&url.netscape.nsapi;</ulink> </para> <sect2 id="install.netscape.sun"> <title>Installer PHP avec Netscape sous Sun Solaris</title> <para> Pour compiler PHP avec NES ou iPlanet, indiquez le bon dossier d'installation pour l'option de configuration <link linkend="install.configure.with-nsapi">--with-nsapi</link> = <replaceable>DIR</replaceable> option. Le dossier par défaut est généralement <filename class="directory">/opt/netscape/suitespot/</filename>. Lisez aussi <filename>/php-xxx-version/sapi/nsapi/nsapi-readme.txt</filename>. </para> <para> <example id="install.netscape-enterprise.solaris"> <title>Exemple d'installation pour Netscape Enterprise sous Solaris</title> <programlisting>Instructions pour Sun Solaris 2.6 avec Netscape Enterprise Server 3.6From: bhager@invacare.com1. Installez les packages suivants depuis le serveur www.sunfreeware.comou un miroir ad hoc : flex-2_5_4a-sol26-sparc-local gcc-2_95_2-sol26-sparc-local gzip-1.2.4-sol26-sparc-local perl-5_005_03-sol26-sparc-local bison-1_25-sol26-sparc-local make-3_76_1-sol26-sparc-local m4-1_4-sol26-sparc-local autoconf-2.13 automake-1.4 mysql-3.23.24-beta (if you want mysql support) tar-1.13 (GNU tar)2. Assurez-vous que le path inclut bien les dossiers nécessaires : PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin export PATH3. gunzip php-x.x.x.tar.gz (si vous avez une distribution .gz, ou bien allez en 4)4. tar xvf php-x.x.x.tar5. cd ../php-x.x.x6. Pour les étapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspondbien à votre installation du serveur netscape. Sinon, indiquez le chemincorrect : /configure --with-mysql=/usr/local/mysql --with-nsapi=/opt/netscape/suitespot/ --enable-track-vars --enable-libgcc7. make8. make install </programlisting> </example> Après avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires. </para> <para> D'abord, vous devez ajouter des chemins dans la variable LD_LIBRARY_PATH pour que PHP trouve toutes les librairies partagées. Le mieux est de le faire dans le script de démarrage de votre serveur Netscape. Les utilisateurs Windows peuvent probablement ignorer cette étape. Le script de démarrage est situé dans : <filename class="directory">/path/to/server/https-servername/start</filename> </para> <para> Vous pouvez aussi avoir besoin d'éditer les fichiers de configuration qui sont situés dans : <filename class="directory">/path/to/server/https-servername/config/</filename>. </para> <example id="install.netscape-enterprise.configure"> <title> Exemple de configuration pour Netscape Enterprise </title> <programlisting>Instructions de configuration for Netscape Enterprise ServerFrom: bhager@invacare.com1. Ajoutez les lignes suivantes dans mime.types: type=magnus-internal/x-httpd-php exts=php2. Ajoutez les lignes suivantes dans obj.conf. shlib peut dépendre devotre OS, pour Unix c'est quelque chose de proche de/opt/netscape/suitespot/bin/libphp4.so. Il est conseillé de placer les lignes suivantes après les lignes de types mime : Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="/php4/nsapiPHP4.dll" Init fn=php4_init errorString="Failed to initialize PHP!" <object name="default"> . . . .#NOTE La ligne suivante doit être placée après toutes .#les lignes 'ObjectType' .# et avant les lignes 'AddLog' Service fn="php4_execute" type="magnus-internal/x-httpd-php" . . </Object> <Object name="x-httpd-php"> ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute </Object> Configuration d'authentification L'authentification PHP ne peut pas être utilisée avec d'autre authentification. TOUTES LES FORMES D'AUTHENTIFICATION SONT PASSEES AU SCRIPT PHP. Pour configurer l'authentification PHP pour le serveur entier, ajoutez la ligne suivante : <Object name="default"> AuthTrans fn=php4_auth_trans . . . . </Object> Pour configurer l'authentification PHP pour un dossier, ajoutez la ligne suivante : <Object ppath="d:\path\to\authenticated\dir\*"> AuthTrans fn=php4_auth_trans </Object> </programlisting> </example> <para> Si vous utilisez Netscape Enterprise 4.x, alors, il faut utiliser ceci : </para> <example> <title>Exemple de configuration pour Netscape Enterprise 4.x</title> <programlisting> Placez ces lignes après les types MIME, et tout le reste ressemble à l'exemple ci-dessus :From: Graeme Hoose (GraemeHoose@BrightStation.com)Init fn="load-modules" shlib="/path/to/server4/bin/libphp4.so" funcs="php4_init,php4_close,php4_execute,php4_auth_trans"Init fn="php4_init" LateInit="yes" </programlisting> </example> </sect2> <sect2 id="install.netscape.windows"> <title>Installer PHP avec Netscape Enterprise sous Windows</title> <para> Pour installer PHP sous forme de CGI (pour Netscape Enterprise Server, iPlanet, peut être Fastrack), suivez ces instructions : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier où vous avez installé windows) </simpara> </listitem> <listitem> <para> Faîtes un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes : <programlisting>assoc .php=PHPScriptftype PHPScript=c:\php\php.exe %1 %* </programlisting> </para> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créez un dossier shellcgi et supprimez le aussitôt (cette opération créee 5 lignes importantes dans le fichier obj.conf et permet au serveur de gérer les scripts CGI). </simpara> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créeez un nouveau type MIME (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </simpara> </listitem> <listitem> <simpara> Recommencez pour chaque instance de serveur web qui devra exécuter PHP. </simpara> </listitem> </itemizedlist> <para> Plus de détails sur la configuration de PHP comme CGI sont disponibles à <ulink url="&url.netscape.cgi;">&url.netscape.cgi;</ulink> </para> <para> Pour installer PHP avec l'interface NSAPI (pour Netscape Enterprise Server, iPlanet, peut-être Fastrack), faîtes ceci : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier où vous avez installé windows) </simpara> </listitem> <listitem> <para> Faîtes un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes : <programlisting>assoc .php=PHPScriptftype PHPScript=c:\php\php.exe %1 %* </programlisting> </para> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créeez un nouveau type MIME (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </simpara> </listitem> <listitem> <para> Stoppez votre serveur web et éditez le fichier <filename>obj.conf</filename>. A la fin de la section Init, placez ces deux lignes (obligatoirement après l'init de type MIME) : <programlisting>Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"Init fn="php4_init" errorString="Failed to initialise PHP!" </programlisting> </para> </listitem> <listitem> <para> Dans la section <literal>< Object name="default" ></literal>, placez cette ligne, obligatoirement après toutes les lignes 'ObjectType' et avamt les lignes 'AddLog' : <programlisting>Service fn="php4_execute" type="magnus-internal/x-httpd-php" </programlisting> </para> </listitem> <listitem> <para> A la fin du fichier, créez un nouvel objet appelé <literal>x-httpd-php</literal>, en insérant ces lignes : <programlisting>+<Object name="x-httpd-php">+ObjectType fn="force-type" type="magnus-internal/x-httpd-php"+Service fn=php4_execute+</Object> </programlisting> </para> </listitem> <listitem> <simpara> Redémarrez votre serveur web, et validez les modifications </simpara> </listitem> <listitem> <simpara> Recommencez pour chaque serveur qui doit utiliser PHP. </simpara> </listitem> </itemizedlist> <para> Plus ded détails sur la configiration de PHP en filtre NSAPI sont disponibles : <ulink url="&url.netscape.nsapi;">&url.netscape.nsapi;</ulink> </para> </sect2> </sect1> <sect1 id="install.omnihttpd"> <title>Installation OmniHTTPd</title> <para> Cette section contient des notes et conseils spécifiques à OmniHTTPd. </para> <sect2 id="install.omnihttpd.windows"> <title>OmniHTTPd 2.0b1 et plus récent pour Windows</title> <simpara> Vous devez compléter les étapes suivantes pour configurer PHP avec OmniHTTPd. Ceci est une installation sous forme de CGI. SAPI est supporté par OmniHTTPd, mais des tests ont montrés que ce n'est pas stable d'utiliser PHP en module ISAPI avec OmniHTTPd. </simpara> <para> <itemizedlist> <listitem> <para> Step 1: Installez Omni server. </para> </listitem> <listitem> <para> Step 2: Faites un clic-droit sur l'icone bleue d'OmniHTTPd, sur le bureau, et sélectionnez <literal>Properties</literal> </para> </listitem> <listitem> <para> Step 3: Cliquez sur <literal>Web Server Global Settings</literal> </para> </listitem> <listitem> <para> Step 4: Dans l'onglet 'External', entrez: <literal>virtual = .php | actual = c:\path-to-php-dir\php.exe</literal>, et utilisez le bouton "Add". </para> </listitem> <listitem> <para> Step 5: Dans l'onglet <literal>Mime</literal>, entrez: <literal>virtual = wwwserver/stdcgi | actual = .php</literal> et utilisez le bouton "Add". </para> </listitem> <listitem> <para> Step 6: Cliquez sur <literal>OK</literal>. </para> </listitem> </itemizedlist> </para> <simpara> Réptez les étapes 2 à 6 pour chaque extension que vous voulez associer à PHP. </simpara> <note> <para> Certains packages OmniHTTPd sont livrés avec le support PHP déjà intégré. Vous pouvez choisir au moment de la configuration de faire un paramétrage poussé et de décocher le support PHP. Nous vous conseillons d'utiliser les dernières versions de PHP. Certains serveurs OmniHTTPd sont encore livrés avec des versions beta de PHP : il est recommandé de ne pas les installer, mais d'installer votre propre version. Si le serveur est déjà sur votre machine, vous pouvez utiliser le bouton "Replace" dans les étapes 4 et 5 pour en choisir un nouveau et à jour. </para> </note> </sect2> </sect1> <sect1 id="install.oreilly"> <title>Installation Oreilly Website Pro Server</title> <para> Cette section contient les conseils d'installation spécifiques à Oreilly Website Pro. </para> <sect2 id="install.oreilly.windows"> <title>Oreilly Website Pro 2.5 et plus récent pour Windows</title> <simpara> Cette liste décrit comment installer PHP comme CGI exécutable ou module ISAPI avec Oreilly Website Pro sous Windows. </simpara> <para> <itemizedlist> <listitem> <para> Editez les "Server Properties" et sélectionnez l'onglet "Mapping". </para> </listitem> <listitem> <para> Dans la "List" sélectionnez "Associations" et entrez le nom de l'extension voulue (".php") et le chemin jusqu'à l'exécutable (ex. c:\php\php.exe) ou la DLL ISAPI (ex. c:\php\sapi\php4isapi.dll). </para> </listitem> <listitem> <para> Sélectionnez "Content Types", ajoutez la même extension "<literal>.php</literal>" et entrez le "content type". Si vous choisissez la forme CGI, entrez "wwwserver/shellcgi"; si vous choisissez la forme module ISAPI, entrez "wwwserver/isapi" (sans les guillemets). </para> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.xitami"> <title>Installation Xitami</title> <para> Cette section contient les conseils d'installation spécifiques à Xitami. </para> <sect2 id="install.xitami.windows"> <title>Xitami pour Windows</title> <simpara> Cette liste décrit comment installer PHP comme CGI exécutable ou module ISAPI avec Xitami sous Windows. </simpara> <para> <itemizedlist> <listitem> <para> Assurez-vous que le serveur web fonctionne, et allez dans la console d'administration du serveur (généralement <literal>http://127.0.0.1/admin</literal>), puis cliquez sur "Configuration". </para> </listitem> <listitem> <para> Naviguez dans les "Filters", et ajoutez l'extension que vous souhaitez (souvent ".php") dans le champs "File extensions". </para> </listitem> <listitem> <para> Dans la commande "Filter", ajoutez le nom et le chemin de votre exécutable PHP (souvent <filename>c:\php\php.exe</filename>). </para> </listitem> <listitem> <para> Cliquez sur le bouton "Save". </para> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.otherhttpd"> <title>Autres serveurs web</title> <para> PHP peut être compilé pour fonctionner avec de nombreux autres serveurs web. Reportez-vous à <link linkend="install.configure.servers">Options particulières aux serveurs web</link> pour une liste complète des options de configuration. Les exécutables PHP CGI sont compatibles avec la majorité des serveurs supportant les interfaces CGI. </para> </sect1> <sect1 id="install.problems"> <title>Des problèmes?</title> <sect2> <title>Lisez la FAQ</title> <simpara> Certains problèmes sont récurrents : les plus communs sont listés dans la FAQ PHP, disponible à <ulink url="&url.php.faq;">&url.php.faq;</ulink>. N'envoyez pas de rapport de bug ou de courriers personnels sur la liste de diffusion. Le système de bug est aussi capable de traiter les suggestions. </simpara> </sect2> <sect2 id="install.bugreports"> <title>Rapports de Bug</title> <simpara> Si vous pensez avoir trouvé un bug dans PHP, n'oubliez pas de le signaler. L'équipe de développement PHP ne le connaît peut être pas, et si vous ne le signaler pas, vos chances de voir le bug corrigé sont nulles. Vous pouvez rapporter des bugs grâce au système de suivi, accessible à <ulink url="&url.php.bugs;">&url.php.bugs;</ulink>. </simpara> <simpara> Lisez les <ulink url="&url.php.bugs.howtoreport;">guides</ulink> (Les bugs : ce qu'il faut faire, et ce qu'il ne faut pas faire) avant d'envoyer n'importe quel rapport! </simpara> </sect2> <sect2 id="install.otherproblems"> <title>Autres problèmes</title> <simpara> Si vous êtes complètement bloqués, quelqu'un sur la liste de diffusion PHP pourra probablement vous aider. Essayez de consulter les archives, au cas où quelqu'un aurait déjà rencontré votre problème. Les archives sont toujours accessibles à : <ulink url="&url.php;">&url.php;</ulink>. Pour souscrire à la liste de diffusion, envoyez un mail vide à <ulink url="mailto:&email.php.install.subscribe;">&email.php.install.subscribe;</ulink>. L'adresse de la mailing liste : <literal>&email.php.install;</literal>. </simpara> <simpara> Si vous voulez obtenir de l'aide sur la liste de diffusion PHP, essayez d'être concis et clair, et pensez à donner tous les détails sur votre environnement (OS, version de PHP, serveur web, CGI ou module, <link linkend="ini.safe-mode">safe mode</link>...), et n'hésitez pas à envoyer suffisamment de code pour que nous puissions reproduire l'erreur. </simpara> </sect2> </sect1></chapter><!-- Keep this comment at the end of the fileLocal variables:mode: sgmlsgml-omittag:tsgml-shorttag:tsgml-minimize-attributes:nilsgml-always-quote-attributes:tsgml-indent-step:1sgml-indent-data:tindent-tabs-mode:nilsgml-parent-document:nilsgml-default-dtd-file:"../../manual.ced"sgml-exposed-tags:nilsgml-local-catalogs:nilsgml-local-ecat-files:nilEnd:--> \ No newline at end of file +<?xml version="1.0" encoding="iso-8859-1"?><!-- $Revision: 1.37 $ --><chapter id="installation"> <title>Installation</title> &install.general; &install.unix; &install.linux; &install.hpux; &install.solaris; &install.openbsd; &install.macosx; &install.configure; &install.windows; &install.apache; &install.apache2; &install.commandline; &install.fhttpd; &install.caudium; &install.iis; &install.iplanet; &install.omnihttpd; &install.oreilly; &install.xitami; &install.otherhttpd; &install.problems;</chapter><!-- Keep this comment at the end of the fileLocal variables:mode: sgmlsgml-omittag:tsgml-shorttag:tsgml-minimize-attributes:nilsgml-always-quote-attributes:tsgml-indent-step:1sgml-indent-data:tindent-tabs-mode:nilsgml-parent-document:nilsgml-default-dtd-file:"../../manual.ced"sgml-exposed-tags:nilsgml-local-catalogs:nilsgml-local-ecat-files:nilEnd:--> \ No newline at end of file Index: phpdoc-fr/chapters/intro.xml diff -u phpdoc-fr/chapters/intro.xml:1.15 phpdoc-fr/chapters/intro.xml:1.16 --- phpdoc-fr/chapters/intro.xml:1.15 Wed Dec 12 15:48:48 2001 +++ phpdoc-fr/chapters/intro.xml Sat Jan 18 11:11:35 2003 @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.15 $ --> +<!-- $Revision: 1.16 $ --> <chapter id="introduction"> <title>Introduction</title> <sect1 id="intro-whatis"> <title>Qu'est ce que PHP?</title> <simpara> - PHP (officiellement "PHP: Hypertext Preprocessor") est un langage - de script HTML, qui fonctionne côté serveur. + PHP (officiellement, ce sigle est un acronyme récursif pour + "PHP: Hypertext Preprocessor") est un langage de scripts généraliste + et Open Source, spécialement conçu pour le développement d'applications + web. Il peut être intégré facilement au HTML. </simpara> <para> Réponse simple et claire, mais qu'est ce que cela veut dire? Un exemple : @@ -15,16 +17,20 @@ <example> <title>Exemple d'introduction</title> <programlisting role="php"> -<html> - <head> - <title>Exemple</title> - </head> - <body> - <?php - echo "Bonjour, je suis un script PHP!"; - ?> - </body> -</html> +<![CDATA[ +<html> + <head> + <title>Exemple</title> + </head> + <body> + + <?php + echo "Bonjour, je suis un script PHP!"; + ?> + + </body> +</html> +]]> </programlisting> </example> </para> @@ -48,26 +54,117 @@ Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques. </para> + <para> + Le grand avantage de &php; est qu'il est extrêmement simple pour les + néophytes, mais offre des fonctionnalités avancées pour les + experts. Ne craignez pas de lire la longue liste de fonctionnalités + &php;. Vous pouvez vous plonger dans le code, et en quelques + instants, écrire des scripst simples. + </para> + <para> + Bien que le développement de &php; soit orienté vers la programmation + pour les sites web, vous pouvez en faire bien d'autres usages. + Lisez donc la section suivante : + <link linkend="intro-whatcando">Que peut faire PHP?</link>. + </para> </sect1> + <sect1 id="intro-whatcando"> <title>Que peut faire PHP?</title> <para> - Le langage PHP possède les même fonctionnalités que - les autres langages permettant d'écrire des scripts CGI, comme - collecter des données, générer dynamiquement des - pages web ou bien envoyer et recevoir des cookies. - </para> - <para> - La plus grande qualité et le plus important avantage du langage PHP est le - support d'un grand nombre de bases de données. Réaliser une - page web dynamique interfacant une base de donnés est extrêmement - simple. Les bases de données suivantes sont supportées par PHP: + Tout. &php; est principalement conçu pour servir de + langage de script coté serveur, ce qui fait qu'il est capable + de réaliser tout ce qu'un script CGI quelconque peut faire, comme + collecter des données de formulaire, générer du contenu dynamique, + ou gérer des cookies. Mais &php; peut en faire bien plus. + </para> + <para> + Il y a trois domaines différents où &php; peut s'illustrer. + <itemizedlist> + <listitem> + <simpara> + Langage de script coté serveur. C'est l'utilisation la plus + traditionnelle, et aussi le principal objet de &php;. + Vous aurez besoin de trois composants pour l'exploiter : + un analyseur &php; (CGI ou module serveur), un serveur + web et un navigateur web. Vous devez exécuter le serveur + web en corrélation avec &php;. Vous pouvez accéder + au programme &php; avec l'aide du navigateur web. Voyez + la section <link linkend="installation">d'installation</link> + pour plus d'informations. + </simpara> + </listitem> + <listitem> + <simpara> + Langage de programmation en ligne de commande. Vous pouvez + écrire des scripts &php; et l'exécuter en ligne de commande, + sans l'aide du serveur web et d'un navigateur. Il vous suffit + de disposer de l'exécutable &php;. Cette utilisation est idéale + pour les scripts qui sont exécutés régulièrement (avec un cron + sous Unix ou Linux), ou un Task Scheduler (sous Windows). Ces scripts + peuvent aussi être utilisé pour réaliser des opérations sur des + fichiers texte. Voyez la section sur l'utilisation de &php; en + <link linkend="features.commandline">ligne de commande</link> + pour plus d'informations. + </simpara> + </listitem> + <listitem> + <simpara> + Ecrire des applications graphiques. &php; n'est probablement + pas le meilleur langage pour écrire des applications + graphiques, mais si vous connaissez bien &php; et que + vous souhaitez exploiter des fonctionnalités avancées + dans vos applications clientes, vous pouvez utiliser + PHP-GTK pour écrire de tels programmes. Vous avez aussi la + possibilité d'écrire des applications très portables + avec ce langage. PHP-GTK est une extension de &php;, qui + n'est pas fournie dans la distribution de base. Si vous êtes + interessé par PHP-GTK, visitez + <ulink url="&url.php.gtk;">son site web</ulink>. + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + &php; est utilisable sur la majorité des systèmes d'exploitation, comme + Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), + Microsoft Windows, Mac OS X, RISC OS et d'autres encore. + &php; supporte aussi la plus part des serveurs web actuels : + Apache, Microsoft Internet Information Server, + Personal Web Server, Netscape et iPlanet servers, Oreilly + Website Pro server, Caudium, Xitami, OmniHTTPd et beaucoup d'autres + encore. Pour la majorité des serveurs web, &php; fonctionne comme + module, et pour d'autres, il fonctionne comme exécutable CGI. + </para> + <para> + Avec &php; vous avez le choix de votre système d'exploitation et + de votre serveur web. De plus, vous avez aussi le choix d'utiliser + la programmation procédurale ou objet, ou encore un mélange des + deux. Bien que le support de la couche objet ne soit pas très + standard, de nombreuses librairies et applications d'envergure + (y compris la bibliothèque PEAR) sont écrites en langage objet. + </para> + <para> + Avec &php;, vous n'êtes pas limité à la production de code + HTML. Les capacités de &php; lui permettent de générer aussi + bien des images, des fichiers PDF, des animations Flash + (avec l'aide des librairies libswf et Ming), généré à la + volée. Vous pouvez aussi générer facilement du texte, du code + XML ou XHTML. &php; génère tous ces fichiers, et les sauve dans + le système de fichier, ou bien les envoie directement au navigateur + web. + </para> + <para> + Une des grandes forces de &php; est le support de nombreuses bases + de données. crire une page web exploitant une base de données est + extrêmement simple. Les bases de données suivantes sont toutes supportées + par &php; : <blockquote> <simplelist columns="3"> <member>Adabas D</member> <member>dBase</member> <member>Empress</member> - <member>FilePro (lecutre seule)</member> + <member>FilePro (read-only)</member> <member>Hyperwave</member> <member>IBM DB2</member> <member>Informix</member> @@ -78,95 +175,57 @@ <member>Direct MS-SQL</member> <member>MySQL</member> <member>ODBC</member> - <member>Oracle (OCI7 et OCI8)</member> + <member>Oracle (OCI7 and OCI8)</member> <member>Ovrimos</member> <member>PostgreSQL</member> - <member>Sesam</member> <member>Solid</member> <member>Sybase</member> <member>Velocis</member> <member>Unix dbm</member> </simplelist> </blockquote> + Il existe aussi des couches d'abstraction de base de données comme DBX + qui vous permettent de vous connecter de manière transparente à toute + base de données supportée par cette extension. De plus, &php; supporte + ODBC, ce qui vous permet de vous connecter à toute autre base de données + qui supporte ce standard. + </para> + <para> + &php; supporte de nombreux protocoles comme par exemple + LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (sous Windows) et + encore d'autres. Vous pouvez ouvrir des sockets réseau, + et intéragir avec n'importe quel autre protocole. &php; supporte + le format complexe WDDX, qui permet de communiquer entre tous + les langages web. En terme d'interconnexion, &php; supporte aussi + les instanciations d'objets Java, et les utilise de manière transparente + comme objets intégrés. Vous pouvez aussi exploiter les objets + distants avec CORBA. + </para> + <para> + &php; dispose de fonctionnalités extrêmement utiles pour le + traitement de texte, allant des expressions régulières + POSIX étendue ou Perl aux traitements des fichiers XML, + avec les standards SAX et DOM. Vous pouvez utiliser les + transformations XSLT. + </para> + <para> + En commerce électronique, vous trouverez des outils de paiement + intégrés comme Cybercash, CyberMut, VeriSign Payflow + Pro et CCVS, pour réaliser des paiements en ligne. + </para> + <para> + Enfin, &php; dispose d'extensions très pratiques comme + le moteur de recherche mnoGoSearch, la passerelle avec + IRC, des outils de compressions (gzip, bz2) et de conversions + calendaires, de traduction... + </para> + <para> + Comme vous le voyez, cette page n'est pas assez grande pour lister + toutes les puissantes fonctionnalités de &php;. Lisez la section + sur <link linkend="installation">l'installation de &php;</link> + et étudiez la <link linkend="funcref">liste de fonctions</link> + pour avoir plus de détails sur toutes ces technologies. </para> - <para> - Le langage PHP inclus le support des services utilisant les protocoles tels que - <acronym>IMAP</acronym>, <acronym>SNMP</acronym>, <acronym>NNTP</acronym>, - <acronym>POP3</acronym> ou encore <acronym>HTTP</acronym>. Vous - pouvez également ouvrir des connexions et interagir en utilisant d'autres - protocoles. - </para> -<!-- - <figure> - <title>Internal Structure</title> - <graphic fileref="../images/php3_internal_structure.gif"/> - </figure> - <figure> - <title>Request Scheme</title> - <graphic fileref="../images/php3_request_scheme.gif"/> - </figure> ---> - </sect1> - <sect1 id="intro-history"> - <title>La genèse du PHP</title> - <simpara> - Le langage PHP a été conçu durant l'automne 1994 par - Rasmus Lerdorf. Les premières versions (qui restèrent - privées) étaient utilisées afin de savoir qui venait - consulter son CV en ligne. La première version publique fut - disponible au début de l'année 1995. Elle fut connue - sous le nom de "Personal Sommaire Page Tools". Elle était - composée d'un analyseur extrêmement simple qui ne reconnaissait - que quelques macros spéciales et d'un petit nombre d'utilitaires - couramment utilisés dans les pages web. Un livre d'or, un compteur, - etc... L'analyseur fut réécrit durant l'été 1995 - et fut appelé PHP/FI Version 2. FI etaient les initiales d'un autre - package que Rasmus avait écrit qui interprétait les - formulaires HTML. C'est alors qu'il combina le "Personnal Sommaire - Page tools" avec le "Form Interpreter" et il y ajouta le support de - mSQL: c'est comme cela que naquît PHP/FI. PHP/FI grandit de - manière spectaculaire et de nombreuses personnes - commencèrent à contribuer à son amélioration. - </simpara> - <simpara> - Il est relativement peu aisé de donner des statistiques, mais on - estime que PHP/FI est utilisé sur 15 000 sites web dans le monde - entier, fin 1996. Ce chiffre atteint 50 000 durant l'été - 1997. L'été 1997 voit aussi un profond changement dans le - développement du PHP: d'un projet personnel (celui de Ramsus), - on passe alors à une projet d'équipe. L'analyseur fut de - nouveau réécrit par Zeev Suraski et Andi Gutmans et ce nouvel - analyseur forma la base de la version 3 du PHP. Une grande partie du code de - PHP/FI fut complètement réécrit alors que l'autre partie - fut portée pour donner le PHP Version 3. La dernière version de PHP - (PHP 4) utilise le moteur d'analyse <ulink url="&url.zend;">Zend</ulink> - pour atteindre de nouveaux niveaux de performance, et supporter - un nombre encore plus grand de librairies et extensions. Il tourne - de manière native sur tous les serveurs web les plus répandus. - </simpara> - <simpara> - Aujourd'hui (Janvier 2001) PHP 3 ou PHP 4 sont distribués - avec de nombreux produits commerciaux comme "C2's StrongHold web server" et - "RedHat Linux" et il est admis (d'après les chiffres de - <ulink url="&url.netcraft;">NetCraft</ulink>, et leurs - <ulink url="&url.netcraft-survey;">statistiques Netcraft Web Server Survey</ulink>) - que le PHP est utilisé sur 5 100 000 sites web dans le monde entier. Pour - comparaison, ce chiffre est légèrement supérieur au nombre de serveurs - tournant sous Microsoft Information server (IIS) : 5.03 millions. - </simpara> -<!-- - <figure> - <title>NetCraft Webserver Survey</title> - <graphic fileref="&url.php.stats;"/></graphic> - </figure> ---> - <simpara> - Enfin, à l'heure où ce document est rédigé, - la nouvelle génération du PHP est en cours de création. - Elle utilisera les qualités de <ulink url="&url.zend;">Zend</ulink> - pour améliorer les performances et améliorera le support des - serveurs web autres que Apache. - </simpara> </sect1> </chapter> <!-- Keep this comment at the end of the file Index: phpdoc-fr/chapters/security.xml diff -u phpdoc-fr/chapters/security.xml:1.19 phpdoc-fr/chapters/security.xml:1.20 --- phpdoc-fr/chapters/security.xml:1.19 Wed Dec 12 15:48:48 2001 +++ phpdoc-fr/chapters/security.xml Sat Jan 18 11:11:35 2003 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.19 $ --> +<!-- $Revision: 1.20 $ --> <chapter id="security"> <title>Sécurité</title> <simpara> @@ -137,7 +137,7 @@ </simpara> <simpara> Le "path information" dans l'url, situé juste après le nom - du binaire PHP, <filename role="uri">/secret/doc.html</filename> est + de l'exécutable PHP, <filename role="uri">/secret/doc.html</filename> est utilisé par convention pour spécifier le nom du fichier qui doit être ouvert et interprété par le programe <acronym>CGI</acronym>. Habituellement, des directives de configuration @@ -395,14 +395,16 @@ <example> <title>Une erreur de vérification de variable conduit à ...</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier dans un dossier racine $username = $HTTP_POST_VARS['user_submitted_name']; $homedir = "/home/$username"; $file_to_delete = "$userfile"; unlink ($homedir/$userfile); echo "$file_to_delete a été effacé!"; -?> +?> +]]> </programlisting> </example> Etant donné que le nom de l'utilisateur est à fournir, des intrus peuvent @@ -415,7 +417,8 @@ <example> <title>Une attaque du système de fichiers!</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier n'importe où sur le disque dur, // où l'utilisateur PHP a accès. Si PHP a un accès root : $username = "../etc/"; @@ -423,7 +426,8 @@ $file_to_delete = "passwd"; unlink ("/home/../etc/passwd"); echo "/home/../etc/passwd a été effacé!"; -?> +?> +]]> </programlisting> </example> Il y a deux mesures primordiales à prendre pour éviter @@ -445,7 +449,8 @@ <example> <title>Une vérification renforcée</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // Efface un fichier sur le disque où l'utilisateur à le droit d'aller $username = $HTTP_SERVER_VARS['REMOTE_USER']; // utilise un mécanisme d'authentification @@ -458,7 +463,8 @@ fputs ($fp, $logstring); fclose($fp); echo "$file_to_delete a été éffacé!"; -?> +?> +]]> </programlisting> </example> Cependant, même cette technique n'est pas sans faille. @@ -469,14 +475,16 @@ <example> <title>Vérification de noms de fichier sécurisée</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php $username = $HTTP_SERVER_VARS['REMOTE_USER'];; $homedir = "/home/$username"; if (!ereg('^[^./][^/]*$', $username)) die('Erreur de nom de fichier'); //meurt, ne SURTOUT pas traiter! //etc... -?> +?> +]]> </programlisting> </example> </para> @@ -489,8 +497,440 @@ politique qui interdit TOUT sauf ce que vous autorisez. </para> </sect1> + <sect1 id="security.database"> + <title>Sécurité des bases de données</title> + <simpara> + De nos jours, les bases de données sont des composants incontournables + des serveurs web et des applications en ligne, qui fournissent du contenu + dynamique. Des données secrètes ou critiques peuvent être stockées dans les + bases de données : il est donc important de les protéger efficacement. + </simpara> + <simpara> + Pour lire ou stocker des informations, vous devez vous connecter au serveur + de base de données, envoyer une requête valide, lire le résultat et + refermer la connexion. De nos jours, le langage le plus courant pour ce + type de communication est le langage SQL (Structured Query Language). Voyez comment + un pirate peut + <link linkend="security.database.sql-injection">s'introduire dans une requête SQL</link>. + </simpara> + <simpara> + Comme vous pouvez le réaliser, &php; ne peut pas protéger vos bases de données + pour vous. La section suivante vous introduira aux notions de base pour protéger + vos bases de données, lors de la programmation de vos scripts. + </simpara> + <simpara> + Gardez bien cette règle simple en tête : la défense se fait par couches. + Plus vous ajouterez de tests pour protéger votre base, plus faible sera la + probabilité de réussite d'un pirate. Ajoutez à cela une bon schéma de base + de données, et vous aurez une application réussie. + </simpara> + + <sect2 id="security.database.design"> + <title>Schéma de base de données</title> + <simpara> + La première étape est de créer une base de données, à moins que vous ne + souhaitiez utiliser une base de données déjà créée. Lorsque la base + de données est créée, un utilisateur propriétaire en est responsable. + Généralement, seul le propriétaire (et le super utilisateur) peuvent + intervenir avec les tables de cette base, et il faut que ce dernier + donne des droits à tous les intervenants qui auront à faire dans cette + base. + </simpara> + <simpara> + Les applications ne doivent jamais se connecter au serveur de + base de données sous le nom du propriétaire ou de l'administrateur, + car ces utilisateurs ont des droits très importants, et pourront + exécuter n'importe quelle requête, comme par exemple la + modification de tables, l'effacement de lignes ou même encore, + la destruction de la base. + </simpara> + <simpara> + Vous pouvez créer différents utilisateurs de base de données pour + chaque aspect de votre application, avec des droits limités aux + seules actions planifiées. Il faut alors éviter que le même utilisateur + dispose des droits de plusieurs cas d'utilisation. Cela permet que + si des intrus obtiennent l'accès à la base avec l'un de ces jeux + de droits, il ne pourra pas affecter toute l'application. + </simpara> + <simpara> + Il est recommandé de ne pas implémenter toute la logique fonctionnelle + dans l'application web (c'est à dire dans vos scripts), mais d'en + reporter une partie dans la base en utilisant les triggers, vues et + règles. Si le système évolue, les nouvelles versions vous feront réécrire + toute la logique et donc tous vos scripts. De plus, l'utilisation de + trigger permet de gérer de manière transparente des données, et + fournit des indications pour déboguer votre application. + </simpara> + </sect2> + + <sect2 id="security.database.connection"> + <title>Connexions au serveur de base de données</title> + <simpara> + Il est recommandé d'établit des connexions au serveur avec le + protocole SSL, pour chiffrer les échanges clients/serveur, afin + d'améliorer la sécurité. Vous pouvez aussi utiliser un client + SSH pour chiffrer la connexion entre les clients et le serveur + de base de données. Si l'une de ces deux protections est + mise en place, il sera difficile de surveiller votre trafic et + de comprendre les informations échangées. + </simpara> + <!--simpara> + If your database server native SSL support, consider to use <link + linkend="ref.openssl">OpenSSL functions</link> in communication between + PHP and database via SSL. + </simpara--> + </sect2> + + <sect2 id="security.database.storage"> + <title>Modèle de stockage avec chiffrement</title> + <simpara> + Les protocoles SSL/SSH protègent les données qui circulent entre + le serveur et le client, mais SSL/SSH ne protègent pas les données + une fois dans la base. SSL est un protocole en ligne. + </simpara> + <simpara> + Une fois que le pirate a obtenu l'accès direct à votre base de données + (en contournant le serveur web), les données sensibles, stockées dans votre + base sont accessibles directement, à moins que les données de la base + ne soient protégées par la base. Chiffrer les données est une bonne + solution pour réduire cette menace, mais très peut de bases de données + offrent ce type de chiffrement. + </simpara> + <simpara> + Le moyen le plus simple pour contourner ce problème est de créer votre + propre logiciel de chiffrement, et de l'utiliser dans vos scripts &php;. + &php; peut vous aider dans cette tâche grâce aux nombreuses extensions + dont il dispose, comme par exemple + <link linkend="ref.mcrypt">Mcrypt</link> et + <link linkend="ref.mhash">Mhash</link>, qui connaissent un large éventail + de méthodes de chiffrement. Le script &php; va chiffrer les données qui seront + stockées, et les déchiffrer losrqu'elles seront relues. Voyez la suite + pour des exemples d'utilisation de ce chiffrement. + </simpara> + <simpara> + Dans le cas de données vraiment sensibles, si la représentation originale + n'est pas nécessaire (pour affichage, ou comparaison), utiliser un + hash est une bonne solution. L'exemple classique est le stockage de + mots de passe dans les bases de données, après les avoir passé au + MD5. Voyez les fonctions <function>crypt</function> et <function>md5</function>. + </simpara> + <example> + <title>Utiliser un mot de passe et MD5</title> + <programlisting role="php"> +<![CDATA[ +// Stockage du mot de passe hashé +$query = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');", + addslashes($username), md5($password)); +$result = pg_exec($connection, $query); + +// interroger le serveur pour comparer le mot de passe soumis +$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';", + addslashes($username), md5($password)); +$result = pg_exec($connection, $query); + +if (pg_numrows($result) > 0) { + echo "Bienvenue, $username!"; +} +else { + echo "Identification échouée pour $username."; +} +]]> + </programlisting> + </example> + </sect2> + + <sect2 id="security.database.sql-injection"> + <title>Injection SQL</title> + <simpara> + De nombreux développeurs web ne sont pas conscients des possibilités + de manipulation des requêtes SQL, et supposent que les requêtes SQL + sont des commandes sûres. Cela signifie qu'une requête SQL est + capable de contourner les contrôles et vérifications, comme par + exemple les identifications et authentifications, et parfois, les requêtes + SQL ont accès aux commandes d'administration. + </simpara> + <simpara> + L'injection SQL directe est une technique où un pirate modifie une requête + SQL existante pour afficher des données cachées, ou pour écraser des + valeurs importantes, ou encore exécuter des commandes dangeureuses pour la + base. Cela se fait lorsque l'appliaction prend les données envoyées par + l'internaute, et l'utilise directement pour contruire une requête SQL. Les + exemples ci-dessous sont basés sur une histoire vraie, malheureusement. + </simpara> + <para> + Avec le manque de vérification des données de l'internaute et la connexion + au serveur avec des droits de super utilisateur, le pirate peut créer des + utilisateurs, et créer un autre super utilisateur. + <example> + <title> + Séparation des résultats en pages, et créer des administrateurs + (PostgreSQL et MySQL) + </title> + <programlisting role="php"> +<![CDATA[ +$offset = argv[0]; // Attention, aucune validation! +$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; +// avec PostgreSQL +$result = pg_exec($conn, $query); +// avec MySQL +$result = mysql_query($query); +]]> + </programlisting> + </example> + Un utilisateur normale clique sur les boutons 'suivant' et 'précédent', + qui sont alors placés dans la variable <varname>$offset</varname>, + encodé dans l'URL. Le script s'attend à ce que la variable + <varname>$offset</varname> est alors un nombre décimal. Cependant, + il est possible de modifier l'URL en ajoutant une nouvelle valeur, + au format URL, comme ceci : + <informalexample> + <programlisting> +<![CDATA[ +// cas de PostgreSQL +0; +insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd) + select 'crack', usesysid, 't','t','crack' + from pg_shadow where usename='postgres'; +-- + +// cas de MySQL +0; +UPDATE user SET Password=PASSWORD('crack') WHERE user='root'; +FLUSH PRIVILEGES; +]]> + </programlisting> + </informalexample> + Si cela arrive, le script va créer un nouveau super utilisateur. + Notez que la valeur <literal>0;</literal> qui sert à terminer la requête + originale et la terminer correctement. + </para> + <note> + <para> + C'est une techinque répandue que de forcer l'analyseur SQL d'ignorer le + reste de la requête, en utilisant les symboles <literal>--</literal> pour + mettre en commentaire. + </para> + </note> + <para> + Un moyen possible pour accéder aux mots de passe est de contourner + la recherche de page. Ce que le pirate doit faire, c'est simplement + voir si une variable du formulaire est utilisée dans la requête, et + si elle est mal gérée. Ces variables peuvent avoir été configurées + dans une page précédente pour être utilisée dans les clauses + <literal>WHERE, ORDER BY, LIMIT</literal> et <literal>OFFSET</literal> des + requêtes <literal>SELECT</literal>. Si votre base de données supporte + les commandes <literal>UNION</literal>, le pirate peut essayer d'ajouter + une requête entière pour lister les mots de passe dans n'importe quelle + table. Utiliser la technique des mots de passe chiffrés est fortement + recommandée. + <example> + <title> + Liste d'articles ... et ajout de mot de passe + </title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT id, name, inserted, size FROM products + WHERE size = '$size' + ORDER BY $order LIMIT $limit, $offset;"; +$result = odbc_exec($conn, $query); +]]> + </programlisting> + </example> + La partie statique de la requête, combinée avec une autre + requête <literal>SELECT</literal>, va révéler les mots de passe : + <example> + <title>Révélation des mots de passe</title> + <programlisting> +<![CDATA[ +' +union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable; +-- +]]> + </programlisting> + </example> + Si cette requête (exploitant les <literal>'</literal> et <literal>--</literal>) + est affectée à une variable utilisée dans + <varname>$query</varname>, l'injection SQL va arriver. + </para> + <para> + Les commandes <literal>UPDATE</literal> sont aussi sujettes à des + attaques de votre base de données. Ces requêtes peuvent aussi introduite + toute une nouvelle requête dans votre commande initiale. Mais en plus, + le pirate peut jouer sur la commande <literal>SET</literal>. Dans ce cas, + il doit connaitre un peu votre base de données. Cela peut se deviner + en examinant les noms de variables dans les formulaires, ou simplement, + en testant les cas les plus classiques. Il n'y a pas beaucoup de conventions + de nommage pour stocker des noms d'utilisateur et des mots de passe. + <example> + <title>Modifier un mot de passe ... et gain de droits!</title> + <programlisting role="php"> +<![CDATA[ +$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';"; +]]> + </programlisting> + </example> + Mais un internaute fourbe peut envoyer une valeur telle que + <literal>' or uid like'%admin%'; --</literal> dans <varname>$uid</varname> + pour modifier le mot de passe utilisateur, ou simplement, utiliser la variable + <varname>$pwd</varname> avec la valeur + <literal>"hehehe', admin='yes', trusted=100 "</literal> (avec l'espace final) pour + obtenir des droist supplémentaires. La requête sera alors devenue : + <example> + <title>Une requête et son injection</title> + <programlisting role="php"> +<![CDATA[ +// $uid == ' or uid like'%admin%'; -- +$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --"; + +// $pwd == "hehehe', admin='yes', trusted=100 " +$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;" +]]> + </programlisting> + </example> + </para> + <para> + C'est un exemple terrible d'acquisition de droits d'administrateur sur un + serveur de base de données. + <example> + <title>Attaque d'un serveur de base de données (MSSQL Server)</title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT * FROM products WHERE id LIKE '%$prod%'"; +$result = mssql_query($query); +]]> + </programlisting> + </example> + Si le pirate injecte la valeur + <literal>a%' exec master..xp_cmdshell 'net user test testpass /ADD' --</literal> + dans la variable <varname>$prod</varname>, alors la requête <varname>$query</varname> + devient : + <example> + <title>Attaque d'un serveur de base de données (MSSQL Server) - 2</title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT * FROM products + WHERE id LIKE '%a%' + exec master..xp_cmdshell 'net user test testpass /ADD'--"; +$result = mssql_query($query); +]]> + </programlisting> + </example> + MSSQL Server exécute les requêtes SQL en lot, y compris la commande + d'ajout d'un nouvel utilisateur à la base de données locale. Si cette + application fonctionnait en tant que <literal>sa</literal> et que le service + MSSQLSERVER disposait de niveau de droits suffisant, le pirate dispose désormais + d'un compte avec accès au serveur. + </para> + <note> + <para> + Certains des exemples ci-dessus sont spécifiques à certains serveurs de + bbase de données. Cela n'empêche pas des attaques similaires d'être possibles + sur d'autres produites. Votre base de données sera alors vulnérable d'une autre + manière. + </para> + </note> + + <sect3 id="security.database.avoiding"> + <title>Techniques de contournement</title> + <simpara> + Vous pouvez prétendre que le pirate doit d'abord obtenir des informations + sur le schéma de la base de données, dans la plus part des cas d'injections. + C'est vrai, mais vous ne saurez jamais comment ni quand ces informations + auront filtrés, et si cela arrive, votre base de données sera en grand + danger. Si vous utilisez une base de données Open Srouce, ou une + base qui est du domaine publique, ou encore un schéma qui appartient + à un système de gestion de contenu ou d'un forum, le pirate peut facilement + se procurer une copie du code que vous utilisez. Cela peut être un + risque potentiel si la base a été mal conçue. + </simpara> + <simpara> + Ces attaques sont généralement basées sur l'exploitation de code qui + n'est pas écrit de manière sécuritaire. N'ayez aucune confiance dans + les données qui proviennent de l'utilisateur, même si cela provient d'un + menu déroulant, d'un champs caché ou d'un cookie. Le premier exemple montre + comment une requête peut causer un désastre. + </simpara> + <itemizedlist> + <listitem> + <simpara> + Ne nous connectez jamais sur une ase de données en tant que super utilisateur + ou propriétaire de la base. Utilisez toujours un utilisateur adapté, avec + des droits très limités. + </simpara> + </listitem> + <listitem> + <simpara> + Vérifiez que les données ont bien le type attendu. &php; dispose + d'un éventail de fonction de validation large, depuis les plus + simples, de la section <link linkend="ref.variables">Variables</link> et + la section <link linkend="ref.ctype">Caractères</link> + (e.g. <function>is_numeric</function>, <function>ctype_digit</function> + respectivement) aux fonctions avancées de + <link linkend="ref.pcre">Expression régulière Perl</link>. + </simpara> + </listitem> + <listitem> + <para> + Si l'application attend une entrée numérique, vérifiez vos données + avec la fonction <function>is_numeric</function>, ou bien modifiez + automatiquement le type avec la fonction <function>settype</function>, + ou encore avec <function>sprintf</function>. + <example> + <title>Une navigation de fiches plus sécuritaire</title> + <programlisting role="php"> +<![CDATA[ +settype($offset, 'integer'); +$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; + +// notez que %d dans la chaîne de format : %s serait inutile +$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;", + $offset); +]]> + </programlisting> + </example> + </para> + </listitem> + <listitem> + <simpara> + Mettez entre guillemet toutes les valeurs non numériques qui sont + passées à la base de données, et protégez-vous des guillemets dans + les valeurs avec la fonction <function>addslashes</function> ou + <function>addcslashes</function>. Voyez + <link linkend="security.database.storage">le premier exemple</link>. + Comme les exemples l'on montré, les guillemets statiques peuvent + être facilement contournés. + </simpara> + </listitem> + <listitem> + <simpara> + N'affichez jamais d'information spécifique à la base, et notamment + des informations concernant le schéma. Voyez aussi la section + <link linkend="security.errors">Rapport d'erreur</link> et le chapitre + <link linkend="ref.errorfunc">Gestion des erreurs</link>. + </simpara> + </listitem> + <listitem> + <simpara> + Vous pouvez avoir des procédures stockées et des curseurs prédéfinis qui + font que les utilisateurs n'ont pas un accès direct aux tables ou vues, + mais cette solution a d'autres impacts. + </simpara> + </listitem> + </itemizedlist> + + <simpara> + A coté de ces conseils, il est recommandé d'enregistrer vos requêtes soit dans + vos scripts soit dans la base elle même, si elle le supporte. Evidemment, + cet enregistrement ne sera pas capable d'empêcher une attaque, mais vous + permettra de retrouver la requête qui a fauté. L'historique n'est pas très utile + par lui même, mais au niveau des informations qu'il contient. Plus vous + avez de détails, mieux c'est. + </simpara> + </sect3> + </sect2> + </sect1> <sect1 id="security.errors"> - <title>Rapport d'erreur</title> + <title>Rapport d'erreurs</title> <para> En terme de sécurité, il y a deux conséquence au rapport d'erreur. D'un coté, cela améliore la sécurité, @@ -507,10 +947,12 @@ <example> <title>Attacque de site avec une page HTML personnalisée</title> <programlisting role="php"> -<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo"> -<input type="hidden" name="username" value="badfoo"> -<input type="hidden" name="password" value="badfoo"> -</form> +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo"> +<input type="hidden" name="username" value="badfoo"> +<input type="hidden" name="password" value="badfoo"> +</form> +]]> </programlisting> </example> </para> @@ -533,11 +975,13 @@ <example> <title>Exploiter des variables classiques de débuggage</title> <programlisting role="php"> -<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1"> -<input type="hidden" name="errors" value="Y"> -<input type="hidden" name="showerrors" value="1"> -<input type="hidden" name="debug" value="1"> -</form> +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1"> +<input type="hidden" name="errors" value="Y"> +<input type="hidden" name="showerrors" value="1"> +<input type="hidden" name="debug" value="1"> +</form> +]]> </programlisting> </example> </para> @@ -589,7 +1033,8 @@ <example> <title>Détecter des variables non protégées avec E_ALL</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($username) { // Non initialisée, ou vérifée avant utilisation $good_login = 1; @@ -598,13 +1043,14 @@ // Si le test ci-dessus échoue, les valeurs n'ont pas été testées fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> </para> </sect1> <sect1 id="security.registerglobals"> - <title>Utilisation des variables HTTP</title> + <title>Utilisation des variables super-globales</title> <para> Une fonctionnalité de PHP qui peut être utilisée pour améliorer la sécurité est de configurer PHP en inactivant l'option @@ -623,7 +1069,8 @@ <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($username) { // attention, cette valeur peut être parasitée via GET/POST/COOKIES $good_login = 1; @@ -632,20 +1079,23 @@ // attention, cette valeur peut être parasitée via GET/POST/COOKIES fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if($HTTP_COOKIE_VARS["username"]){ // ne peut provenir que d'un cookie, corrompu ou pas $good_login = 1; // Impossible à parasiter fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> En utilisant intelligemment ceci, il est même possible @@ -657,7 +1107,8 @@ <example> <title>Détection de corruption de variables</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($HTTP_COOKIE_VARS['username'] && !$HTTP_POST_VARS['username'] && !$HTTP_GET_VARS['username'] ) { @@ -669,7 +1120,8 @@ echo "Problème de sécurité, l'administrateur est alerté."; exit; } -?> +?> +]]> </programlisting> </example> Bien entendu, inactiver l'option register_globals ne signifie pas @@ -690,7 +1142,8 @@ <example> <title>Utilisation dangereuse de variables</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier à la racine d'un utilisateur... ou peut être // de quelqu'un d'autre? unlink($evil_var); @@ -699,7 +1152,8 @@ // Exécute une commande triviale... ou ajoute une entrée dans /etc/password ? system($evil_var); exec($evil_var); -?> +?> +]]> </programlisting> </example> Il est vivement recommandé d'examiner minutieusement votre code @@ -756,7 +1210,7 @@ <para> Quelques astuces permettent de masquer PHP, et cela entrave les pirates qui recherchent des faiblesses dans votre système. En - inactivant l'option expose_php dans votre fichier <filename>php.ini</filename>, + inactivant l'option expose_php dans votre fichier &php.ini;, vous pouvez réduire la quantité d'informations disponible. </para> <para> Index: phpdoc-fr/chapters/tutorial.xml diff -u phpdoc-fr/chapters/tutorial.xml:1.2 phpdoc-fr/chapters/tutorial.xml:1.3 --- phpdoc-fr/chapters/tutorial.xml:1.2 Thu Dec 19 22:36:21 2002 +++ phpdoc-fr/chapters/tutorial.xml Sat Jan 18 11:11:35 2003 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <chapter id="tutorial"> <title>Une introduction à PHP</title> @@ -108,6 +108,55 @@ PHP avec <literal>?></literal>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise. </para> + + <note> + <title>Une note sur les éditeurs de texte</title> + <para> + Il existe de nombreux éditeurs de texte et environnement de + développement (IDE) que vous pouvez utiliser pour créer, éditer + et gérer vos applications PHP. Une liste partielle de ces outils + est entretenue à l'adresse <ulink url="&url.phpeditorlist;">PHP Editor's List</ulink>. + Si vous voulez recommander un éditeur, rendez donc une visite + à cette page, et demandez au webmestre d'ajouter votre éditeur. + </para> + </note> + + <note> + <title>Une note sur les traitements de texte</title> + <para> + Les traitements de texte tels que StarOffice Writer, Microsoft Word et + Abiword sont de très mauvais choix pour éditer des scripts PHP. + </para> + + <para> + Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos + scripts, vous devez vous assurer que vous sauvez les fichiers au format + texte seul (PLAIN TEXT) : sinon, &php; ne sera pas capable de lire + et d'exécuter ces scripts. + </para> + </note> + + <note> + <title>Une note sur le Notepad de Windows</title> + <para> + Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez + vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad + ajoute automatiquement une extension .txt à vos fichiers, à moins que + vous ne preniez l'une des mesures suivantes : + </para> + + <para> + Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner + un nom, placez le nom du fichier entre guillemets (i.e. "hello.php"). + </para> + + <para> + Ou bien, vous pouvez cliquer dans le menu 'Text Documents' du dialogue + de sauvegarde, et choisir l'option "All Files". Vous pourrez alors saisir + le nom de votre fichier sans les guillemets. + </para> + </note> + </sect1> <sect1 id="tutorial.useful"> @@ -131,7 +180,8 @@ et une auto-globale. Reportez-vous aux pages du manuel traitant des <link linkend="language.variables.superglobals">Auto-globales</link> (aussi connues sous le noms de super-globales). Ces - variables spéciales ont été introduites en PHP 4.1.0. Auparavant, + variables spéciales ont été introduites en + <ulink url="&url.php.release4.1.0;">&php; 4.1.0</ulink>. Auparavant, il fallait utiliser les variables <varname>$HTTP_*_VARS</varname>, comme par exemple <varname>$HTTP_SERVER_VARS</varname>. Bien qu'obsolètes, ces variables existent toujours. @@ -382,7 +432,8 @@ (qui devaient être indiquées comme globales pour être utilisées dans une fonction ou une méthode) sont obsolètes. Les nouveaux <link linkend="language.variables.superglobals">tableaux auto-globaux</link> - ont été introduit en PHP 4.1.0. Ce sont les variables suivantes : + ont été introduit en + <link linkend="&url.php.release4.1.0;">&php; 4.1.0</link>. Ce sont les variables suivantes : <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> et
Index: phpdoc-fr/chapters/config.xml diff -u phpdoc-fr/chapters/config.xml:1.17 phpdoc-fr/chapters/config.xml:1.18 --- phpdoc-fr/chapters/config.xml:1.17 Thu Nov 21 21:25:38 2002 +++ phpdoc-fr/chapters/config.xml Sat Jan 18 11:11:34 2003 @@ -1,20 +1,44 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.17 $ --> +<!-- $Revision: 1.18 $ --> <chapter id="configuration"> <title>Configuration</title> <sect1 id="configuration.file"> <title>Le fichier de configuration</title> <simpara> Le fichier de configuration (appelé <filename>php3.ini</filename> - dans la version 3.0 du PHP, et simplement <filename>php.ini</filename> + 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 <acronym>HTTP</acronym>. Pour la version <acronym>CGI</acronym> le fichier est lu à chaque invocation. </simpara> <para> + La localisation par défaut du &php.ini; est une option de compilation (voir + <link linkend="faq.installation.phpini">FAQ</link>), mais elle peut être + changée pour les versions <acronym>CGI</acronym> et <acronym>CLI</acronym> avec + l'option de ligne de commande <literal>-c</literal> : voyez le chapitre + sur l'utilisation de &php; en <link linkend="features.commandline">ligne de commande</link>. + Vous pouvez aussi utiliser la variable d'environnement <literal>PHPRC</literal> + pour indiquer des chemins supplémentaires pour rechercher le fichier + &php.ini;. + </para> + <para> + Toutes les directives &php; ne sont pas documentées ci-dessous. Pour une + ligne de toutes les directives, lisez le &php.ini;, qui est très bien + documenté. Vous pouvez jeter un oeil à sa toute dernière version + <ulink url="&url.php.cvs.phpini;">dans le CVS</ulink>. + </para> + <note> + <para> + La valeur par défaut de la directive &php; + <link linkend="ini.register-globals">register_globals</link> a été changée + de <emphasis>on</emphasis> à <emphasis>off</emphasis> en &php; + <ulink url="&url.php.release4.2.0;">4.2.0</ulink>. + </para> + </note> + <para> <example> - <title>Extrait du php.ini</title> + <title>Extrait du &php.ini;</title> <programlisting role="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 @@ -31,6 +55,13 @@ <!-- TODO: add more details about values and expressions --> </example> </para> + </sect1> + + <sect1 id="configuration.changes"> + <title>Comment modfier la configuration</title> + + <sect2 id="configuration.changes.apache"> + <title>Exécuter &php; comme module Apache</title> <simpara> Lorsque vous utilisez le module Apache, vous pouvez aussi changer les paramètres de configurations en utilisant les directives @@ -45,9 +76,8 @@ préfixées par "php3_". </simpara> <simpara> - 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. + Dans la version 4.0, il y a de nombreuses directives + Apache qui vous permettent de modifier la configuration de &php;. </simpara> <variablelist> <varlistentry> @@ -58,9 +88,19 @@ </term> <listitem> <para> - Cette directive affecte une valeur à la variable - spécifiée. - </para> + Modifie la valeur de la directive spécifiée. + Cette instruction n'est utilisable qu'avec les directives + &php; de type PHP_INI_ALL et PHP_INI_PERDIR. + Pour annuler une valeur qui aurait été modifiée au préalable, + utilisez la valeur <literal>none</literal>. + <informalexample> + <programlisting role="ini"> +<![CDATA[ +php_value auto_prepend_file none +]]> + </programlisting> + </informalexample> + </para> </listitem> </varlistentry> <varlistentry> @@ -71,8 +111,10 @@ </term> <listitem> <para> - Cette directive est utilisée pour activer ou + Cette instruction est utilisée pour activer ou désactiver une option. + Cette instruction n'est utilisable qu'avec les directives + &php; de type PHP_INI_ALL et PHP_INI_PERDIR. </para> </listitem> </varlistentry> @@ -84,10 +126,12 @@ </term> <listitem> <para> - 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 <filename>.htaccess</filename>. + Cette instruction affecte une valeur à la variable + spécifiée. + Cette instruction NE peux PAS être utilisée dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configurée avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas être + modifiée en utilisant le fichier <filename>.htaccess</filename>. </para> </listitem> </varlistentry> @@ -101,6 +145,10 @@ <para> Cette directive est utilisée pour activer ou désactiver l'option précédente. + Cette instruction NE peux PAS être utilisée dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configurée avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas être + modifiée en utilisant le fichier <filename>.htaccess</filename>. </para> </listitem> </varlistentry> @@ -109,30 +157,205 @@ <example> <title>Exemple de configuration Apache</title> <programlisting role="ini"> -<IfModule mod_php4.c> +<![CDATA[ +<IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" - php_flag safe_mode on -</IfModule> -<IfModule mod_php3.c> + php_admin_flag safe_mode on +</IfModule> +<IfModule mod_php3.c> php3_include_path ".:/usr/local/lib/php" php3_safe_mode on -</IfModule> +</IfModule> +]]> </programlisting> </example> </para> - <simpara> + <note> + <para> + Les constantes &php; n'existent pas en dehors de &php;. Par + exemple, dans le fichier <filename>httpd.conf</filename>, + vous ne pouvez pas utiliser des constantes &php; telles que + <constant>E_ALL</constant> ou <constant>E_NOTICE</constant> + pour fixer le niveau de <link linkend="ini.error-reporting">rapport d'erreur</link>, + car ces constantes n'ont pas de signification pour Apache, + et seront remplacées par <emphasis>0</emphasis>. + Utilisez les valeurs numériques à la place. + Les valeurs numériques peuvent aussi être + utilisées dans le &php.ini; + </para> + </note> + </sect2> + + <sect2 id="configuration.changes.other"> + <title>Autres interfaces de configuration de &php;</title> + <para> + Indépendamment de l'interface de &php;, vous pouvez modifier + certaines valeurs de la configuration durant l'exécution des + scripts, grâce à la fonction <function>ini_set</function>. + La table suivante fournit une présentation des différents endroits + où la directive peut être modifiée. + </para> + <para> + <table> + <title>Definition des constantes PHP_INI_*</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Constante</entry> + <entry>Valeur</entry> + <entry>Signification</entry> + </row> + </thead> + <tbody> + <row> + <entry>PHP_INI_USER</entry> + <entry>1</entry> + <entry>La directive peut être configurée dans les scripts.</entry> + </row> + <row> + <entry>PHP_INI_PERDIR</entry> + <entry>2</entry> + <entry> + La directive peut être configurée dans le fichier &php.ini;, le + fichier <filename>.htaccess</filename> ou encore dans le fichier + <filename>httpd.conf</filename> + </entry> + </row> + <row> + <entry>PHP_INI_SYSTEM</entry> + <entry>4</entry> + <entry> + La directive peut être configurée dans le fichier &php.ini; ou + dans <filename>httpd.conf</filename> + </entry> + </row> + <row> + <entry>PHP_INI_ALL</entry> + <entry>7</entry> + <entry>La directive peut être modifiée n'importe où.</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> Vous pouvez voir l'état de votre configuration en utilisant la fonction <function>phpinfo</function>. Vous pouvez aussi accéder aux valeurs de votre configuration de manière - individuelle en utilisant la fonction <function>get_cfg_var</function>. - </simpara> - <sect2 id="ini.sect.general"> - <title>Directives de configuration générale</title> + individuelle en utilisant les fonctions + <function>ini_get</function> or <function>get_cfg_var</function>. + </para> + </sect2> + </sect1> + + <sect1 id="configuration.directives"> + <title>Directives de configuration</title> + + <sect2 id="ini.sect.httpd-options"> + <title>Options Httpd</title> + <para> + <table> + <title>Options Httpd</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>async_send</entry> + <entry>"0"</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + </para> + </sect2> + + <sect2 id="ini.sect.language-options"> + <title>Options du langage</title> + <para> + <table> + <title>Options du language</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>short_open_tag</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>asp_tags</entry> + <entry>Off</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>precision</entry> + <entry>"14"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>y2k_compliance</entry> + <entry>Off</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>allow_call_time_pass_reference</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>expose_php</entry> + <entry>On</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> <variablelist> + <varlistentry id="ini.short-open-tag"> + <term> + <parameter>short_open_tag</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Active le support de la forme courte des balises &php; : + <userinput><? ?></userinput>. Si vous voulez utiliser + &php; avec du XML, vous pouvez désactiver cette option afin que + vous puissiez utiliser <userinput><?xml ?></userinput>. Sinon + vous pouvez l'afficher avec PHP comme ceci : + <userinput><?php echo '<?xml version="1.0"'; ?></userinput>. + Si cette directive est inactivée, vous devez utiliser la + forme longue des balises &php; <userinput><?php ?></userinput>. + </para> + <note> + <para> + Cette directive affecte aussi les raccourcis <userinput><?=</userinput>, + qui est l'équivalent de <userinput><? echo</userinput>. Utiliser ce + raccourci impose l'activation de la directive + <systemitem role="directive">short_open_tag</systemitem>. + </para> + </note> + </listitem> + </varlistentry> <varlistentry id="ini.asp-tags"> <term> <parameter>asp_tags</parameter> - <type>booléen</type> + <type>&boolean;</type> </term> <listitem> <para> @@ -148,117 +371,347 @@ </note> </listitem> </varlistentry> - <varlistentry id="ini.auto-append-file"> + <varlistentry id="ini.precision"> <term> - <parameter>auto_append_file</parameter> - <type>chaîne de caractères</type> + <parameter>precision</parameter> + <type>&integer;</type> + </term> + <listitem> + <simpara> + Le nombre de chiffres significatifs à afficher avec les &float;. + </simpara> + </listitem> + </varlistentry> + <varlistentry id="ini.y2k-compliance"> + <term> + <parameter>y2k_compliance</parameter> + <type>&boolean;</type> + </term> + <listitem> + <simpara> + Active la compatibilité an 2000 (Cela posera des problèmes avec les + navigateurs qui ne sont pas compatibles) + </simpara> + </listitem> + </varlistentry> + <varlistentry id="allow-call-time-pass-reference"> + <term> + <parameter>allow_call_time_pass_reference</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilisé. + 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 focntion. 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 au lieu de par référence). </para> <para> - Le mot réservé <systemitem class="constant">NONE</systemitem> - désactive l'auto-appending. + Voir aussi <link linkend="language.references">Les références</link>. </para> - <note> - <para> - Si le script s'arrête par la fonction <function>exit</function>, - auto-append <emphasis>ne fonctionnera pas</emphasis>. - </para> - </note> </listitem> </varlistentry> - <varlistentry id="ini.auto-prepend-file"> + + <varlistentry id="expose-php"> <term> - <parameter>auto_prepend_file</parameter> - <type>chaîne de caractères</type> + <parameter>expose_php</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilisé. + Cette directive active ou non le fait que &php; est marqué comme installé + sur le serveur web (en ajoutant sa propre signature dans les entê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. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + + <sect2 id="ini.sect.resource-limits"> + <title>Limitation des ressources</title> + <para> + <table> + <title>Limitation des ressources</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Valeur par défaut</entry> + <entry>Modifications</entry> + </row> + </thead> + <tbody> + <row> + <entry>memory_limit</entry> + <entry>"8M"</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur cette directive. + <variablelist> + + <varlistentry id="ini.memory-limit"> + <term> + <parameter>memory_limit</parameter> + <type>&integer;</type> + </term> + <listitem> + <para> + 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 consomme 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 <literal>--enable-memory-limit</literal>. Notez que vous + pouvez lui donner la valeur de -1 si vous ne souhaitez pas de + limitation de consommation de mémoire. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + <para> + Voir aussi + <link linkend="ini.max-execution-time">max_execution_time</link>. + </para> + </sect2> + <sect2 id="ini.sect.data-handling"> + <title>Gestion des données</title> + <para> + <table> + <title>Options de gestion des données</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>track-vars</entry> + <entry>"On"</entry> + <entry>PHP_INI_??</entry> + </row> + <row> + <entry>arg_separator.output</entry> + <entry>"&"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>arg_separator.input</entry> + <entry>"&"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>variables_order</entry> + <entry>"EGPCS"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>register_globals</entry> + <entry>"Off"</entry> + <entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>register_argc_argv</entry> + <entry>"On"</entry> + <entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>post_max_size</entry> + <entry>"8M"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>gpc_order</entry> + <entry>"GPC"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>auto_prepend_file</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>auto_append_file</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>default_mimetype</entry> + <entry>"text/html"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>default_charset</entry> + <entry>"iso-8859-1"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>always_populate_raw_post_data</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + <row> + <entry>allow_webdav_methods</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.track-vars"> + <term> + <parameter>track_vars</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Si activé, les variables de l'environnement, GET, POST, Cookie et + du serveur sont disponibles respectivement dans les tableaux associatifs + <varname>$_ENV</varname>, + <varname>$_GET</varname>, + <varname>$_POST</varname>, + <varname>$_COOKIE</varname> et + <varname>$_SERVER</varname>. </para> <para> - Le mot réservé <systemitem class="constant">NONE</systemitem> - désactive l'auto-appending. - </para> + Notez que depuis PHP 4.0.3, + <systemitem role="directive">track_vars</systemitem> est toujours + activée. + </para> </listitem> </varlistentry> - <varlistentry id="ini.cgi-ext"> + + <varlistentry id="ini.arg-separator.output"> <term> - <parameter>cgi_ext</parameter> - <type>chaîne de caractères</type> + <parameter>arg_separator.output</parameter> + <type>&string;</type> </term> <listitem> - <para> - (NDT : aucune documentation n'est fournie). - </para> + <para> + Le séparateur utilisé par &php; dans les URL générées par &php; pour + séparer les arguments. + </para> </listitem> </varlistentry> - <varlistentry id="ini.doc-root"> + + <varlistentry id="arg-separator.input"> <term> - <parameter>doc_root</parameter> - <type>string</type> + <parameter>arg_separator.input</parameter> + <type>&string;</type> </term> <listitem> <para> - Le dossier racine de PHP. Cette directive n'est utilisée que - si elle est définie. Si PHP est configuré en - &safemode;, aucun fichier en dehors de ce dossier ne sera accessible. + Liste de séparateur(s) utilisé par &php; pour analyser les + URL d'entrées, et en déduire les variables. </para> + <note> + <para> + Chacun des caractères de cette directive est consdiré comme + un séparateur. + </para> + </note> </listitem> </varlistentry> - <varlistentry id="ini.open-basedir"> + + <varlistentry id="ini.variables-order"> <term> - <parameter>open_basedir</parameter> - <type>string</type> + <parameter>variables_order</parameter> + <type>&string;</type> </term> <listitem> - <para> - Limite l'espace où PHP peut ouvrir des fichiers. - </para> - <para> - 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. - </para> - <para> - La valeur spéciale <systemitem class="constant">.</systemitem> - indique que le dossier courant du script est utilisé comme open_basedir. - </para> - <para> - 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 <literal>open_basedir</literal> - des dossiers parents est automatiquement héritée par les fils. - </para> + <para> + 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. + </para> + <para> + Voir aussi <link linkend="ini.register-globals">register_globals</link>. + </para> + </listitem> + </varlistentry> + <varlistentry id="ini.register-globals"> + <term> + <parameter>register_globals</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + 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 + <literal>http://www.example.com/test.php?id=3</literal> va créer + la variable <varname>$id</varname> dans votre script. Ou bien, + <varname>$DOCUMENT_ROOT</varname>, issue de + <varname>$_SERVER['DOCUMENT_ROOT']</varname>. + Vous pouvez désactiver cette fonction + si vous ne voulez pas truffer vos scripts avec des + valeurs utilisateurs. + Depuis &php; <ulink url="&url.php.release4.2.0;">4.2.0</ulink>, + cette directive vaut par défaut <emphasis>off</emphasis>. Il est recommandé + de lire la liste des <link linkend="reserved.variables">Variables prédéfinies</link>, + pour découvrir les + <link linkend="language.variables.superglobals">super-globales</link> : + <varname>$_ENV</varname>, + <varname>$_GET</varname>, + <varname>$_POST</varname>, + <varname>$_COOKIE</varname> et + <varname>$_SERVER</varname>. + Lisez aussi le chapitre sur la sécurité + <link linkend="security.registerglobals">Utilisation des variables super-globales</link> + pour plus de détails. + </para> + <para> + Notez que <systemitem role="directive">register_globals</systemitem> + ne peut être modifiée durant l'exécution du script (avec <function>ini_set</function>). + Cependant, vous pouvez utiliser le fichier <filename>.htaccess</filename> si + votre hôte les supporte, comme décrit ci-dessus. Par exemple, vous pouvez + inscrire dans votre fichier <filename>.htaccess</filename> : + <userinput>php_flag register_globals on</userinput>. + </para> <note> <para> - Le support pour les dossiers multiples a été ajouté dans 3.0.7. - </para> - </note> - <para> - La valeur par défaut est : libre accès à tous les fichiers. - </para> + <systemitem role="directive">register_globals</systemitem> est combiné avec + la directive <link linkend="ini.variables-order">variables_order</link>. + </para> + </note> </listitem> </varlistentry> + <varlistentry id="ini.register-argc-argv"> <term> <parameter>register_argc_argv</parameter> - <type>boolean</type> + <type>&boolean;</type> </term> <listitem> <simpara> Indique à &php; si il doit déclarer les variables argv et - argc (qui contiendront alors les mêmes informations passées par méthode GET). + argc (qui contiendront alors les mêmes informations passées + par méthode GET). </simpara> <simpara> Voir aussi <link linkend="features.commandline">command line</link>. @@ -271,7 +724,7 @@ <varlistentry id="ini.post-max-size"> <term> <parameter>post_max_size</parameter> - <type>integer</type> + <type>&integer;</type> </term> <listitem> <simpara> @@ -290,283 +743,513 @@ </simpara> </listitem> </varlistentry> + <varlistentry id="ini.gpc-order"> <term> - <parameter>gpc_order</parameter> - <type>chaîne de caractères</type> + <parameter>gpc_order</parameter> + <type>&string;</type> </term> <listitem> - <para> - 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. - </para> + <para> + Cette directive est obsolète. Voyez plutôt + <link linkend="ini.variables-order">variables_order</link>. + </para> </listitem> </varlistentry> - <varlistentry id="ini.include-path"> + + <varlistentry id="ini.auto-append-file"> <term> - <parameter>include_path</parameter> - <type>string</type> - </term> - <listitem> - <para> - Spécifie une liste de dossiers, où les fonctions <function>require</function>, - <function>include</function> 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 <envar>PATH</envar> : une liste de dossiers, - séparés par des deux points (:) sous UNIX, et par des points virgules (;) - sous Windows. - <example> - <title>UNIX include_path</title> - <programlisting role="php3.ini"> -include_path=.:/home/httpd/php-lib - </programlisting> - </example> - <example> - <title>Windows include_path</title> - <programlisting role="php3.ini"> -include_path=".;c:\www\phplib" - </programlisting> - </example> - La valeur par défaut pour cette directive est <literal>.</literal>, - c'est-à-dire le dossier courant.</para> - </listitem> - </varlistentry> - <varlistentry id="ini.isapi-ext"> - <term> - <parameter>isapi_ext</parameter> - <type>string</type> + <parameter>auto_append_file</parameter> + <type>&string;</type> </term> <listitem> - <para> - (Aucune documentation n'est fournie) + <para> + 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 <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilisé. </para> - </listitem> - </varlistentry> - <varlistentry id="ini.memory-limit"> - <term> - <parameter>memory_limit</parameter> - <type>entier</type> - </term> - <listitem> <para> - 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 + Le mot réservé <systemitem class="constant">NONE</systemitem> + désactive l'auto-appending. </para> + <note> + <para> + Si le script s'arrête par la fonction <function>exit</function>, + auto-append <emphasis>ne fonctionnera pas</emphasis>. + </para> + </note> </listitem> </varlistentry> - <varlistentry id="ini.nsapi-ext"> + + <varlistentry id="ini.auto-prepend-file"> <term> - <parameter>nsapi_ext</parameter> - <type>chaîne de caractères</type> + <parameter>auto_prepend_file</parameter> + <type>&string;</type> </term> <listitem> <para> - Aucune documentation n'est fournie. + 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 <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilisé. </para> + <para> + Le mot réservé <systemitem class="constant">none</systemitem> + désactive l'auto-appending. + </para> </listitem> </varlistentry> - <varlistentry id="ini.register-globals"> + + <varlistentry id="ini.default-mimetype"> <term> - <parameter>register_globals</parameter> - <type>boolean</type> + <parameter>default_mimetype</parameter> + <type>&string;</type> </term> <listitem> <para> - 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 <link - linkend="ini.track-vars">track_vars</link> - dans ce cas, - vous pouvez accéder à toutes les variables EGPCS grâce aux tableaux - <varname>$HTTP_ENV_VARS</varname>, - <varname>$HTTP_GET_VARS</varname>, - <varname>$HTTP_POST_VARS</varname>, - <varname>$HTTP_COOKIE_VARS</varname>, et - <varname>$HTTP_SERVER_VARS</varname>. </para> </listitem> </varlistentry> - <varlistentry id="ini.short-open-tag"> + + <varlistentry id="ini.default-charset"> <term> - <parameter>short_open_tag</parameter> - <type>booléen</type> + <parameter>default_charset</parameter> + <type>&string;</type> </term> <listitem> <para> - Active ou désactive l'utilisation des balises courtes, - (<userinput><? ?></userinput>). 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, - (<userinput><?php ?></userinput>).</para> + Depuis la version 4.0b4, &php; fournit toujours une indication + de jeu de caractères pour les fichiers générés, dans l'entête HTTP + <literal>Content-type</literal>. Pour inactiver l'envoi de cette + indication, laissez cette directive vide. + </para> </listitem> </varlistentry> - <varlistentry id="ini.sql.safe-mode"> + + <varlistentry id="ini.always-populate-raw-post-data"> <term> - <parameter>sql.safe_mode</parameter> - <type>booléen</type> + <parameter>always_populate_raw_post_data</parameter> + <type>&boolean;</type> </term> <listitem> <para> - Aucune documentation n'est fournie. + Force le remplissage de la variable <varname>$HTTP_RAW_POST_DATA</varname>. </para> </listitem> </varlistentry> - <varlistentry id="ini.track-vars"> + + <varlistentry id="ini.allow-webdav-methods"> <term> - <parameter>track_vars</parameter> - <type>booléen</type> + <parameter>allow_webdav_methods</parameter> + <type>&boolean;</type> </term> <listitem> <para> - 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 <symbol>$HTTP_GET_VARS</symbol>, - <symbol>$HTTP_POST_VARS</symbol> et <symbol>$HTTP_COOKIE_VARS</symbol>. + 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 + <link linkend="ini.always-populate-raw-post-data">always_populate_raw_post_data</link>. </para> </listitem> </varlistentry> - <varlistentry id="ini.upload-tmp-dir"> + </variablelist> + </para> + <para> + Voir aussi + <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>, + <link linkend="ini.magic-quotes-runtime">magic-quotes-runtime</link> et + <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>. + </para> + </sect2> + <sect2 id="ini.sect.path-directory"> + <title>Dossiers</title> + <para> + <table> + <title>Options de dossiers</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>include_path</entry> + <entry>PHP_INCLUDE_PATH</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>doc_root</entry> + <entry>PHP_INCLUDE_PATH</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>user_dir</entry> + <entry>NULL</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>extension_dir</entry> + <entry>PHP_EXTENSION_DIR</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>cgi.force_redirect</entry> + <entry>"1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>cgi.redirect_status_env</entry> + <entry>""</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>fastcgi.impersonate</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.include-path"> <term> - <parameter>upload_tmp_dir</parameter> - <type>chaîne de caractères</type> + <parameter>include_path</parameter> + <type>&string;</type> </term> <listitem> <para> - 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. + Spécifie une liste de dossiers, où les fonctions + <function>require</function>, <function>include</function> et + fopen_with_path() iront chercher les fichiers. Le format est + le même que celui de la variable d'environnement + <envar>PATH</envar> : une liste de dossiers, séparés + par des deux points (:) sous UNIX, et par des points virgules (;) + sous Windows. + </para> + <para> + <example> + <title>UNIX include_path</title> + <programlisting role="php.ini"> +<![CDATA[ +include_path=".:/php/includes" +]]> + </programlisting> + </example> + </para> + <para> + <example> + <title>Windows include_path</title> + <programlisting role="php.ini"> +<![CDATA[ +include_path=".;c:\php\includes" +]]> + </programlisting> + </example> + </para> + <para> + Utiliser un point (<literal>.</literal>) dans l'include_path + permet de réaliser des inclusions relatives au dossier + courant. </para> </listitem> </varlistentry> - <varlistentry id="ini.upload-max-filesize"> + + <varlistentry id="ini.doc-root"> <term> - <parameter>upload_max_filesize</parameter> - <type>entier</type> + <parameter>doc_root</parameter> + <type>&string;</type> </term> <listitem> <para> - 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. + Le dossier racine de &php;. Cette directive n'est utilisée que + si elle est définie. Si &php; est configuré en + &safemode;, 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 solutin alternative est d'utiliser la directive + <link linkend="ini.cgi.force-redirect">cgi.force_redirect</link> ci-dessous. </para> - </listitem> - </varlistentry> + </listitem> + </varlistentry> + <varlistentry id="ini.user-dir"> <term> <parameter>user_dir</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Répertoire où sont stockés les fichiers PHP dans le - répertoire d'un utilisateur. Par exemple, <literal>public_html</literal>. + Répertoire où sont stockés les fichiers &php; + dans le répertoire d'un utilisateur. Par exemple, + <literal>public_html</literal>. </para> </listitem> </varlistentry> - </variablelist> - </sect2> - <sect2 id="ini.sect.safe-mode"> - <title>Directives de configuration du "Safe Mode"</title> - <variablelist> - <varlistentry id="ini.safe-mode"> + + <varlistentry id="ini.extension-dir"> <term> - <parameter>safe_mode</parameter> - <type>booléen</type> + <parameter>extension_dir</parameter> + <type>&string;</type> </term> <listitem> <para> - Cette directive active ou désactive l'option &safemode;, un - mode de sécurisation de PHP lors du partage avec plusieurs utilisateurs. - </para> + Définit le répertoire dans lequel le PHP doit chercher + les extensions lors du chargement dynamique. Voir aussi + <link linkend="ini.enable-dl">enable_dl</link> et <function>dl</function>. + </para> </listitem> </varlistentry> - <varlistentry id="ini.safe-mode-exec-dir"> + + <varlistentry id="ini.extension"> <term> - <parameter>safe_mode_exec_dir</parameter> - <type>chaîne de caractères</type> + <parameter>extension</parameter> + <type>&string;</type> </term> <listitem> <para> - Si l'option "SAFE MODE" est activée, <function>system</function> 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. + Définit les extensions qui doivent être chargées lors du + démarrage du PHP. </para> </listitem> </varlistentry> - </variablelist> + + <varlistentry id="ini.cgi.force-redirect"> + <term> + <parameter>cgi.force_redirect</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + cgi.force_redirect est nécesssaire pour assurer la sécurité de + &php;, lorsqu'il fonctionne en tant que CGI pour la plus part + des serveur web. Même si laissé vide, &php; va activer cette + option par défaut. Vous pouvez l'inactiver + <emphasis>à vos risques et périls</emphasis>. + </para> + <note> + <para> + Utilisateurs Windows : vous pouvez inactiver cette option sans problème + avec IIS et en fait, vous DEVEZ l'inactiver. + Pour faire fonctionner OmniHTTPD ou Xitami, vous devrez aussi l'inactiver. + </para> + </note> + </listitem> + </varlistentry> + + <varlistentry id="ini.cgi.redirect-status-env"> + <term> + <parameter>cgi.cgi.redirect_status_env</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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. + </para> + <note> + <para> + Allouer cette variable PEUT causer des problèmes de sécurité, + RENSEIGNEZ VOUS AVANT DE LE FAIRE. + </para> + </note> + </listitem> + </varlistentry> + + <varlistentry id="fastcgi.impersonate"> + <term> + <parameter>fastcgi.impersonate</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> </sect2> + <sect2 id="ini.sect.file_uploads"> + <title>File Uploads</title> + <para> + <table> + <title>File Uploads Configuration Options</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>file_uploads</entry> + <entry>"1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>upload_tmp_dir</entry> + <entry>NULL</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>upload_max_filesize</entry> + <entry>"2M"</entry> + <entry>PHP_INI_SYSTEM|PHP_INI_PERDIR</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur ces directives. + <variablelist> + <varlistentry id="ini.file-uploads"> + <term> + <parameter>file_uploads</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Cette directive indique si les + <link linkend="features.file-upload">téléchargements de fichiers</link> + sont supportés sur le serveur. Voir aussi + <link linkend="ini.upload-max-filesize">upload_max_filesize</link>, + <link linkend="ini.upload-tmp-dir">upload_tmp_dir</link> et + <link linkend="ini.post-max-size">post_max_size</link>. + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.upload-tmp-dir"> + <term> + <parameter>upload_tmp_dir</parameter> + <type>&string;</type> + </term> + <listitem> + <para> + 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 exécute le script &php;, ou par le serveur web. + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.upload-max-filesize"> + <term> + <parameter>upload_max_filesize</parameter> + <type>&integer;</type> + </term> + <listitem> + <para> + La taille maximale d'un fichier téléchargé sur le serveur. + La valeur est en octets. Par défaut, elle est de 2 méga-octets. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + + <sect2 id="ini.sql-general"> + <title>Options de SQL</title> + <para> + <table> + <title>Options de SQL</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par défaut</entry> + <entry>Modifiable</entry> + </row> + </thead> + <tbody> + <row> + <entry>sql.safe_mode</entry> + <entry>"0"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> + Voici un éclaircissement sur cette directive. + <variablelist> + <varlistentry id="ini.sql.safe-mode"> + <term> + <parameter>sql.safe_mode</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </sect2> + <sect2 id="ini.sect.debugger"> - <title>Directives de configuration de débugage.</title> + <title>Configuration des débogeurs</title> <variablelist> + <varlistentry id="ini.debugger.host"> <term> <parameter>debugger.host</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Adresse IP ou nom de l'hôte utilisé pour le débugage. + Nom DNS ou adresse IP de l'hôte du débogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.port"> <term> <parameter>debugger.port</parameter> - <type>chaîne de caractères</type> + <type>&string;</type> </term> <listitem> <para> - Numéro du port utilisé pour le débugage. + Numéro de port du débogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.enabled"> <term> <parameter>debugger.enabled</parameter> - <type>booléen</type> + <type>&boolean;</type> </term> <listitem> <para> - Activation ou désactivation du débugueur.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - <sect2 id="ini.sect.extension"> - <title>Directives de chargement des extensions</title> - <variablelist> - <varlistentry id="ini.extension-dir"> - <term> - <parameter>extension_dir</parameter> - <type>chaîne de caractères</type> - </term> - <listitem> - <para> - Définit le répertoire dans lequel le PHP doit chercher les extensions lors - du chargement dynamique. - </para> - </listitem> - </varlistentry> - <varlistentry id="ini.extension"> - <term> - <parameter>extension</parameter> - <type>chaîne de caractères</type> - </term> - <listitem> - <para> - Définit les extensions qui doivent être chargées lors du - démarrage du PHP. + Indique si le débogeur est activé ou pas. </para> </listitem> </varlistentry> + </variablelist> </sect2> + </sect1> </chapter> <!-- Keep this comment at the end of the file Index: phpdoc-fr/chapters/install.xml diff -u phpdoc-fr/chapters/install.xml:1.36 phpdoc-fr/chapters/install.xml:1.37 --- phpdoc-fr/chapters/install.xml:1.36 Mon Aug 12 22:59:46 2002 +++ phpdoc-fr/chapters/install.xml Sat Jan 18 11:11:34 2003 @@ -1 +1 @@ -<?xml version="1.0" encoding="iso-8859-1"?><!-- $Revision: 1.36 $ --><chapter id="installation"> <title>Installation</title> <sect1 id="install.general"> <title>Considérations générales sur l'installation</title> <para> Avant d'installer PHP, vous devez savoir ce que vous voulez faire de PHP. Il y a trois cas d'utilisation que vous a décrit la section <link linkend="intro-whatcando">Que peut faire?</link> section: <itemizedlist> <listitem><simpara>Scripts web</simpara></listitem> <listitem><simpara>Scripts de ligne de commande</simpara></listitem> <listitem><simpara>Application à interface graphique</simpara></listitem> </itemizedlist> </para> <para> Pour la première tâche, qui est de loin la plus répandue, vous avez besoin de trois choses : PHP lui-même, un serveur web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre système d'exploitation, vous pouvez aussi disposer d'un serveur Web (i.e. Apache sous Linux ou IIS sous Windows). Vous pouvez aussi louer un espace à une société. De cette façon, vous n'aurez pas à mettre en place PHP, mais uniquement à écrire vos scripts, les charger sur le serveur et voir le résultat sur votre navigateur. Vous pouvez trouver une liste de ces compagnies à <ulink url="&url.php.hosts;">&url.php.hosts;</ulink>. </para> <para> Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur web, vous pouvez toujours l'utiliser comme processeur CGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable PHP (<filename>php.exe</filename> sous Windows), pour qu'il traite les fichiers PHP sur le serveur. </para> <para> Si vous souhaitez aussi utiliser PHP en ligne de commande (écrire des scripts de génération d'image hors ligne, par exemple, ou bien traiter des textes en fonctions d'information que vous leur passeriez), vous aurez besoin d'un exécutable PHP. Pour plus de détails, lisez la section <link linkend="commandline">écrire des applications PHP en ligne de commande</link>. Dans ce cas, vous n'aurez pas besoin de serveur web, ni de navigateur. </para> <para> Avec PHP, vous pouvez aussi écrire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche complètement différente de l'écriture des pages web, car vous ne générerez pas de fichiers HTML, mais vous aurez à gérer des fenêtres et des objets. Pour plus de détails sur PHP-GTK, voyez le <ulink url="&url.php.gtk;">site officiel</ulink>. PHP-GTK n'est pas inclus dans la distribution officielle de PHP. </para> <para> A partir de maintenant, cette section décrit l'installation de PHP avec un serveur web sous Unix et Windows, sous forme de module ou d'exécutables CGI. </para> <simpara> Les codes source et les exécutables compilés de certains OS (y compris Windows), sont disponibles à <ulink url="&url.php;">&url.php;</ulink>. Nous recommandons l'utilisation du <ulink url="&url.mirrors;">miroir</ulink> le plus proche pour accélérer les chargements. </simpara> </sect1> <sect1 id="install.unix"> <title>Installation sous UNIX</title> <para> Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur web avant de passer à l'installation. </para> <para> Pré-requis : <itemizedlist> <listitem> <simpara> Connaissance de base d'UNIX (savoir faire un "make" et compiler en C, si besoin). </simpara> </listitem> <listitem> <simpara> Un compilateur ANSI C (pour les codes sources) </simpara> </listitem> <listitem> <simpara> flex (pour les codes sources) </simpara> </listitem> <listitem> <simpara> bison (pour les codes sources) </simpara> </listitem> <listitem> <simpara> Un serveur web </simpara> </listitem> <listitem> <simpara> Tous les composants nécessaires aux extensions (librairie <acronym>GD</acronym>, <acronym>PDF</acronym>, etc...) </simpara> </listitem> </itemizedlist> </para> <para> Il y a plusieurs façons d'installer PHP sur une plate-forme UNIX : soit un processus de compilation-configuration, ou bien avec des packages déjà tout prêts. Cette documentation se concentre sur la première solution. </para> <para> La première partie du processus est faite en ligne de commande, grâce aux options du script <filename>configure</filename>. Cette section présente l'utilisation des options les plus courantes, mais il y en a beaucoup d'autres à essayer. Reportez-vous à la <link linkend="install.configure">liste complète des options de configuration </link> pour une liste exhaustive. Voici les différentes méthodes d'installation de PHP : <itemizedlist> <listitem> <simpara> Comme <link linkend="install.apache">module Apache</link> </simpara> </listitem> <listitem> <simpara> Comme <link linkend="install.fhttpd">module fhttpd</link> </simpara> </listitem> <listitem> <simpara> Pour l'utiliser avec <link linkend="install.otherhttpd">AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, ou Zeus.</link> </simpara> </listitem> <listitem> <simpara> Comme <link linkend="install.commandline">exécutable CGI</link> </simpara> </listitem> </itemizedlist> </para> <sect2 id="install.unix.apache-module"> <title>Référence Module Apache</title> <para> PHP peut être compilé de nombreuses manières différentes, mais la plus populaire est le module Apache. La liste suivante est un récapitulatif de l'installation. </para> <example id="install.unix.apache-module.quick"> <title> Instructions d'installation PHP 4 (Version Module Apache) </title> <programlisting>1. gunzip apache_1.3.x.tar.gz2. tar xvf apache_1.3.x.tar3. gunzip php-x.x.x.tar.gz4. tar xvf php-x.x.x.tar5. cd apache_1.3.x6. ./configure --prefix=/www7. cd ../php-x.x.x8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars9. make10. make install11. cd ../apache_1.3.x12. ./configure --activate-module=src/modules/php4/libphp4.a13. make14. make install15. cd ../php-x.x.x16. cp php.ini-dist /usr/local/lib/php.ini17. "Editez votre fichier httpd.conf ou srm.conf et ajoutez : " AddType application/x-httpd-php .php18. "Utilisez votre procédure habituelle pour redémarrer le serveur Apache. (vous devez arrêter puis redémarrer le serveur, et pas seulement forcer le serveur à relire la configuration initiale). </programlisting> </example> </sect2> <sect2 id="install.building"> <title>Compilation</title> <simpara> Lorsque PHP est configuré, vous êtes prêts à compiler l'exécutable CGI. La commande <command>make</command> doit prendre tout en charge. Si ce n'est pas le cas et que vous restez bloqué, reportez-vous aux <link linkend="install.problems">problèmes courants</link>. </simpara> </sect2> </sect1> <sect1 id="install.linux"> <title>Installation sous Linux</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Linux. </para> <sect2 id="install.linux.packages"> <title>Utilisation des packages</title> <simpara> De nombreuses distributions Linux disposent d'un système d'installation par package, comme le fameux RPM. Ils vous permettent de faire des installations standard, mais si vous avez des configurations spécifiques (comme par exemple un serveur sécurisé, ou un pilote de base de données exotique), vous aurez probablement à compiler vous-même votre PHP et votre serveur web. Si vous n'êtes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra répondre à vos besoins. </simpara> </sect2> </sect1> <sect1 id="install.hpux"> <title>Installation sous HP-UX</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions HP-UX. </para> <example id="install.hpux.example"> <title> Instructions d'installation pour HP-UX 10 </title> <programlisting>From: paul_mckay@clearwater-it.co.uk04-Jan-2001 09:49(Ces conseils sont destinés à PHP 4.0.4 et Apache v1.3.9)Vous voulez installer PHP et Apache sur une HP-UX 10.20?1. Vous aurez besoin de gzip. Téléchargez la distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z,puis décompressez la, et utilisez swinstall pour installer.2. Vous aurez besoin de gcc. Téléchargez une distribution compilée àhttp://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz,puis décompressez la, et utilisez swinstall pour installer.3. Vous aurez besoin de GNU binutils.Téléchargez une distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz, puis décompressez la, et utilisez swinstall pour installer.4. Vous aurez besoin de bison. Téléchargez une distribution compilée àhttp://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, puis décompressez la, et utilisez swinstall pour installer.5. Vous aurez besoin de flex. Téléchargez une distribution source sur l'undes miroirs http://www.gnu.org. Il se trouve dans le dossier non-gnu du site FTP.Téléchargez le fichier, décompressez leur,puis utilisez tar -xvf avec. Allez dans le nouveau dossier flex ainsi créé,et exécutez la commande "./configure", puis faites un "make", puis un "make install".Si vous avez des erreurs à cette étape, c'est probablement par ce que gcc etles autres ne sont pas inscrites dans votre PATH. Ajoutez les.Maintenant, la partie délicate.6. Téléchargez les sources d'Apache et de PHP.7. Décompressez les avec gunzip puis faites "tar -xvf" avec les deux archives.Nous devons modifier quelques fichiers avant de les compiler.8. Premièrement, le fichier de configuration doit être modifié car ilsemble oublier qu'il est sur une machine HP-UX. Il y a des méthodes plusrusées, mais le plus simple et le plus efficace est d'ajouter "lt_target=hpux10.20" à la ligne 47286 du script de configuration.9. Le fichier d'Apache GuessOS doit être modifié. Sousapache_1.3.9/src/helpers, modifier la ligne 89, en remplaçant "echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0"par : "echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0"10. Il n'est pas possible d'installer PHP sous forme de shared object sousHP-UX, ce qui fait que vous devez le compiler en statique. Suivezsimplement les instructions de la section Apache.11. PHP et Apache sont maintenant compilés correctement, mais Apache ne démarre pas. Vous devez créer un nouvel utilisateur Apache, par exemple www, ou apache. Puis, modifiez les lignes 252 et 253 de conf/httpd.conf pour remplacer User nobody Group nogrouppar vos valeurs, par exemple : User www Group sysIl n'est pas possible d'éxécuter Apache avec l'utilisateur nobody sousHP-UX. A partir de ce moment là, PHP et Apache doivent fonctionner.J'espère que cela aidera quelqu'un.Paul Mckay. </programlisting> </example> </sect1> <sect1 id="install.solaris"> <title>Installation sous Solaris</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Solaris. </para> <sect2 id="install.solaris.required"> <title>Logiciels nécessaires</title> <para> L'installation Solaris oublie généralement les compilateurs C, et leurs utilitaires. Voici la liste des outils nécessaires : <itemizedlist> <listitem> <simpara> gcc (recommandé, mais d'autres compilateurs C peuvent fonctionner) </simpara> </listitem> <listitem> <simpara> make </simpara> </listitem> <listitem> <simpara> flex </simpara> </listitem> <listitem> <simpara> bison </simpara> </listitem> <listitem> <simpara> m4 </simpara> </listitem> <listitem> <simpara> autoconf </simpara> </listitem> <listitem> <simpara> automake </simpara> </listitem> <listitem> <simpara> perl </simpara> </listitem> <listitem> <simpara> gzip </simpara> </listitem> <listitem> <simpara> tar </simpara> </listitem> </itemizedlist> De plus, vous devrez aussi installer (et peut être aussi compiler) toutes les librairies nécessaires aux extensions (MySQL, ORACLE..). </para> </sect2> <sect2 id="install.solaris.packages"> <title>Utilisation des packages</title> <simpara> Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants. </simpara> </sect2> </sect1> <sect1 id="install.openbsd"> <title>Installations Unix/OpenBSD</title> <para> Cette section contient les notes spécifiques à l'installation de PHP sous <ulink url="&url.openbsd;">OpenBSD</ulink>. </para> <sect2 id="install.openbsd.ports"> <title>Utilisation des ports</title> <simpara> Ceci est la méthode recommandée d'installation de PHP sous OpenBSD, car elle prend en compte les dernières modifications et mises à jour de sécurité. Pour utiliser cette méthode, assurez vous que vous avez bien <ulink url="&url.openbsd.ports;">ports tree</ulink> récent. Choisissez alors simplement la version que vous souhaitez installer, et utilisez la commande <command>make install</command>. Ci-dessous, voici un exemple. </simpara> <example id="install.openbsd.ports.example"> <title>Exemple d'installation de PHP sous OpenBSD avec Ports</title> <programlisting>$ cd /usr/ports/www/php4$ make show VARNAME=FLAVORS (choisissez les versions que vous souhaitez sur votre liste).$ env FLAVOR="imap gettext ldap mysql gd" make install$ /usr/local/sbin/php4-enable </programlisting> </example> </sect2> <sect2 id="install.openbsd.packages"> <title>Utilisation des Packages</title> <simpara> Il existe des packages pré-compilés disponibles en téléchargement à <ulink url="&url.openbsd;">OpenBSD</ulink>. Ils s'intègrent automatiquement avec la version d'Apache installée sur votre OS. Cependant, comme il y a un grand nombre d'options (appelées <emphasis>flavors</emphasis>) disponibles, vous trouverez peut-être plus facile de le compiler à partir de l'arbre de ports. Lisez le manuel <ulink url="&url.openbsd.packages;">packages(7)</ulink> pour plus de détails sur les packages disponibles (en anglais). </simpara> </sect2> </sect1> <sect1 id="install.macosx"> <title>Installation sous Mac OS X</title> <para> Cette section contient les notes et conseils d'installation de PHP sur les distributions Mac OS X. </para> <sect2 id="install.macosx.packages"> <title>Utilisation des packages</title> <simpara> Il existe quelques versions pré-packagée et pré-compilées de PHP pour Mac OS X. Ils permettent de réaliser rapidement des installations standard, mais si vous avez des configurations personnelles, (comme un serveur sécurisé SSL ou un pilote de base de données exotique), vous devrez compiler PHP et/ou votre serveur web vous-même. Si vous n'êtes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra répondre à vos besoins. </simpara> </sect2> <sect2 id="install.macosx.compile"> <title>Compilation pour serveur OS X</title> <simpara> Il existe deux versions légèrement différentes de Mac OS X, client et serveur. Cette installation est faite pour le OS X Serveur. </simpara> <example id="install.macosx.compile.example"> <title>Installation sous Mac OS X serveur</title> <programlisting>1. Téléchargez la dernière version de Apache et PHP2. Décompressez puis désarchivez la, puis configurez Apache comme ceci : ./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache4. Vous aurez peut être besoin d'ajouter ces lignes ci, pour optimiser lacompilation : setenv OPTIM=-O25. Puis, allez dans le dossier source de PHP 4, et configurez le : ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/share/man \ --with-xml \ --with-apache=/src/apache_1.3.12 Si vous avez d'autres composants (MySQL, GD, etc.), n'oubliez pas de les ajouter à ce moment la. Pour l'option --with-apache, ajoutez le chemin jusqu'au dossier source d'Apache, par exemple "/src/apache_1.3.12".6. Exécutez un "make"7. Exécutez un "make install" Cette commande ajoutera un dossier dans le dossier Apache : src/modules/php4.8. Maintenant, reconfigurez Apache pour compiler PHP 4. ./configure --exec-prefix=/usr \ --localstatedir=/var \ --mandir=/usr/share/man \ --libexecdir=/System/Library/Apache/Modules \ --iconsdir=/System/Library/Apache/Icons \ --includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \ --enable-shared=max \ --enable-module=most \ --target=apache \ --activate-module=src/modules/php4/libphp4.a Vous pouvez rencontrer un message qui vous dira que libmodphp4.a est obsolète. Si c'est le cas, allez dans le dossier src/modules/php4 de votre dossier Apache et exécutez la commande suivante : ranlib libmodphp4.a Puis, revenez à la racine de la distribution Apache, et recommencez la configuration. Cela aura mis à jour la table de liens.9. Exécutez un "make"10. Exécutez un "make install"11. Copiez et renommez le fichier php.ini-dist de votre distribution PHP 4 dans votre dossier "bin": cp php.ini-dist /usr/local/bin/php.ini ou (si vous n'avez pas de dossier local) cp php.ini-dist /usr/bin/php.ini </programlisting> </example> <simpara> D'autres exemples pour <ulink url="&url.stepwise.macosx-client;">Mac OS X client</ulink> et <ulink url="&url.stepwise.macosx-client;">Mac OS X server</ulink> sont disponibles à <ulink url="&url.stepwise;">Stepwise</ulink>. </simpara> </sect2> <sect2 id="install.macosx.client"> <title>Compilation pour MacOS X client</title> <simpara> Ces conseils sont gracieusement fourni par <ulink url="&url.macosx;">Marc Liyanage</ulink>. </simpara> <simpara> Le module PHP pour Apache est inclus dans Mac OS X. Cette version inclus le support des bases de données MySQL et PostgreSQL. </simpara> <simpara> NOTE: Soyez prudent avec cette manipulation, vous risquez de mettre votre serveur Apache à terre! </simpara> <para> Instructions : <itemizedlist> <listitem> <simpara> 1. Ouvrez un terminal </simpara> </listitem> <listitem> <simpara> 2. Tapez "wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz", attendez la fin du téléchargement. </simpara> </listitem> <listitem> <simpara> 3. Tapez "gunzip libphp4.so.gz" </simpara> </listitem> <listitem> <simpara> 4. Tapez "sudo apxs -i -a -n php4 libphp4.so" </simpara> </listitem> </itemizedlist> Maintenant, tapez "<literal>sudo open -a TextEdit /etc/httpd/httpd.conf</literal>" TextEdit ouvrira le fichier de configuration. Recherchez ces deux lignes, vers la fin du fichier (Utilisez la commande Find) <programlisting> * #AddType application/x-httpd-php .php * #AddType application/x-httpd-php-source .phps </programlisting> Supprimez les deux marques de commentaires (<literal>#</literal>), puis sauvez le fichier, et quittez TextEdit. </para> <para> Finalement, tapez "<literal>sudo apachectl graceful</literal>" pour redémarrer le serveur Apache. </para> <para> PHP devrait fonctionner. Vous pouvez le tester en placant un script dans le dossier "Sites". Par exemple, le fichier "test.php", qui contient la simple ligne : "<literal><?php phpinfo() ?></literal>". </para> <para> Ouvrez l'URL <literal>127.0.0.1/~your_username/test.php</literal> dans votre navigateur. Vous obtiendrez le tableau de bord de PHP. </para> </sect2> </sect1> <sect1 id="install.configure"> <title>Liste complète des options de configuration</title> <para> Cette section rassemble la liste complète des options de configuration supportées par PHP 3 et PHP 4, à utiliser avec le fichier <filename>configure</filename>, lors de la configuration sous Unix. Certaines options sont disponibles sous PHP 3, d'autres sous PHP 4 et certains sous PHP 3 et PHP 4, comme inidiqué. Il y a de nombreuses options dont le nom a changé entre PHP 3 et PHP 4. Ces options ont des liens entre elles : si vous vous souvenez d'un nom d'option en PHP 3, regardez si le nom a changé. </para> <itemizedlist> <listitem> <para> <link linkend="install.configure.databases">Base de données</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.ecommerce">E-commerce</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.graphics">Images</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.misc">Divers</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.networking">Réseau</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.php">Comportement PHP</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.servers">Serveur</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.text">Texte et langue</link> </para> </listitem> <listitem> <para> <link linkend="install.configure.xml">XML</link> </para> </listitem> </itemizedlist> <sect2 id="install.configure.databases"> <title>Base de données</title> <variablelist> <varlistentry id="install.configure.with-adabas"> <term> <parameter>--with-adabas[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Adabas D. DIR est le dossier d'installation de Adabas (par défaut, <literal>/usr/local</literal>). </para> <para> <ulink url="&url.adabas;">Adabas home page</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dba"> <term> <parameter>--enable-dba=shared</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile DBA comme module partagé </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dbx"> <term> <parameter>--enable-dbx</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support DBX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dbase"> <term> <parameter>--enable-dbase</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-dbase">--with-dbase</link> instead. </para> <para> PHP 4: Active la librairie dbase livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbase"> <term> <parameter>--with-dbase</parameter> </term> <listitem> <para> PHP 3: Active la librairie dbase livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-dbase">--enable-dbase</link> instead. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-db2"> <term> <parameter>--with-db2[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support Berkeley DB2. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-db3"> <term> <parameter>--with-db3[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Berkeley DB3. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbm"> <term> <parameter>--with-dbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support DBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-dbmaker"> <term> <parameter>--with-dbmaker[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3. </para> <para> PHP 4: Inclut le support DBMaker. DIR est le dossier d'installation DBMaker (par défaut, c'est le dossier de la dernière installation DBMaker, comme <literal>/home/dbmaker/3.6</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-empress"> <term> <parameter>--with-empress[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Empress. DIR est le dossier d'installation Empress (par défaut, <literal>$EMPRESSPATH</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-filepro"> <term> <parameter>--enable-filepro</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-filepro">--with-filepro</link> instead. </para> <para> PHP 4: Active la librairie filePro (lecture seule) livrée avec PHP. Aucune librairie supplémentaire n'est nécessaire. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fbsql"> <term> <parameter>--with-fbsql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible. </para> <para> PHP 4: Inclut le support de FrontBase SQL. DIR est le chemin jusqu'à l'installation de FrontBase base. Par défaut, c'est le dossier standard d'installation Frontbase. L'installation dépend de votre OS : Solaris: <literal>/opt/FrontBase</literal>, WinNT: <literal>\usr\FrontBase</literal>, Linux: <literal>/usr/frontbase</literal>, Mac OSX: <literal>/Library/FrontBase</literal>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-filepro"> <term> <parameter>--with-filepro</parameter> </term> <listitem> <para> PHP 3: Inclut le support IBM DB2. Aucune librairie supplémentaire n'est nécessaire. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-filepro">--enable-filepro</link>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gdbm"> <term> <parameter>--with-gdbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support GDBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-hyperwave"> <term> <parameter>--with-hyperwave</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support Hyperwave. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ibm-db2"> <term> <parameter>--with-ibm-db2[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support IBM DB2. DIR est le dossier d'installation de DB2 (par défaut, <filename>/home/db2inst1/sqllib</filename>). </para> <para> <ulink url="&url.ibmdb2;">IBM DB2</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-informix"> <term> <parameter>--with-informix[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Informix. DIR est le dossier d'installation d'Informix (par défaut, aucune valeur). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ingres"> <term> <parameter>--with-ingres[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Ingres II. DIR est le dossier d'installation d'Ingres (par défaut, <literal>/II/ingres</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-interbase"> <term> <parameter>--with-interbase[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support InterBase. DIR est le dossier d'installation d'InterBase (par défaut, <filename>/usr/interbase</filename>). </para> <simpara> <link linkend="ref.ibase">Fonctions Interbase</link> </simpara> <simpara> <ulink url="&url.ibase;">Interbase</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-ldap"> <term> <parameter>--with-ldap[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support LDAP. DIR est le dossier d'installation de LDAP (par défaut <filename>/usr</filename> et <filename>/usr/local</filename>). </para> <para> PHP 4: Inclut le support LDAP. DIR est le dossier d'installation de LDAP. (par défaut; <filename class="directory">/usr/local/ldap</filename>). </para> <simpara> Plus de détails sur LDAP sont disponibles à <ulink url="&url.rfc;rfc1777.html">RFC1777</ulink> et <ulink url="&url.rfc;rfc1778.html">RFC1778</ulink>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-msql"> <term> <parameter>--with-msql[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support mSQL. DIR est le dossier d'installation de mSQL (par défaut <filename>/usr</filename> et <filename>/usr/local/Hughes</filename>, pour la version 2.0). <command>configure</command> détecte automatiquement la version de mSQL qui fonctionne. PHP supporte les versions 1.0 et 2.0, mais si vous compilez PHP avec mSQL 1.0, vous ne pourrez accéder qu'à des bases mSQL 1.0, et vice-versa. </para> <simpara> Voir aussi <link linkend="ini.sect.msql">Configuration mSQL</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.msql;">mSQL</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-mysql"> <term> <parameter>--with-mysql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support MySQL. DIR est le dossier d'installation de MySQL (par défaut, il cherche dans différents dossiers où MySQL a coutume d'être installé). </para> <para> PHP 4: Inclut le support MySQL. DIR est le dossier de l'installation MySQL. S'il est omis, la librairie MySQL livrée en standard avec PHP sera utilisée par défaut. </para> <para> Voir aussi <link linkend="ini.sect.mysql">Configuration MySQL</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </para> <para> <ulink url="&url.mysql;">MySQL</ulink> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ndbm"> <term> <parameter>--with-ndbm[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support NDBM. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ovrimos"> <term> <parameter>--with-ovrimos</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Ovrimos. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-oci8"> <term> <parameter>--with-oci8[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Oracle-oci8. DIR est le dossier d'installation de Oracle-oci8 (par défaut, <filename>ORACLE_HOME</filename>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-oracle"> <term> <parameter>--with-oracle[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support Oracle database. DIR est le dossier d'installation de Oracle (par défaut, <filename>$ORACLE_HOME</filename>). </para> <para> PHP 4: Inclut le support Oracle-oci7. DIR est le dossier d'installation de Oracle-oci7 (par défaut, <filename>ORACLE_HOME</filename>). </para> <simpara> Inclut le support Oracle. Ce support a été testé et permet de travailler avec les versions d'Oracle de 7.0 à 7.3. Le paramètre est le dossier <envar>ORACLE_HOME</envar>. Vous n'avez pas à spécifier ce paramètre si votre environnement Oracle a été configuré. </simpara> <simpara> <ulink url="&url.oracle;">Oracle</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-pgsql"> <term> <parameter>--with-pgsql[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support PostgresSQL. DIR est le dossier d'installation de PostgresSQL (par défaut, <filename>/usr/local/pgsql</filename>). </para> <para> PHP 4: Inclut le support PostgreSQL. DIR est le dossier d'installation de PostgreSQL (par défaut, <filename>/usr/local/pgsql</filename>). Pour compiler en "dl", utilisez la valeur "shared", ou "shared,DIR", pour compiler en "dl", mais spécifier DIR malgré tout. </para> <simpara> Voir aussi <link linkend="ini.sect.pgsql">Postgres</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.pgsql;">PostgreSQL</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-solid"> <term> <parameter>--with-solid[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Solid. DIR est le dossier d'installation de Solid (par défaut, <literal>/usr/local/solid</literal>). </para> <simpara> <ulink url="&url.solid;">Solid</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-sybase-ct"> <term> <parameter>--with-sybase-ct[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Sybase-CT. DIR est le dossier d'installation de Sybase (par défaut, <literal>/home/sybase</literal>). </para> <simpara> Voir aussi <link linkend="ini.sect.sybct">Sybase-CT</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-sybase"> <term> <parameter>--with-sybase[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support Sybase-DB. DIR est le dossier d'installation de Sybase (par défaut, <filename>/home/sybase</filename>). </para> <simpara> Voir aussi <link linkend="ini.sect.sybase">Sybase</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> <simpara> <ulink url="&url.sybase;">Sybase</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-openlink"> <term> <parameter>--with-openlink[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support OpenLink ODBC. DIR est le dossier d'installation d'OpenLink (par défaut <literal>/usr/local/openlink</literal>). A partir de PHP 4.0.6, cette option n'est plus valable. Utilisez plutôt <link linkend="install.configure.with-iodbc"> --with-iodbc</link> si vous voulez utiliser l'ODBC de OpenLink Software. </para> <simpara> <ulink url="&url.openlink;">OpenLink Software</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-iodbc"> <term> <parameter>--with-iodbc[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support iODBC. DIR est le dossier d'installation d'iODBC (par défaut, <filename>/usr/local</filename>). </para> <para> Cette fonctionnalité a d'abord été développée avec le gestionnaire iODBC Driver Manager, un pilote ODBC librement distribuable, qui fonctionne sous divers UNIX. </para> <simpara> <ulink url="&url.freeodbc;">FreeODBC</ulink> ou <ulink url="&url.iodbc;">iODBC</ulink> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-custom-odbc"> <term> <parameter>--with-custom-odbc[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support ODBC, avec une librairie tierce. Le paramètre DIR est le nom du dossier d'installation de cette librairie. Par défaut, il vaut <filename class="directory">/usr/local</filename>. </para> <simpara> Cette option implique qus vous avez défini CUSTOM_ODBC_LIBS lorsque vous éxécutez le script de configuration. Vous devez aussi avoir une en-tête <filename>odbc.h</filename> valide dans vos dossiers d'Inclution. Si vous n'en avez pas, créez le, et ajoutez-y vos en-têtes spécifiques. Votre en-tête peut aussi réclamer d'autres définitions, surtout si elle est multi-plate-forme. Définissez les dans CFLAGS. </simpara> <simpara> Par exemple, vous pouvez utilisez Sybase SQL Anywhere sous QNX comme ceci : <literal> CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50 </literal> </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.disable-unified-odbc"> <term> <parameter>--disable-unified-odbc</parameter> </term> <listitem> <para> PHP 3: Inactive le support unified ODBC. Uniquement valable si iODBC, Adabas, Solid, Velocis ou une interface spéciale ODBC a été activée. </para> <para> PHP 4: Option non disponible en PHP 4 </para> <simpara> Le module Unified ODBC est commun à toutes les bases de données ODBC, comme par exemple Solid, IBM DB2 et Adabas D. Il fonctionne aussi avec les librairies ODBC normales. Des tests ont été menés avec iODBC, Solid, Adabas D, IBM DB2 et Sybase SQL Anywhere. Il requiert une (et une seule) de ces extensions, ou l'extension Velocis, ou une librairie ODBC spéciale. Cette option n'est possible qu'avec l'utilisation de l'une des options suivantes : <link linkend="install.configure.with-iodbc">--with-iodbc</link>, <link linkend="install.configure.with-solid">--with-solid</link>, <link linkend="install.configure.with-ibm-db2">--with-ibm-db2</link>, <link linkend="install.configure.with-adabas">--with-adabas</link>, <link linkend="install.configure.with-velocis">--with-velocis</link>, ou <link linkend="install.configure.with-custom-odbc">--with-custom-odbc</link>. </simpara> <simpara> Voir aussi <link linkend="ini.sect.uodbc">Unified ODBC</link> dans le fichier de <link linkend="configuration.file">configuration</link>. </simpara> </listitem> </varlistentry> <varlistentry id="install.configure.with-unixODBC"> <term> <parameter>--with-unixODBC[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support unixODBC. DIR est le dossier d'installation d'unixODBC (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-velocis"> <term> <parameter>--with-velocis[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclus le support Velocis. DIR est le dossier d'installation de Velocis (par défaut, <literal>/usr/local/velocis</literal>). </para> <simpara> <ulink url="&url.velocis;">Velocis</ulink> </simpara> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.ecommerce"> <title>E-commerce</title> <variablelist> <varlistentry id="install.configure.with-ccvs"> <term> <parameter>--with-ccvs[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Ajoute le support CCVS. DIR est le dossier d'installation de CCVS. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cybermut"> <term> <parameter>--with-cybermut[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support de Cybermut pour PHP 4. DIR est le dossier du SDK Cybermut, qui contient les deux fichiers <filename>libcm-mac.a</filename> et <filename>cm-mac.h</filename>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mck"> <term> <parameter>--with-mck[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support Cybercash MCK. DIR est le dossier d'installation de cybercash mck (par défaut, <filename>/usr/src/mck-3.2.0.3-linux</filename>). Plus d'aide dans le dossier <filename>extra/cyberlib</filename>. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.with-cybercash">--with-cybercash</link> instead. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cybercash"> <term> <parameter>--with-cybercash[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-mck">--with-mck</link> instead. </para> <para> PHP 4: Inclut le support CyberCash. DIR est le dossier d'installation de CyberCash MCK. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pfpro"> <term> <parameter>--with-pfpro[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Verisign Payflow Pro. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.graphics"> <title>Images</title> <variablelist> <varlistentry id="install.configure.enable-freetype-4bit-antialias-hack"> <term> <parameter>--enable-freetype-4bit-antialias-hack</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support de FreeType2 (expérimental). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gd"> <term> <parameter>--with-gd[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support GD. DIR est le dossier d'installation de GD. </para> <para> PHP 4: Inclut le support GD. DIR est le dossier d'installation de GD. Pour compiler en "dl", utilisez la valeur "shared", ou "shared,DIR", pour compiler en "dl", mais spécifier DIR malgré tout. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-gd"> <term> <parameter>--without-gd</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inactive le support GD . </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imagick"> <term> <parameter>--with-imagick[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support ImageMagick. DIR est le dossier d'installation de ImageMagick. S'il est omis, PHP essaiera de le trouver de lui-même (expérimental). </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-jpeg-dir"> <term> <parameter>--with-jpeg-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: dossier JPEG pour pdflib 2.0 </para> <para> PHP 4: dossier JPEG pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-png-dir"> <term> <parameter>--with-png-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: dossier PNG pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-t1lib"> <term> <parameter>--enable-t1lib</parameter> </term> <listitem> <para> PHP 3: Active le support t1lib. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.with-t1lib">--with-t1lib</link> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-t1lib"> <term> <parameter>--with-t1lib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-t1lib">--enable-t1lib</link>. </para> <para> PHP 4: Inclut le support T1lib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tiff-dir"> <term> <parameter>--with-tiff-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: dossier TIFF pour pdflib 2.0 </para> <para> PHP 4: dossier TIFF pour pdflib 3.x et 4.x </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ttf"> <term> <parameter>--with-ttf[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support FreeType. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-xpm-dir"> <term> <parameter>--with-xpm-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: dossier XPM pour GD-1.8+ </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.misc"> <title>Divers</title> <para> Ces options seront classées ultérieurement, lorsqu'une catégorie adéquate apparaîtra. </para> <variablelist> <varlistentry id="install.configure.disable-bcmath"> <term> <parameter>--disable-bcmath</parameter> </term> <listitem> <para> PHP 3: Inactive la librairie BCmath. </para> <para> PHP 4: Option non disponible en PHP 4. La librairie BCmath n'est pas compilée par défaut. Utilisez <link linkend="install.configure.enable-bcmath">--enable-bcmath</link> pour l'inclure. </para> </listitem> </varlistentry> <varlistentry id="install.configure.gmp"> <term> <parameter>--with-gmp</parameter> </term> <listitem> <para> PHP 3, PHP 4 : Inclut le support GMP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-display-source"> <term> <parameter>--disable-display-source</parameter> </term> <listitem> <para> PHP 3: Compile sans afficher le support des sources </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-libtool-lock"> <term> <parameter>--disable-libtool-lock</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Empêche le verrouillage (risque d'empêcher certaines compilations paralléles). </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-pear"> <term> <parameter>--disable-pear</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: N'installe pas PEAR </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-pic"> <term> <parameter>--disable-pic</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive PIC pour les shared objects </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-posix"> <term> <parameter>--disable-posix</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; Utilisez plutôt <link linkend="install.configure.without-posix">--without-posix</link> </para> <para> PHP 4: Inactive les fonctions POSIX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-rpath"> <term> <parameter>--disable-rpath</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive le passage de chemins supplémentaires pour la recherche de librairie lors de l'exécution. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-session"> <term> <parameter>--disable-session</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inactive le support session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-bcmath"> <term> <parameter>--enable-bcmath</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; bcmath est compilée par défaut. Utilisez plutôt <link linkend="install.configure.disable-bcmath">--disable-bcmath</link>, pour l'inactiver. </para> <para> PHP 4: Active le support de l'extension bc maths. Voir aussi <link linkend="ref.bc">les fonctions BCMath</link>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-c9x-inline"> <term> <parameter>--enable-c9x-inline</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active les sémantiques C9x-inline </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-calendar"> <term> <parameter>--enable-calendar</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support des conversions calendaires </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-debug"> <term> <parameter>--enable-debug</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile sans les symboles de débuggages </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-debugger"> <term> <parameter>--enable-debugger</parameter> </term> <listitem> <para> PHP 3: Compile avec les fonctions de débuggage à distance </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-discard-path"> <term> <parameter>--enable-discard-path</parameter> </term> <listitem> <para> PHP 3, PHP 4: Si cette option est activée, le CGI PHP peut être placé hors de l'arborescence web, pour que personne ne puisse l'atteindre, même en contournant les .htaccess. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-dmalloc"> <term> <parameter>--enable-dmalloc</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active dmalloc </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-exif"> <term> <parameter>--enable-exif</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support exif. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-experimental-zts"> <term> <parameter>--enable-experimental-zts</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Cela risque fortement de ne plus compiler du tout! </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-fast-install"> <term> <parameter>--enable-fast-install[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Optimise pour les installations rapides for fast installation (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-force-cgi-redirect"> <term> <parameter>--enable-force-cgi-redirect</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active la vérification interne des redirections serveurs. Il est recommandé d'utiliser cette option si vous avez compilé PHP en CGI. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-inline-optimization"> <term> <parameter>--enable-inline-optimization</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Si vous avez beaucoup de mémoire disponible et que vous utilisez gcc, essayez donc ça. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-libgcc"> <term> <parameter>--enable-libgcc</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active explicitement les liens avec libgcc </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-maintainer-mode"> <term> <parameter>--enable-maintainer-mode</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active des règles de make et de dépendances qui sont parfois absconses et ne servent pas aux utilisateurs habituels (Bref, ne l'utilisez pas). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-memory-limit"> <term> <parameter>--enable-memory-limit</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile avec le support de la limitation de mémoire (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-safe-mode"> <term> <parameter>--enable-safe-mode</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le SAFE_MODE (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-satellite"> <term> <parameter>--enable-satellite</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support CORBA via Satellite (Requiert ORBit) </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shared"> <term> <parameter>--enable-shared[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile les librairies partagées (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sigchild"> <term> <parameter>--enable-sigchild</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le gestionnaire SIGCHLD propre à PHP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-static"> <term> <parameter>--enable-static[=PKGS]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile les librairies en statique (par défaut, <literal>yes</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sysvsem"> <term> <parameter>--enable-sysvsem</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support des sémaphores System V. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sysvshm"> <term> <parameter>--enable-sysvshm</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support de partage de mémoire System V. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-trans-sid"> <term> <parameter>--enable-trans-sid</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active la propagation transparente des identifiants de session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cdb"> <term> <parameter>--with-cdb[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le support CDB. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-config-file-path"> <term> <parameter>--with-config-file-path=PATH</parameter> </term> <listitem> <para> PHP 3: Indique le chemin dans lequel aller lire le fichier <filename>php3.ini</filename>. Par défaut, c'est <filename>/usr/local/lib</filename>. </para> <para> PHP 4: Indique le chemin dans lequel allet lire le fichier <filename>php.ini</filename>. Par défaut, c'est <filename>/usr/local/lib</filename>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-cpdflib"> <term> <parameter>--with-cpdflib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support ClibPDF. DIR est le dossier d'installation de ClibPDF (par défaut, <literal>/usr/local</literal>). </para> <para> PHP 4: Inclut le support ClibPDF.(requires cpdflib >= 2). DIR est le dossier d'installation de cpdfllib (par défaut, <literal>/usr</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-esoob"> <term> <parameter>--with-esoob[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Easysoft OOB. DIR est le dossier d'installation de OOB (par défaut, <literal>/usr/local/easysoft/oob/client</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-exec-dir"> <term> <parameter>--with-exec-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: N'autorise que les exécutables placés dans le dossier DIR, lorsque le SAFE MODE est activé (par défaut, c'est <literal>/usr/local/php/bin</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fdftk"> <term> <parameter>--with-fdftk[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support fdftk. DIR est le dossier d'installation de fdftk (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gnu-ld"> <term> <parameter>--with-gnu-ld</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Suppose que le compilateur C utilise GNU ld (par défaut, <literal>no</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-icap"> <term> <parameter>--with-icap[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support ICAP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imap"> <term> <parameter>--with-imap[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support IMAP. DIR est le dossier d'include d'IMAP (et aussi c-client.a). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-imsp"> <term> <parameter>--with-imsp[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support IMSP.(DIR est le dossier d'installation IMSP, là où il y a les dossiers d'include et libimsp.a). </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-java"> <term> <parameter>--with-java[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Java. DIR est le dossier d'installation du JDK). Cette extension peut uniquement être compilée comme "dl". </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-kerberos"> <term> <parameter>--with-kerberos[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support Kerberos dans IMAP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mcal"> <term> <parameter>--with-mcal[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support MCAL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mcrypt"> <term> <parameter>--with-mcrypt[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mcrypt. DIR est le dossier d'installation de mcrypt. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mhash"> <term> <parameter>--with-mhash[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mhash. DIR est le dossier d'installation de mhash. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mm"> <term> <parameter>--with-mm[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support mm pour le stockage de session. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mod_charset"> <term> <parameter>--with-mod_charset</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le transfert des tables depuis le module Apache mod_charset (Rus Apache). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pdflib"> <term> <parameter>--with-pdflib[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support pdflib (testé avec 0.6 et 2.0). DIR est le dossier d'installation de pdflib (par défaut, c'est <filename>/usr/local</filename>). </para> <para> PHP 4: Inclut le support pdflib 3.x/4.x. DIR est le dossier d'installation de pdflib. Par défaut, c'est <filename>/usr/local</filename>. </para> <para> PHP 4 et PDFlib 3.x/4.x requiert les librairies JPEG et TIFF. Lors de la compilation du support PDFlib utilise les options <link linkend="install.configure.with-jpeg-dir">--with-jpeg-dir</link> et <link linkend="install.configure.with-tiff-dir">--with-tiff-dir</link>. Vous pouvez aussi utiliser <link linkend="install.configure.with-png-dir">--with-png-dir</link> et <link linkend="install.configure.with-zlib-dir">--with-zlib-dir</link>, pour compiler le support PNG et Zlib avec PDFlib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shared-pdflib"> <term> <parameter>--enable-shared-pdflib</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut pdflib comme shared librairy. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-readline"> <term> <parameter>--with-readline[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support readline. DIR est le dossier d'installation de readline. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-regex"> <term> <parameter>--with-regex=TYPE</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Type de librairie d'expressions régulières : système, apache, php </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-servlet"> <term> <parameter>--with-servlet[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support servlet. DIR est le dossier d'installation de JSDK. Ce SAPI demande que l'extension Java soit compilée comme shared dl. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ming"> <term> <parameter>--with-ming</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Flash 4 avec Ming. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-swf"> <term> <parameter>--with-swf[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support SWF. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-system-regex"> <term> <parameter>--with-system-regex</parameter> </term> <listitem> <para> PHP 3: Inactive la librairie d'expressions régulières livrée avec PHP. </para> <para> PHP 4: (Obsolète) Utilise la librairie d'expressions régulières système. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tsrm-pth"> <term> <parameter>--with-tsrm-pth[=pth-config]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Utilise GNU Pth. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-tsrm-pthreads"> <term> <parameter>--with-tsrm-pthreads</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Utilise les threads POSIX (par défaut). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-x"> <term> <parameter>--with-x</parameter> </term> <listitem> <para> PHP 3: Utilise X Window System </para> <para> PHP 4: Option non disponible en PHP 4 </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-bzip2-dir"> <term> <parameter>--with-bz2[=DIR]</parameter> </term> <listitem> <para> PHP 4: Ajoute le support bzip2. DIR est le dossier d'installation de bzip2. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zlib-dir"> <term> <parameter>--with-zlib-dir[=DIR]</parameter> </term> <listitem> <para> PHP 3: Dossier zlib pour pdflib 2.0 ou active le support zlib. </para> <para> PHP 4: Dossier zlib pour pdflib 3.x/4.x ou active le support zlib. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zlib"> <term> <parameter>--with-zlib[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support zlib. (requiert zlib >= 1.0.9). DIR est le dossier d'installation de zlib (par défaut, <literal>/usr</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zziplib"> <term> <parameter>--with-zziplib[=DIR]</parameter> </term> <listitem> <para> PHP 4: Inclut le support ZZIPlib (requiert ZZIPlib >= 0.10.6). DIR est le dossier d'installation de ZZIPliby (par défaut, <literal>/usr/local</literal>). </para> <para> La dernière version de ZZIPlib est disponible à <ulink url="&url.zziplib;">&url.zziplib;</ulink>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-pcre-regex"> <term> <parameter>--without-pcre-regex</parameter> </term> <listitem> <para> PHP 3: Inactive le support des expressions régulières Perl. </para> <para> PHP 4: Inactive le support des expressions régulières Perl. Utilisez --with-pcre-regex=DIR pour spécifier le dossier d'installation de PCRE, si vous n'utilisez pas la librairie livrée en standard. </para> </listitem> </varlistentry> <varlistentry id="install.configure.without-posix"> <term> <parameter>--without-posix</parameter> </term> <listitem> <para> PHP 3: N'Inclut pas lrs fonctions POSIX. </para> <para> PHP 4: Option non disponible en PHP 4; utilisez plutôt <link linkend="install.configure.disable-posix">--disable-posix</link>. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.networking"> <title>Réseau</title> <variablelist> <varlistentry id="install.configure.with-curl"> <term> <parameter>--with-curl[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support CURL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-ftp"> <term> <parameter>--enable-ftp</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-ftp">--with-ftp</link> </para> <para> PHP 4: Active le support FTP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-ftp"> <term> <parameter>--with-ftp</parameter> </term> <listitem> <para> PHP 3: Inclut le support FTP. </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-ftp">--enable-ftp</link> instead </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-url-fopen-wrapper"> <term> <parameter>--disable-url-fopen-wrapper</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inactive le support des URL avec <function>fopen</function>. </para> <warning> <para> Cette option n'est disponible que jusqu'à la version 4.0.3. Les versions plus récentes fournissent un paramètre dans le fichier <filename>php.ini</filename> appelé <parameter>allow_url_fopen</parameter>, afin de vous éviter de faire ce choix au moment de la compilation. </para> </warning> </listitem> </varlistentry> <varlistentry id="install.configure.with-mod-dav"> <term> <parameter>--with-mod-dav=DIR</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support DAV, grâce au module Apache mod_dav. DIR est le dossier d'installation de mod_dav (valable uniquement pour les serveurs Apache). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-openssl"> <term> <parameter>--with-openssl[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support OpenSSL avec SNMP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-snmp"> <term> <parameter>--with-snmp[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support SNMP. DIR est le dossier d'installation de SNMP (par défaut, il scanne un nombre de dossiers habituels de l'installation SNMP). Utilisez la valeur de "shared" pour compiler sous forme de "dl", ou "shared,DIR" pour compiler sous forme de "dl" tout en spécifiant un dossier. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-ucd-snmp-hack"> <term> <parameter>--enable-ucd-snmp-hack</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active le hack UCD SNMP </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sockets"> <term> <parameter>--enable-sockets</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support des sockets. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-yaz"> <term> <parameter>--with-yaz[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support YAZ.(ANSI/NISO Z39.50). DIR est le dossier d'installation de YAZ (dossier bin). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-yp"> <term> <parameter>--enable-yp</parameter> </term> <listitem> <para> PHP 3: Option non disponible; utilisez plutôt <link linkend="install.configure.with-yp">--with-yp</link> </para> <para> PHP 4: Active le support YellowPages (YP). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-yp"> <term> <parameter>--with-yp</parameter> </term> <listitem> <para> PHP 3: Active le support YellowPages (YP). </para> <para> PHP 4: Option non disponible; utilisez plutôt <link linkend="install.configure.enable-yp">--enable-yp</link> </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-mnogosearch"> <term> <parameter>--with-mnogosearch</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support mnoGoSearch. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.php"> <title>Comportement PHP</title> <variablelist> <varlistentry id="install.configure.enable-magic-quotes"> <term> <parameter>--enable-magic-quotes</parameter> </term> <listitem> <para> PHP 3, PHP 4: Active les magic quotes par défaut. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-short-tags"> <term> <parameter>--disable-short-tags</parameter> </term> <listitem> <para> PHP 3, PHP 4: Désactive la forme courte des balises PHP (<? ?>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-track-vars"> <term> <parameter>--enable-track-vars</parameter> </term> <listitem> <para> PHP 3: Active le suivi des variables GET/POST/Cookie par défaut. </para> <para> PHP 4: Option non disponible en PHP 4; à partir de PHP 4.0.2, cette option est toujours activée. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.servers"> <title>Serveur</title> <variablelist> <varlistentry id="install.configure.with-aolserver-src"> <term> <parameter>--with-aolserver-src=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'à la distribution source de AOLserver </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-aolserver"> <term> <parameter>--with-aolserver=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'à la distribution installée de AOLserver. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-apache"> <term> <parameter>--with-apache[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP en module Apache. DIR est le dossier d'installation supérieur d'Apache (par défaut, <literal>/usr/local/etc/httpd</literal>. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-apxs"> <term> <parameter>--with-apxs[=FILE]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP comme module partagé d'Apache module. FILE est le chemin optionnel jusqu'à Apache apxs tool; par défaut, c'est apxs). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-versioning"> <term> <parameter>--enable-versioning</parameter> </term> <listitem> <para> PHP 3: Tire profit du système de versionnage et de scoping fourni par Solaris 2.x et Linux </para> <para> PHP 4: Exporte uniquement les symboles nécessaires. Voyez l'installation pour plus de détails. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-caudium"> <term> <parameter>--with-caudium[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP sous forme de module Pike pour être utilisé avec le serveur web Caudium. DIR est le dossier d'installation de Caudium (par défaut, <literal>$prefix/caudium/server</literal>. Le préfixe est paramétré par l'option --prefix (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-fhttpd"> <term> <parameter>--with-fhttpd[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Compile PHP comme module fhttpd. DIR est le dossier d'installation de fhttpd (par défaut, <literal>/usr/local/src/fhttpd</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-nsapi"> <term> <parameter>--with-nsapi=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Indique le chemin jusqu'au serveur Netscape </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-phttpd"> <term> <parameter>--with-phttpd=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pi3web"> <term> <parameter>--with-pi3web=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module pour Pi3Web. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-roxen"> <term> <parameter>--with-roxen=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module pour Pi3Web Pike. DIR est le dossier d'installation de Roxen (par défaut, <literal>/usr/local/roxen/server</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-roxen-zts"> <term> <parameter>--enable-roxen-zts</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile le module Roxen en utilisant Zend Thread Safety. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-thttpd"> <term> <parameter>--with-thttpd=SRCDIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-zeus"> <term> <parameter>--with-zeus=DIR</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Compile PHP comme module ISAPI pour Zeus. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.text"> <title>Texte et langue</title> <variablelist> <varlistentry id="install.configure.with-aspell"> <term> <parameter>--with-aspell[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support ASPELL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-gettext"> <term> <parameter>--with-gettext[=DIR]</parameter> </term> <listitem> <para> PHP 3, PHP 4: Inclut le support GNU gettext. DIR est le dossier d'installation de gettext (par défaut, <literal>/usr/local</literal>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-iconv"> <term> <parameter>--with-iconv[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support iconv. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-pspell"> <term> <parameter>--with-pspell[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Inclut le support PSPELL. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-recode"> <term> <parameter>--with-recode[=DIR]</parameter> </term> <listitem> <para> PHP 3: Inclut le support GNU recode. </para> <para> PHP 4: Inclut le support recode. DIR est le dossier d'installation de recode. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-shmop"> <term> <parameter>--enable-shmop</parameter> </term> <listitem> <para> PHP 3, PHP 4 : Inclut le support shmop. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.xml"> <title>XML</title> <variablelist> <varlistentry id="install.configure.with-dom"> <term> <parameter>--with-dom[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support DOM. (requiert libxml >= 2.0). DIR est le dossier d'installation de libxml (par défaut, <filename>/usr</filename>). </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-sablot-errors-descriptive"> <term> <parameter>--enable-sablot-errors-descriptive</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active les erreurs descriptives. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-sablot"> <term> <parameter>--with-sablot[=DIR]</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support Sablotron. </para> </listitem> </varlistentry> <varlistentry id="install.configure.enable-wddx"> <term> <parameter>--enable-wddx</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3 </para> <para> PHP 4: Active le support WDDX. </para> </listitem> </varlistentry> <varlistentry id="install.configure.disable-xml"> <term> <parameter>--disable-xml</parameter> </term> <listitem> <para> PHP 3: Option non disponible en PHP 3; Les fonctions XML ne sont pas construites par défaut. Utilisez plutôt <link linkend="install.configure.with-xml">--with-xml</link> pour les activer. </para> <para> PHP 4: Inactive le support XML, qui utilise la librairie expat, livrée avec PHP. </para> </listitem> </varlistentry> <varlistentry id="install.configure.with-xml"> <term> <parameter>--with-xml</parameter> </term> <listitem> <para> PHP 3: Active le support XML. </para> <para> PHP 4: Option non disponible en PHP 4; Le support XML est activé par défaut. Utilisez plutôt <link linkend="install.configure.disable-xml">--disable-xml</link> pour l'inactiver. </para> </listitem> </varlistentry> </variablelist> </sect2> </sect1> <sect1 id="install.windows"> <title>Installation sous Windows</title> <para> Cette section s'applique aux systèmes Windows 95/98/Me et Windows NT/2000/XP. (La configuration n'est actuellement pas confirmée sous XP). Ne vous attendez pas à ce que PHP fonctionne sur les plateformes 16 bits, comme Windows 3.1. Parfois, on décrira les plateformes supportées sous le nom de Win32. </para> <para> Il y a deux méthodes principales pour installer PHP sous Windows : soit <link linkend="install.windows.manual">manuellement</link>, soit avec <link linkend="install.windows.installer">InstallShield</link>. </para> <para> Si vous avez Microsoft Visual Studio, vous pouvez aussi <link linkend="install.windows.build">compiler</link> PHP à partir des sources. </para> <para> Une fois que PHP est installé sur votre Windows, vous pouvez aussi ajouter diverses <link linkend="install.windows.extensions">extensions</link>. </para> <sect2 id="install.windows.installer"> <title>InstallShield sous Windows</title> <para> L'installeur Windows de PHP disponible depuis les pages de <ulink url="&url.php;">téléchargement</ulink>, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami. Notez bien que bien que InstallShield soit une méthode simple pour installer PHP, il est limité dans son fonctionnement, puisque l'installation automatique des extensions n'est pas prise en compte. </para> <simpara> Installez votre serveur <acronym>HTTP</acronym> favori sur votre système et assurez-vous qu'il fonctionne. </simpara> <simpara> Exécutez l'installeur et suivez les instructions fournies par le wizard. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement. </simpara> <simpara> Le wizard d'installation rassemble suffisamment d'informations pour configurer <filename>php.ini</filename> et le serveur web qui utilisera PHP. Pour IIS, mais aussi PWS sous NT Workstation, une liste de l'arboresence web est affichée, et vous pouvez sélectionner les dossiers qui utiliseront PHP. </simpara> <simpara> Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement. </simpara> <warning> <para> Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destinée à l'utilisation sur des serveurs de production. </para> </warning> </sect2> <sect2 id="install.windows.manual"> <title>Instructions Générales d'installation</title> <simpara> Ce guide vous permet d'installer et de configurer manuellement PHP sur vos stations Windows 9x/Me/NT/2000. La première version de ce guide a été compilée par &link.bob;. La version originale est disponible (en anglais) à <ulink url="&url.win32install;">&url.win32install;</ulink>. </simpara> <para> Ce guide fournit une aide d'installation pour : <itemizedlist> <listitem> <para> Personal Web Server (Version la plus récente recommandée) </para> </listitem> <listitem> <para> Internet Information Server 3 ou 4 </para> </listitem> <listitem> <para> Apache 1.3.x </para> </listitem> <listitem> <para> Omni HTTPd 2.0b1 et plus récent </para> </listitem> <listitem> <para> Oreilly Website Pro </para> </listitem> <listitem> <para> Xitami </para> </listitem> <listitem> <para> Netscape Enterprise Server, iPlanet </para> </listitem> </itemizedlist> </para> <para> PHP 4 pour Windows est décliné en deux versions : un exécutable CGI (<filename>php.exe</filename>), et plusieurs modules SAPI (par exemple php4isapi.dll). Cette dernière forme est nouvelle pour PHP 4 et founit des performances améliorées ainsi que des fonctionnalités supplémentaires. </para> <para> Notez cependant que les modules SAPI <emphasis>ne sont pas</emphasis> considéré comme ayant atteint une qualité de production. La raison à cela est que les modules SAPI utilisent le système de thread sécurisé de PHP, ce qui est nouveau en PHP 4, et qui n'a pas été testé et torturé suffisamment pour être considérés comme stable. </para> <para> Il y a encore quelques bugs qui trainent. D'un autre côté, certains d'entre vous ont rapporté des résultats significativement meilleurs avec les modules SAPI, même si nous ne connaissons actuellement personne qui le fasse fonctionner en production. En clair, faites votre choix : soit vous avez absolument besoin de stabilité, et il vaut mieux laisser les performances SAPI de côté; soit vous avez besoin de performances, et alors c'est l'occasion de tester en production et de nous rapporter vos résultats. </para> <para> Si vous choisissez l'un des modules SAPI et utilisez Windows 95, pensez à télécharger la mise à jour DCOM à <ulink url="http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe">Microsoft DCOM pages</ulink>. Pour le module ISAPI, comme un serveur web compatible est nécessaire (testé avec IIS 4.0, PWS 4.0 et IIS 5.0). IIS 3.0 <emphasis>n'est pas</emphasis> supporté; vous devez télécharger et installer le Windows NT 4.0 Option Pack avec IIS 4.0 si vous voulez le support natif de PHP. </para> <para> Voici les différentes étapes d'installation avant les étapes spécifiques au serveur. <itemizedlist> <listitem> <para> Extrayez la distribution dans le dossier de votre choix. <filename>"C:\php\"</filename> est une bonne idée. </para> </listitem> <listitem> <para> Vous devez vous assurer que les DLL que PHP utilise sont disponibles. La liste précise des DLL dépend du serveur web que vous utiliser, et de la méthode que vous utiliser pour faire exécuter vos script (CGI ou module). <filename>php4ts.dll</filename> est toujours nécessaire. Si vous utiliser PHP en module, (e.g. ISAPI or Apache), vous aurez besoin de la DLL ad hoc, dans le dossier <filename>sapi</filename>. Si vous utilisez des extensions PHP, vous aurez besoin des DLL associées. Pour être certains que les DLL sont accessibles, vous pouvez les copier dans le dossier système (i.e. <filename>winnt/system32</filename> ou <filename>windows/system</filename>) ou vous pouvez vous assurer qu'elles sont dans le même dossier que l'exécutable PHP ou les autres DLL de votre serveur web (i.e. php.exe, ou php4apache.dll). </para> <para> L'exécutable binaire PHP, les modules SAPI, et certaines extensions utilisent des DLL externes. Assurez vous que ces DLL sont dans votre distribution, et dans un dossier qui est cité dans le PATH Windows. Le mieux à faire est de copier les fichiers ci-dessous dans votre dossier système, qui est généralement : <simplelist> <member>c:\windows\system pour Windows 9x/Me</member> <member>c:\winnt\system32 pour Windows NT/2000</member> </simplelist> Les fichiers à copier sont : <simplelist> <member> 'php4ts.dll', s'il existe, écrasez le </member> <member> Les fichiers 'dlls' de votre distribution. Si vous les avez déjà installé, ne les remplacez pas, sauf si quelquechose ne fonctionne pas correctement (avant de les écraser, il est recommandé de les sauver de toutes manières, au cas où quelque chose irait de travers). </member> </simplelist> </para> <para> Téléchargez la dernière version de Microsoft Data Access Components (MDAC) pour votre plateforme, spécialement si vous utilisez Microsoft Windows 9x/NT4. MDAC est disponible à <ulink url="&url.mdac;">&url.mdac;</ulink>. </para> </listitem> <listitem> <para> Copiez le fichier '<filename>php.ini-dist</filename>' dans votre dossier '%WINDOWS%' sous Windows 95/98, ou vers votre dossier '%SYSTEMROOT%' sous Windows NT ou Windows 2000 et renommez le en '<filename>php.ini</filename>'. Votre dossier '%WINDOWS%' ou '%SYSTEMROOT%' est généralement : <simplelist> <member>c:\windows pour Windows 9x/Me</member> <member>c:\winnt ou c:\winnt40 pour les serveurs NT/2000</member> </simplelist> </para> <para> Il y a deux fichiers ini, distribués dans le fichier zip, <filename>php.ini-dist</filename> et <filename>php.ini-optimized</filename>. Nous vous recommandons d'utiliser <filename>php.ini-optimized</filename>, car nous l'avons optimisé d'un point de vue sécurité et vitesse d'exécution. Le mieux est tout de même de lire le fichier de configuration <link linkend="configuration.file">php.ini</link> et de choisir vos options manuellement. Si vous voulez atteindre un meilleur niveau de sécurité, c'est par ce moyen que vous pourez le faire, même si PHP focntionne parfaitement avec les configurations par défaut. </para> </listitem> <listitem> <para> Editez votre fichier <filename>php.ini</filename> : <itemizedlist> <listitem> <simpara> Vous devez changer votre option 'extension_dir' pour qu'il pointe sur votre dossier d'installation PHP, ou vers l'endroit où vous avez installé vos 'php_*.dll'. ex: c:\php\extensions </simpara> </listitem> <listitem> <simpara> Si vous utilisez Omni Httpd, sautez l'étape suivante. Modifiez 'doc_root' pour qu'il pointe sur votre racine de serveur web. ex: <filename>c:\apache\htdocs</filename> ou <filename>c:\webroot</filename>. </simpara> </listitem> <listitem> <simpara> Choisissez les modules que vous voulez charger lorsque PHP démarre. Vous pouvez décommenter les lignes 'extension=php_*.dll' pour charger ces modules. Certains modules requièrent que des librairies supplémentaires soient installées sur votre système. La <ulink url="&url.php.faq;">FAQ</ulink> PHP a plus d'informations sur ces librairies. Vous pouvez aussi charger dynamiquement ces librairies avec <command>dl("php_*.dll");</command>. Voyez la section sur les <link linkend="install.windows.extensions">extensions Windows</link>. </simpara> </listitem> <listitem> <simpara> Sous PWS et IIS, vous pouvez modifier le fichier <filename>browscap.ini</filename> pour qu'il pointe sur : <filename>c:\windows\system\inetsrv\browscap.ini</filename> sous Windows 9x/Me et <filename>c:\winnt\system32\inetsrv\browscap.ini</filename> sous NT/2000. </simpara> </listitem> <listitem> <simpara> Notez que le dossier <filename>mibs</filename> fourni avec la distribution Windows, contient des fichiers de support du protocole SNMP. Ce dpssier doit être déplacé dans le dossier <filename>DRIVE:\usr\mibs</filename> (<filename>DRIVE</filename> est le périphérique où PHP est installé.) </simpara> </listitem> </itemizedlist> </para> </listitem> </itemizedlist> </para> </sect2> <sect2 id="install.windows.build"> <title>Compilation des sources</title> <para> Avant de commencer, il est bon de se poser la question suivante : "Pourquoi la compilation de PHP sous Windows est si difficile?". Deux raisons viennent immédiatement à l'esprit : </para> <orderedlist> <listitem><simpara> Windows ne dispose pas (encore) d'une grande communauté de développeurs qui partagent librement leurs sources. La conséquence directe est que les investissements nécessaires en infrastructure pour supporter ce type de développement n'ont pas été faits. Ce qui fait que le portage des utilitaires Unix a été la solution pour pallier ce manque. Ne soyez donc pas surpris de rencontrer cette parenté de temps en temps. </simpara></listitem> <listitem><simpara> La majorité des instructions que vous allez rencontrer sont du type : "faire et oublier". Alors, asseyez-vous confortablement et suivez aussi scrupuleusement que possible les instructions. </simpara></listitem> </orderedlist> <sect3 id="install.windows.build.prepare"> <title>Préparation</title> <para> Avant de commencer, il faut télécharger un maximum de fichiers! </para> <itemizedlist> <listitem> <simpara> Pour commencer, téléchargez le Cygwin depuis le miroir <ulink url="http://sources.redhat.com/cygwin/download.html">cygwin</ulink> le plus proche. Cela vous donnera les utilitaires GNU les plus populaires, utilisés durant le processus de compilation. </simpara> </listitem> <listitem> <simpara> Téléchargez le reste des utilitaires de compilation dont vous aurez besoin depuis le site PHP à <ulink url="http://www.php.net/extra/win32build.zip"> http://www.php.net/extra/win32build.zip</ulink>. </simpara> </listitem> <listitem> <simpara> Téléchargez le code source du DNS utilisé par PHP à <ulink url="http://www.php.net/extra/bindlib_w32.zip"> http://www.php.net/extra/bindlib_w32.zip</ulink>. Il remplacera le fichier <filename>resolv.lib</filename> inclut dans <filename>win32build.zip</filename>. </simpara> </listitem> <listitem> <simpara> Si vous n'avez pas d'utilitaire de dézippage, vous devez en télécharger un. Une version libre est disponible à <ulink url="http://www.cdrom.com/pub/infozip/UnZip.html">InfoZip</ulink>. </simpara> </listitem> </itemizedlist> <simpara> Finalement, vous aurez besoin des sources PHP 4 elles-mêmes!! Les dernières versions sont accessibles sur le serveur CVS <ulink url="http://www.php.net/anoncvs.php">anonyme</ulink>. Si vous téléchargez une version <ulink url="http://snaps.php.net/">intermédiaire</ulink> ou la <ulink url="http://www.php.net/downloads.php">source</ulink>, vous devez non seulement extraire les fichiers, mais aussi convertir les nouvelles lignes en leur équivalent windows (crlf) dans les fichiers <filename>*.dsp</filename> et <filename>*.dsw</filename> avant que Microsoft Visual C++ ne soit capable de les comprendre. </simpara> <note> <simpara> Placez les dossiers <filename>Zend</filename> et <filename>TSRM</filename> dans le dossier <filename>php4</filename> pour que les projets puissent les trouver durant la compilation. </simpara> </note> </sect3> <sect3 id="install.windows.build.install"> <title>Mettre tout ensemble</title> <itemizedlist> <listitem> <simpara> Suivez les instructions pour installer l'utilitaire d'unzip de votre choix. </simpara> </listitem> <listitem> <simpara> Exécutez <filename>setup.exe</filename> et suivez les instructions d'installation. Si vous décidez d'installer dans un autre dossier que <filename>c:\cygnus</filename>, indiquez le au processus de compilation en modifiant la variable d'environnement Cygwin. Sous Windows 9x/Me, modifier une variable d'environnement se fait en ajoutant une ligne dans le fichier <filename>autoexec.bat</filename>. Sous Windows NT, allez dans le menu "Démarrer => Paramètres => Panneau de contrôle => Système " ("My Computer => Control Panel => System ") et sélectionnez l'onglet "environnement" ("environment"). </simpara> <warning> <simpara> Créez un dossier temporaire pour Cygwin, sinon de nombreuses commandes (comme bison) échoueront. Sous Windows 9x/Me, <userinput>mkdir C:\TMP</userinput>. Sous Windows NT, <userinput>mkdir %SystemDrive%\tmp</userinput>. </simpara> </warning> </listitem> <listitem> <simpara> Créez un dossier et dézippez <filename>win32build.zip</filename> dedans. </simpara> </listitem> <listitem> <simpara> Lancez Microsoft Visual C++, et allez dans le menu "select Tools => Options". Dans le dialogue, sélectionnez l'onglet "directories". Assurez-vous que <filename>cygwin\bin</filename>, <filename>win32build\include</filename>, et <filename>win32build\lib</filename> sont bien dans les menus déroulants "Executables", "Include", et "Library". (Pour ajouter une entrée, sélectionnez une ligne blanche, et tapez). Une entrée typique ressemble à ceci : </simpara> <itemizedlist> <listitem> <simpara> <filename>c:\cygnus\bin</filename> </simpara> </listitem> <listitem> <simpara> <filename>c:\php-win32build\include</filename> </simpara> </listitem> <listitem> <simpara> <filename>c:\php-win32build\lib</filename> </simpara> </listitem> </itemizedlist> <simpara> Pressez "OK", et sortez de Visual C++. </simpara> </listitem> <listitem> <simpara> Créez un autre dossier et dézippez <filename>bindlib_w32.zip</filename> dedans. Décidez si vous avez besoin des symboles de débuggage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration adéquate : </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs de GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et "bindlib". Puis sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration voulue. Enfin, sélectionnez "Build=>Rebuild All". </simpara> </listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté <command>vcvars.bat</command>. Exécutez maintenant l'une des commandes suivantes : </simpara> <itemizedlist> <listitem> <simpara> <userinput>msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"</userinput> </simpara> </listitem> <listitem> <simpara> <userinput>msdev bindlib.dsp /MAKE "bindlib - Win32 Release"</userinput> </simpara> </listitem> </itemizedlist> </listitem> <listitem> <simpara> A ce stade, vous avez une librairie <filename>resolv.lib</filename> utilisable, soit dans votre dossier <filename>Debug</filename>, soit sans le dossier <filename>Release</filename>. Copiez ce fichier dans votre dossier <filename>win32build\lib</filename>, en remplaçant le fichier du même nom. </simpara> </listitem> </itemizedlist> </listitem> </itemizedlist> </sect3> <sect3 id="install.windows.build.compile"> <title>Compilation</title> <simpara> La meilleure façon de compiler est de commander par la version CGI/exécutable. </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et sélectionnez "php4ts". Ensuite, sélectionnez le menu "Build=>Set Active Configuration", et sélectionnez la configuration voulue. Finalement, sélectionnez le menu "Build=>Rebuild All". </simpara></listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté <command>vcvars.bat</command>. Exécutez maintenant l'une des commandes suivantes : </simpara> <itemizedlist> <listitem><simpara> <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"</userinput> </simpara></listitem> <listitem><simpara> <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"</userinput> </simpara></listitem> <listitem> <simpara> A ce stade, vous avez une librairie <filename>php.exe</filename> utilisable, soit dans votre dossier <filename>Debug_TS</filename> soit sans le dossier <filename>Release_TS</filename>. </simpara> </listitem> </itemizedlist> </listitem> </itemizedlist> <simpara> Répétez les instructions ci-dessus avec <filename>php4isapi.dsp</filename> (qui est dans <filename>sapi\isapi</filename>) pour compiler le code nécessaire pour intégrer PHP avec Microsoft IIS. </simpara> </sect3> </sect2> <sect2 id="install.windows.extensions"> <title>Installation des extensions sous Windows</title> <para> Après avoir installé PHP et votre serveur web sous Windows, vous voudrez sûrement ajouter quelques extensions bien pratiques. La table suivante liste une partie des extensions disponibles. Comme indiqué dans le manuel, vous pouvez choisir quelles extensions vous voulez charger en décommentant la ligne 'extension=php_*.dll' dans le fichier <filename>php.ini</filename>. Vous pouvez aussi charger dynamiquement un module avec la fonction <function>dl</function>. </para> <para> Les fichiers DLLs des extensions PHP sont préfixés par 'php_' en PHP 4, et 'php3_' en PHP 3. Cela évite la confusion des extensions PHP et de leurs librairies. </para> <note> <para> En PHP 4.0.4pl1, les extensions BCMath, BCMath,Calendar, COM, FTP, MySQL, ODBC, PCRE, Sessions, WDDX et XML sont activées <emphasis>par défaut</emphasis>. Vous n'avez rien à faire pour qu'elles soient inclues. Lisez le fichier <filename>README.txt</filename> ou <filename>install.txt</filename> dans votre distribution pour connaître la liste des modules par défaut. </para> </note> <note> <para> Certaines de ces extensions requièrent des librairies DLL supplémentaires pour fonctionner correctement. Certaines d'entre elles sont disponibles dans la distribution. dans le dossier <filename>dlls</filename> mais certaines (comme Oracle (php_oci8.dll)), demandent des dlls qui ne sont pas dans la distribution. </para> <para> Copiez les dlls fournies depuis le dossier <filename>dlls</filename> dans votre PATH Windows. Les bons emplacements sont typiquement <simplelist> <member>c:\windows\system pour Windows 9x/Me</member> <member>c:\winnt\system32 pour Windows NT/2000</member> </simplelist> Si vous les avez déjà d'installées sur votre système, ne les écrasez que si PHP ne fonctionne pas correctement (et de toutes manières, faites une sauvegarde de ces DLL, en cas de problème). </para> </note> <para> <table> <title>Extensions PHP</title> <tgroup cols="3"> <thead> <row> <entry>Extension</entry> <entry>Description</entry> <entry>Notes</entry> </row> </thead> <tbody> <row> <entry>php_bz2.dll</entry> <entry>Fonctions de compression Bzip2</entry> <entry>Aucune</entry> </row> <row> <entry>php_calendar.dll</entry> <entry>Fonctions de conversions calendaires (Depuis PHP 4.03, elles sont activées par défaut)</entry> <entry>Activée automatiquement depuis PHP 4.0.3</entry> </row> <row> <entry>php_cpdf.dll</entry> <entry>Fonctions ClibPDF</entry> </row> <row> <entry>php_crypt.dll</entry> <entry>Fonctions de cryptage</entry> <entry>Aucune</entry> </row> <row> <entry>php_ctype.dll</entry> <entry>Fonctions ctype</entry> <entry>Aucune</entry> </row> <row> <entry>php_curl.dll</entry> <entry>Fonctions CURL</entry> <entry>Requiert : libeay32.dll, ssleay32.dll (fournies)</entry> </row> <row> <entry>php_cybercash.dll</entry> <entry>Fonctions de paiement Cybercash</entry> <entry>Aucune</entry> </row> <row> <entry>php_db.dll</entry> <entry>Fonctions DBM</entry> <entry>Obsolète. Utilisez DBA à la place (php_dba.dll)</entry> </row> <row> <entry>php_dba.dll</entry> <entry>Fonctions dbm-style</entry> <entry>Aucune</entry> </row> <row> <entry>php_dbase.dll</entry> <entry>Fonctions DBase</entry> <entry>Aucune</entry> </row> <row> <entry>php3_dbm.dll</entry> <entry>Librairie d'émulation GDBM via Berkely DB2</entry> <entry>Aucune</entry> </row> <row> <entry>php_domxml.dll</entry> <entry>Fonctions DOM XML</entry> <entry>Requiert : libxml2.dll (fournie)</entry> </row> <row> <entry>php_dotnet.dll</entry> <entry>Fonctions .NET</entry> <entry>Aucune</entry> </row> <row> <entry>php_exif.dll</entry> <entry>Entêtes EXIF des images JPEG</entry> <entry>Aucune</entry> </row> <row> <entry>php_fbsql.dll</entry> <entry>Fonctions FrontBase</entry> <entry>Aucune</entry> </row> <row> <entry>php_fdf.dll</entry> <entry>Fonction FDF (Forms Data Format)</entry> <entry>Requiert: fdftk.dll (fournie)</entry> </row> <row> <entry>php_filepro.dll</entry> <entry>Lecture des bases filepro</entry> <entry>Accès en lecture seule</entry> </row> <row> <entry>php_ftp.dll</entry> <entry><link linkend="ref.ftp">Fonctions FTP</link></entry> <entry>Activée par défaut depuis PHP 4.0.3</entry> </row> <row> <entry>php_gd.dll</entry> <entry>Bibliothèque GD (pour les manipulations d'images)</entry> <entry>Aucune</entry> </row> <row> <entry>php_gettext.dll</entry> <entry>Fonctions GNU Gettext</entry> <entry>Requiert : gnu_gettext.dll (fournie)</entry> </row> <row> <entry>php_hyperwave.dll</entry> <entry>Fonctions HyperWave</entry> <entry>Aucune</entry> </row> <row> <entry>php_iconv.dll</entry> <entry>Fonctions de conversions ICONV</entry> <entry>Requiert : iconv-1.3.dll (fournie)</entry> </row> <row> <entry>php_ifx.dll</entry> <entry>Fonctions Informix</entry> <entry>Requiert: librairies Informix</entry> </row> <row> <entry>php_iisfunc.dll</entry> <entry>Fonctions IIS</entry> <entry>Aucune</entry> </row> <row> <entry>php_imap.dll</entry> <entry>Fonctions IMAP 4(en PHP 3: php3_imap4r1.dll)</entry> <entry>PHP 3: php3_imap4r1.dll</entry> </row> <row> <entry>php_ingres.dll</entry> <entry>Fonctions Ingres II</entry> <entry>Requiert: librairies Ingres II</entry> </row> <row> <entry>php_interbase.dll</entry> <entry>Fonctions InterBase</entry> <entry>Requiert: gds32.dll (fournie)</entry> </row> <row> <entry>php_java.dll</entry> <entry>Extension Java</entry> <entry>Requiert: jvm.dll (fournie)</entry> </row> <row> <entry>php_ldap.dll</entry> <entry>Fonctions LDAP</entry> <entry>Requiert: libsasl.dll (fournie)</entry> </row> <row> <entry>php_mhash.dll</entry> <entry>Fonctions Mhash</entry> <entry>Aucune</entry> </row> <row> <entry>php_ming.dll</entry> <entry>Fonctions Ming pour Flash</entry> <entry>Aucune</entry> </row> <row> <entry>php_msql.dll</entry> <entry>Fonctions mSQL</entry> <entry>Requiert: msql.dll (fournie)</entry> </row> <row> <entry>php3_msql1.dll</entry> <entry>Fonctions mSQL 1</entry> <entry>Aucune</entry> </row> <row> <entry>php3_msql2.dll</entry> <entry>Fonctions mSQL 2</entry> <entry>Aucune</entry> </row> <row> <entry>php_mssql.dll</entry> <entry>Fonctions MSSQL (anciennement php_mssql70.dll, requiert MSSQL DB-Libraries)</entry> <entry>Requiert: ntwdblib.dll (fournie)</entry> </row> <row> <entry>php3_mysql.dll</entry> <entry>Fonctions MySQL (Activées par défaut en PHP 4)</entry> <entry>Aucune</entry> </row> <row> <entry>php_nsmail.dll</entry> <entry>Fonctions Netscape mail</entry> <entry>Aucune</entry> </row> <row> <entry>php3_oci73.dll</entry> <entry>Fonctions Oracle</entry> <entry>Aucune</entry> </row> <row> <entry>php_oci8.dll</entry> <entry>Fonctions Oracle 8</entry> <entry>Requiert: librairies clientes Oracle 8</entry> </row> <row> <entry>php_openssl.dll</entry> <entry>Fonctions OpenSSL</entry> <entry>Requiert: libeay32.dll (fournie)</entry> </row> <row> <entry>php_oracle.dll</entry> <entry>Fonctions Oracle</entry> <entry>Requiert: librairies clientes Oracle 7</entry> </row> <row> <entry>php_pdf.dll</entry> <entry>Fonctions PDF</entry> <entry>Aucune</entry> </row> <row> <entry>php_pgsql.dll</entry> <entry>Fonctions PostgreSQL</entry> <entry>Aucune</entry> </row> <row> <entry>php_printer.dll</entry> <entry>Fonctions d'impression</entry> <entry>Aucune</entry> </row> <row> <entry>php_sablot.dll</entry> <entry>Focntions XSLT</entry> <entry>Requiert: sablot.dll (fournie)</entry> </row> <row> <entry>php_snmp.dll</entry> <entry>Fonctions <acronym>SNMP</acronym> get et walk</entry> <entry>NT uniquement!</entry> </row> <row> <entry>php_sybase_ct.dll</entry> <entry>Fonctions Sybase</entry> <entry>Requiert: librairies clientes Sybase</entry> </row> <row> <entry>php_yaz.dll</entry> <entry>Fonctions YAZ</entry> <entry>Aucune</entry> </row> <row> <entry>php_zlib.dll</entry> <entry>Fonctions ZLib</entry> <entry>Aucune</entry> </row> </tbody> </tgroup> </table> </para> </sect2> </sect1> <sect1 id="install.apache"> <title>Installation du serveur Apache</title> <para> Cette section contient des notes spécifiques pour l'installation de PHP avec Apache, aussi bien pour la version <link linkend="install.apache.unix">Unix</link> que <link linkend="install.apache.windows">Windows</link>. </para> <sect2 id="install.apache.unix"> <title>Détails pour l'installation de PHP sous Apache sous Unix.</title> <simpara> Il y a deux méthodes d'installation de PHP avec Apache 1.3.x sous Windows. L'une passe par les CGI (php.exe), l'autre est d'utiliser la DLL de module d'apache. Dans les deux cas, vous devrez arrêter le serveur Apache, et éditer le fichier <filename>srm.conf</filename> ou <filename>httpd.conf</filename>, pour configurer Apache avec PHP. </simpara> <para> Vous pouvez sélectionner des options à ajouter au fichier <command>configure</command> à la ligne 8 depuis la <link linkend="install.configure">liste complète des options de configuration</link>. </para> <example id="install.apache.unix.longer"> <title> Instructions d'installation (version module) </title> <programlisting>1. gunzip apache_1.3.x.tar.gz2. tar xvf apache_1.3.x.tar3. gunzip php-x.x.x.tar.gz4. tar xvf php-x.x.x.tar5. cd apache_1.3.x6. ./configure --prefix=/www7. cd ../php-x.x.x8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars9. make10. make install11. cd ../apache_1.3.x12. for PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a13. make14. make install Au lieu de cette étape, vous pouvez aussi copier le binaire httpd et remplacer votre exécutable actuel. Assurez-vous tout de même que le serveur est bien éteint.15. cd ../php-x.x.x16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini for PHP 4: cp php.ini-dist /usr/local/lib/php.ini Vous pouvez éditer votre fichier php.ini pour modifier certaines options PHP. Si vous préférez placer ce fichier ailleurs, utilisez --with-config-file-path=/path lors de l'étape 8.17. Editez votre fichier httpd.conf ou srm.conf file et ajoutez : Pour PHP 3: AddType application/x-httpd-php3 .php3 Pour PHP 4: AddType application/x-httpd-php .php Vous pouvez choisir n'importe quelle extension que vous voulez ici. .php est uniquement une suggestion. Vous pouvez aussi inclure .html.18. Utilisez votre procédure habituelle pour démarrer votre serveur Apache.(vous devez l'éteindre et le redémarrer, pas seulement lui envoyerun signal HUP ou USR1.) </programlisting> </example> <para> Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez <literal>/path/to/</literal> par le chemin d'accès à vos applications sur votre système. <informalexample> <programlisting>1. Nombreuses variantes Linux SysV :/etc/rc.d/init.d/httpd restart2. Avec les scripts apachectl :/path/to/apachectl stop/path/to/apachectl start3. httpdctl et httpsdctl (utilisant OpenSSL), similaire à apachectl:/path/to/httpsdctl stop/path/to/httpsdctl start4. En utilisant mod_ssl, ou un autre seveur SSL, manuellement :/path/to/apachectl stop/path/to/apachectl startssl </programlisting> </informalexample> Les exécutables apachectl et http(s)dctl peuvent être situés dans différents dossiers. Si votre système a <literal>locate</literal> ou <literal>whereis</literal> ou <literal>which</literal>, utilisez-les pour retrouver vos programmes. </para> <para> Différents exemples de compilation PHP pour Apache suivent : <informalexample> <programlisting>./configure --with-apxs --with-pgsql </programlisting> </informalexample> </para> <para> Cette commande va créer une librairie partagée <filename>libphp4.so</filename> qui sera chargée par Apache avec une ligne LoadModule dans le fichier <filename>httpd.conf</filename>. Le support PostgreSQL est aussi inclut dans <filename>libphp4.so</filename>. </para> <para> <informalexample> <programlisting>./configure --with-apxs --with-pgsql=shared </programlisting> </informalexample> </para> <para> Cette commande va créer une autre librairie partagée <filename>libphp4.so</filename>, mais va aussi créer une librairie partagée <filename>pgsql.so</filename> qui sera chargée dans PHP avec les options de configurations du fichier <filename>php.ini</filename> ou par chargement dynamique avec <function>dl</function>. </para> <para> <informalexample> <programlisting>./configure --with-apache=/path/to/apache_source --with-pgsql </programlisting> </informalexample> </para> <para> Cette commande va créer une autre librairie partagée <filename>libmodphp4.a</filename>, un fichier <filename>mod_php4.c</filename> et quelques fichiers compagnons dans le dossier <literal>src/modules/php4</literal> de dossier Apache. Puis, vous devez compiler Apache avec <literal>--activate-module=src/modules/php4/libphp4.a</literal> et le système de compilation d'Apache va créer un fichier <filename>libphp4.a</filename> et le lien statiquement avec <filename>httpd</filename>. Le support PostgreSQL est alors inclut directement dans l'exécutable <filename>httpd</filename>, ce qui fait que le résultat final est un fichier unique <filename>httpd</filename>, qui inclus Apache et PHP. </para> <para> <informalexample> <programlisting>./configure --with-apache=/path/to/apache_source --with-pgsql=shared </programlisting> </informalexample> </para> <para> Identique à la version précédente, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable final <filename>httpd</filename>, vous allez obtenir une librairie partagée <filename>pgsql.so</filename> que vous pouvez charger dans PHP soit grâce au fichier de configuration <filename>php.ini</filename> ou dynamiquement avec <function>dl</function>. </para> <para> Lorsque vous faites le choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'éxécuter plus rapidement PHP. Pour plus d'informations, voyez <ulink url="&url.apachedso;">webpage on DSO support</ulink>. </para> </sect2> <sect2 id="install.apache.windows"> <title>Détails sur l'installation de PHP sous Windows avec Apache 1.3.x</title> <simpara> Il y a deux méthodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La première est d'utiliser l'exécutable CGI (php.exe), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arrêter le serveur Apache, éditer votre fichier <literal>srm.conf</literal> ou <literal>httpd.conf</literal> pour configurer Apache. </simpara> <simpara> Bien qu'il puisse y avoir quelques différences de configurations de PHP sous Apache, le processus reste simple et à la portée du néophyte. Reportez-vous aux documentations Apache pour plus de détails sur ces directives. </simpara> <para> Si vous avez dézippé le package dans <filename>C:\PHP\</filename> comme indiqué dans <link linkend="install.windows.manual">Instructions Générales d'installation</link>, vous devez insérer les lignes suivantes dans votre fichier <literal>srm.conf</literal> ou <literal>httpd.conf</literal> pour qu'il fonctionne en CGI : <itemizedlist> <listitem> <simpara> <literal> ScriptAlias /php/ "c:/php/" </literal> </simpara> </listitem> <listitem> <simpara> <literal> AddType application/x-httpd-php .php .phtml </literal> </simpara> </listitem> <listitem> <simpara> <literal> Action application/x-httpd-php "/php/php.exe" </literal> </simpara> </listitem> </itemizedlist> N'oubliez pas de redémarrer le serveur, avec la commande <literal>NET STOP APACHE</literal> suivie de <literal>NET START APACHE</literal>. </para> <para> Si vous voulez utiliser PHP comme module Apache, vous devez déplacer le fichier <filename>php4ts.dll</filename> dans le dossier <filename>windows/system</filename> (pour Windows 9x/Me) ou <filename>winnt/system32</filename> (pour Windows NT/2000), en écrasant les anciennes versions. Puis, vous devez ajouter les deux lignes suivantes dans le fichier de configuration Apache : <itemizedlist> <listitem> <simpara> <literal> LoadModule php4_module c:/php/sapi/php4apache.dll </literal> </simpara> </listitem> <listitem> <simpara> <literal> AddType application/x-httpd-php .php .phtml </literal> </simpara> </listitem> </itemizedlist> </para> <note> <simpara> Avec Apache 1.3.22 pour Windows, le fichier de configuration par défaut (<filename>httpd.conf-dist-win</filename>) a une directive <literal>ClearModuleList</literal> incluse par défaut. Si cette directive est utilisé, il est nécessaire de mettre une ligne <literal>AddModule mod_php4.c</literal> à la liste <literal>AddModule</literal>, sinon PHP ne sera pas enregistré comme Module Apache. </simpara> </note> <simpara> Pour utiliser les fonctionnalités de mise en évidence du code source, créez simplement un script PHP et ajoutez le code suivant : <literal><?php show_source("original_php_script.php"); ?></literal>. Remplacez le fichier <literal>original_php_script.php</literal> par le fichier que vous voulez afficher : c'est la seule manière de le faire, car il n'y a pas de fonctionnalités phps sous Windows. </simpara> <note> <simpara> Sous Win-Apache tous les antislash des noms de chemins tels que "<filename>c:\directory\file.ext</filename>", doivent être convertis en slash c'est à dire "c:/directory/file.ext". </simpara> </note> </sect2> </sect1> <sect1 id="install.commandline"> <title>CGI/ Installation pour exécution en ligne de commande</title> <para> Par défaut, PHP est compilé comme une CGI. Si PHP peut être incorporé au serveur web que vous utilisez en tant que module, de manière générale c'est cette solution que vous devriez adopter pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs de lancer des scripts PHP sous leur UID respectives. Lisez attentivement le chapitre consacré à la <link linkend="security">sécurité</link> si vous souhaitez utiliser cette solution. </para> <sect2 id="install.commandline.testing"> <title>Tests</title> <simpara> Si vous avez compilé PHP comme programme CGI, vous pouvez tester votre produit en tapant : <command>make test</command>. C'est toujours une bonne chose de tester le résultat d'une compilation. Cela vous permet de repérer des problèmes entre PHP et votre plate-forme, bien plus facilement que si vous attendez. </simpara> </sect2> <sect2 id="install.commandline.benchmarking"> <title>Performances</title> <simpara> Si vous avez compilé PHP comme programme CGI, vous pouvez évaluer les performances de PHP 3 avec la commande <command>make bench</command>. Notez que si le <link linkend="ini.safe-mode">safe mode</link> est activé (par défaut), vous ne risquez pas de voir l'évaluation s'arrêter une fois les 30 secondes réglementaires écoulées. En effet, la fonction <function>set_time_limit</function> ne peut pas être utilisée si le <link linkend="ini.safe-mode">safe mode</link> fonctionne. Utilisez l'option <link linkend="ini.max-execution-time">max_execution_time</link> pour contrôler le temps d'éxécution de vos scripts. <command>make bench</command> ignore le fichier de <link linkend="configuration.file">configuration file</link>. </simpara> <note> <simpara> <command>make bench</command> n'est disponible qu'en PHP 3. </simpara> </note> </sect2> </sect1> <sect1 id="install.fhttpd"> <title>Installation avec les serveurs fhttpd</title> <para> Pour compiler PHP comme un module fhttpd, répondre "yes" à la question "Build as an fhttpd module ?" (cela correspond à l'option de configuration <link linkend="install.configure.with-fhttpd">--with-fhttpd</link>=<replaceable>DIR</replaceable> et spécifier la racine de la distribution fhttpd. Le répertoire par défaut est: <filename class="directory">/usr/local/src/fhttpd</filename>. Si vous utilisez fhttpd, compiler PHP en module vous permettra d'obtenir des performances supérieures, plus de contrôle et la possibilité d'exécution à distance. </para> </sect1> <sect1 id="install.caudium"> <title>Installation sur serveur Caudium</title> <para> PHP 4 peut être compilé comme module Pike pour le serveur web Caudium. Notez que ce mode n'est pas supporté en PHP 3. Suivez simplement les instructions suivantes pour installer PHP 4 sur un serveur Caudium. </para> <example id="install.caudium.instructions"> <title>Instructions d'installation Caudium</title> <programlisting>1. Assurez-vous que vous avez un serveur Caudium installé avant de tenter l'installation PHP 4. Pour que PHP 4 fonctionne correctement, vous devez installer Pike 7.0.268 ou plus récent. Pour cet exemple, nous supposerons que vous avez installé Caudium dans le dossier /opt/caudium/server/.2. Renommez le dossier en php-x.y.z (où x.y.z est le numéro de version).3. ./configure --with-caudium=/opt/caudium/server4. make5. make install6. Redémarrez Caudium s'il était en fonctionnement7. Connectez-vous à l'interface de configuration graphique et allez dans le serveur virtuel auquel vous voulez ajouter le support PHP.8. Cliquez sur "Add Module" et recherchez puis ajoutez le module "PHP 4 Script Support".9. Si la documentation dit que 'PHP 4 interpreter isn't available', assurez-vous que vous avez bien redémarré le serveur. Si vous l'avez fait, vérifiez le fichier /opt/caudium/logs/debug/default.1 : il contient peut-être des erreurs liées à <filename>PHP4.so</filename>. De même, assurez-vous que <filename>caudium/server/lib/[pike-version]/PHP4.so</filename> est présent.10. Configurez le module "PHP Script Support" si nécessaire. </programlisting> </example> <para> Vous pouvez bien sûr compiler votre module Caudium avec les diverses extensions disponibles. Voyez la <link linkend="install.configure">liste complète des options de configuration</link> pour une liste exhaustive. </para> <note> <para> Lorsque vous ajoutez le support MySQL à PHP 4, vous devez-vous assurer que le client MySQL normal est utilisé. Sinon, il peut y avoir des conflits avec Pike, qui dispose déjà du support MySQL. Vous pouvez le faire en spécifiant le dossier d'installation de MySQL grâce à l'option <link linkend="install.configure.with-mysql">--with-mysql</link>. </para> </note> </sect1> <sect1 id="install.iis"> <title>Installation avec les serveurs IIS/PWS</title> <para> Cette section contient des notes sur l'installation de PHP avec IIS ( Microsoft Internet Information Server) : <link linkend="install.iis.iis3">PWS/IIS 3</link>, <link linkend="install.iis.pws4">PWS 4 ou plus récent</link> et <link linkend="install.iis.iis4">IIS 4 ou plus récent</link>. </para> <sect2 id="install.iis.iis3"> <title>Windows et PWS/IIS 3</title> <simpara> La méthode recommandée pour configurer ces serveurs est d'utiliser le fichier INF inclus dans la distribution (<filename>php_iis_reg.inf</filename>). Vous pouvez éditer ce fichier, pour vous assurer que les extenstions et les dossiers d'installation de PHP sont bien ceux de votre configuration. Ou alors, vous pouvez suivre les instructions suivantes : </simpara> <warning> <para> ATTENTION: Ces instructions requièrent la manipulation du fichier de registry de Windows. Une erreur peut laisser votre système dans un état instable. Nous vous recommandons vivement de sauvegarder ce fichier en lieu sûr. L'équipe de développement et les traducteurs de cette documentation ne pourront pas être tenus responsable d'un quelconque dommage qui pourrait survenir dans votre registry. </para> </warning> <para> <itemizedlist> <listitem> <simpara> Lancez Regedit. </simpara> </listitem> <listitem> <simpara> Naviguez jusqu'à : <literal>HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap</literal>. </simpara> </listitem> <listitem> <simpara> Dans le menu "edit", sélectionnez : <literal>New->String Value</literal>. </simpara> </listitem> <listitem> <simpara> Entrez l'extension que vous voulez utiliser pour les scripts PHP. Par exemple : <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> Double-cliquez sur la chaîne, et entrez le chemin jusqu'à <literal>php.exe</literal> dans le champ "value data". ex: <literal>c:\php\php.exe</literal>. </simpara> </listitem> </itemizedlist> </para> <para> Les étapes suivantes n'affectent pas la configuration du serveur web, et ne s'appliquent que si vous voulez que vos scripts PHP soient exécutés lorsqu'il sont exécutés en ligne de commande (par exemple, run <filename>c:\messcripts\test.php</filename>) ou en double-cliquant sur l'icone. Vous pouvez ignorer ces étapes si vous préférez que vos scripts PHP s'ouvrent dans éditeur de texte, plutôt que de les voir s'exécuter lorsque vous double-cliquez dessus. </para> <para> <itemizedlist> <listitem> <simpara> Répétez ces instructions pour toutes les extensions que vous voulez associer aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Naviguez jusqu'à : <literal>HKEY_CLASSES_ROOT</literal> </simpara> </listitem> <listitem> <simpara> Dans le menu edit, sélectionnez: <literal>New->Key</literal>. </simpara> </listitem> <listitem> <simpara> Donnez le nom de votre extension à la clé : ex: <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> Sélectionnez le nom de la nouvelle clée dans le panneau de droite, et double cliquez dans "default value", puis entrez <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> Répétez ces instructions pour toutes les extensions que vous avez associées aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Créez une autre <literal>New->Key</literal> sous <literal>HKEY_CLASSES_ROOT</literal> et nommez-la <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> Sélectionnez la nouvelle clé <literal>phpfile</literal> et dans le panneau de doite, double-cliquez dans "default value" et entrez <literal>PHP Script</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>phpfile</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>Shell</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>Shell</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>open</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>open</literal> et sélectionnez <literal>New->Key</literal>, appelez-le <literal>command</literal>. </simpara> </listitem> <listitem> <simpara> Sélectionnez la nouvelle clé <literal>command</literal> et dans le panneau de droite, faites un double clic dans "default value", puis entrez le chemin jusqu'à <literal>php.exe</literal>. ex: <literal>c:\php\php.exe -q %1</literal>. (n'oubliez pas le <literal>%1</literal>). </simpara> </listitem> <listitem> <simpara> Quittez Regedit. </simpara> </listitem> <listitem> <simpara> Si vous utilisez PWS sous Windows, redémarrez pour prendre en compte la nouvelle registry. </simpara> </listitem> </itemizedlist> </para> <simpara> Les utilisateurs de PWS et IIS 3 sont prêts à utiliser leur serveur. Avec IIS 3, vous pouvez utiliser un <ulink url="&url.iiscfg;">outil</ulink> bien pratique de Steven Genusa pour configurer votre carte des scripts. </simpara> </sect2> <sect2 id="install.iis.pws4"> <title>Windows et PWS 4 ou plus récent</title> <simpara> Pour installer PHP sous Windows avec PWS 4 ou plus récent, vous avez deux options : l'une est d'avoir PHP sous forme de CGI, l'autre est d'utiliser les modules SAPI, sous forme de DLL. </simpara> <para> Si vous optez pour le CGI, faites ceci : <itemizedlist> <listitem> <simpara> Editez le fichier <filename>pws-php4cgi.reg</filename> (dans le dossier <filename>sapi</filename>) pour indiquer la localisation de votre fichier <filename>php.exe</filename>. Les slash doivent être échappés. Par exemple : <literal>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\PHP\\php.exe"</literal> </simpara> </listitem> <listitem> <simpara> Dans le gestionnaire PWS Manager, faites un clic droit sur les dossiers qui supporteront PHP, et sélectionnez "Properties". Cochez l'option "Execute" et confirmez. </simpara> </listitem> </itemizedlist> </para> <para> Si vous optez pour les modules ISAPI, faites ceci : <itemizedlist> <listitem> <simpara> Editez le fichier <filename>pws-php4isapi.reg</filename> (dans le dossier <filename>sapi</filename>) pour indiquer la localisation de votre fichier <filename>php4isapi.dll</filename>. Les slash doivent être échappés. Par exemple : <literal>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\PHP\\sapi\\php4isapi.dll"</literal> </simpara> </listitem> <listitem> <simpara> Dans le gestionnaire PWS Manager, faites un clic droit sur les dossiers qui supporteront PHP, et sélectionnez "Properties". Cochez l'option "Execute" et confirmez. </simpara> </listitem> </itemizedlist> </para> </sect2> <sect2 id="install.iis.iis4"> <title>Windows NT/2000 et IIS 4 ou plus récent</title> <simpara> Pour installer PHP sous Windows NT/2000 serveyr avec IIS 4 ou plus récent, vous avez deux options : l'une est d'avoir PHP sous forme de CGI, l'autre est d'utiliser les modules SAPI, sous forme de DLL. </simpara> <simpara> Dans les deux cas, vous devez lancer la console "Microsoft Management" (elle peut aussi s'appeler "Internet Services Manager". Elle est située soit dans "Windows NT 4.0 Option Pack" ou dans "Control Panel=>Administrative Tools" sous Windows 2000). Puis, faites un clic droit sur votre dossier web (qui apparaitra probablement comme <filename>Default Web Server</filename>), et sélectionnez "Properties". </simpara> <para> Si vous optez pour le CGI, faites ceci : <itemizedlist> <listitem> <simpara> Sous "Home Directory", "Virtual Directory", ou "Directory", cliquez sur le bouton "Configuration", et sélectionnez l'onglet "App Mappings". </simpara> </listitem> <listitem> <simpara> Cliquez sur "Add", puis dans la boîte "Executable", tapez : <literal>c:\php\php.exe</literal> (si vous avez installé PHP dans le dossier <literal>c:\php\</literal>.) </simpara> </listitem> <listitem> <simpara> Dans la boîte "Extension", tapez le nom de l'extension que vous voulez associer aux scripts PHP. Laissez "Method exclusions" vide, et cochez "Script engine". Vous pouvez aussi préférer cocher la boîte 'check that file exists' - pour un coût faible, IIS (ou PWS) s'assirurera que le script existe, et résoudra les problèmes d'autentification avant de démarrer PHP. Cela signifie que vous obtiendrez des messages d'erreur 404 intelligents, plutôt que d'avoir simplement une plainte du serveur comme quoi les CGI n'ont rien retournés. </simpara> <simpara> Répétez les étapes 3 et 4 pour chaque extension que vous souhaitez associer aux scripts PHP. (<literal>.php</literal> et <literal>.phtml</literal> sont les plus répandues.) </simpara> </listitem> <listitem> <simpara> Configurer la sécurité nécessaire (dans "Internet Service Manager"), et si votre serveur NT utilise NTFS, ajoutez les droits adéquats pour I_USR_, au dossier qui contient <literal>php.exe</literal>. </simpara> </listitem> </itemizedlist> </para> <para> Si vous optez pour les modules ISAPI, faites ceci : <itemizedlist> <listitem> <simpara> Si vous ne voulez pas effectuer des authentifications HTTP avec PHP, vous pouvez (et devez) sauter cette étape. Avec ISAPI Filters, ajoutez un nouveau filtre ISAPI. Utilisez PHP comme nom de filtre, et ajoutez simplement le chemin jusqu'à <filename>php4isapi.dll</filename>. </simpara> </listitem> <listitem> <simpara> Sous "Home Directory", cliquez sur le bouton "Configuration". Ajoutez une nouvelle entrée dans "Application Mappings". Utilisez le chemin jusqu'à <filename>php4isapi.dll</filename> comme "Executable", indiquez ".php" comme extension, laissez "Method exclusions" vide, et cochez "Script engine". </simpara> </listitem> <listitem> <simpara> Arrêtez totalement IIS (NET STOP iisadmin) </simpara> </listitem> <listitem> <simpara> Démarrez IIS (NET START w3svc) </simpara> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.netscape-enterprise"> <title>Installation sous Netscape et iPlanet Enterprise Serveur</title> <para> Cette section contient les notes et détails spécifique à l'installation Netscape et iPlanet, aussi bien pour <link linkend="install.netscape.sun">Sun Solaris</link> que <link linkend="install.netscape.windows">Windows</link>. </para> <para> Vous pouvez trouvez plus d'informations sur la configuration de PHP avec Netscape Enterprise Server : <ulink url="&url.netscape.nsapi;">&url.netscape.nsapi;</ulink> </para> <sect2 id="install.netscape.sun"> <title>Installer PHP avec Netscape sous Sun Solaris</title> <para> Pour compiler PHP avec NES ou iPlanet, indiquez le bon dossier d'installation pour l'option de configuration <link linkend="install.configure.with-nsapi">--with-nsapi</link> = <replaceable>DIR</replaceable> option. Le dossier par défaut est généralement <filename class="directory">/opt/netscape/suitespot/</filename>. Lisez aussi <filename>/php-xxx-version/sapi/nsapi/nsapi-readme.txt</filename>. </para> <para> <example id="install.netscape-enterprise.solaris"> <title>Exemple d'installation pour Netscape Enterprise sous Solaris</title> <programlisting>Instructions pour Sun Solaris 2.6 avec Netscape Enterprise Server 3.6From: bhager@invacare.com1. Installez les packages suivants depuis le serveur www.sunfreeware.comou un miroir ad hoc : flex-2_5_4a-sol26-sparc-local gcc-2_95_2-sol26-sparc-local gzip-1.2.4-sol26-sparc-local perl-5_005_03-sol26-sparc-local bison-1_25-sol26-sparc-local make-3_76_1-sol26-sparc-local m4-1_4-sol26-sparc-local autoconf-2.13 automake-1.4 mysql-3.23.24-beta (if you want mysql support) tar-1.13 (GNU tar)2. Assurez-vous que le path inclut bien les dossiers nécessaires : PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin export PATH3. gunzip php-x.x.x.tar.gz (si vous avez une distribution .gz, ou bien allez en 4)4. tar xvf php-x.x.x.tar5. cd ../php-x.x.x6. Pour les étapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspondbien à votre installation du serveur netscape. Sinon, indiquez le chemincorrect : /configure --with-mysql=/usr/local/mysql --with-nsapi=/opt/netscape/suitespot/ --enable-track-vars --enable-libgcc7. make8. make install </programlisting> </example> Après avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations supplémentaires. </para> <para> D'abord, vous devez ajouter des chemins dans la variable LD_LIBRARY_PATH pour que PHP trouve toutes les librairies partagées. Le mieux est de le faire dans le script de démarrage de votre serveur Netscape. Les utilisateurs Windows peuvent probablement ignorer cette étape. Le script de démarrage est situé dans : <filename class="directory">/path/to/server/https-servername/start</filename> </para> <para> Vous pouvez aussi avoir besoin d'éditer les fichiers de configuration qui sont situés dans : <filename class="directory">/path/to/server/https-servername/config/</filename>. </para> <example id="install.netscape-enterprise.configure"> <title> Exemple de configuration pour Netscape Enterprise </title> <programlisting>Instructions de configuration for Netscape Enterprise ServerFrom: bhager@invacare.com1. Ajoutez les lignes suivantes dans mime.types: type=magnus-internal/x-httpd-php exts=php2. Ajoutez les lignes suivantes dans obj.conf. shlib peut dépendre devotre OS, pour Unix c'est quelque chose de proche de/opt/netscape/suitespot/bin/libphp4.so. Il est conseillé de placer les lignes suivantes après les lignes de types mime : Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="/php4/nsapiPHP4.dll" Init fn=php4_init errorString="Failed to initialize PHP!" <object name="default"> . . . .#NOTE La ligne suivante doit être placée après toutes .#les lignes 'ObjectType' .# et avant les lignes 'AddLog' Service fn="php4_execute" type="magnus-internal/x-httpd-php" . . </Object> <Object name="x-httpd-php"> ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute </Object> Configuration d'authentification L'authentification PHP ne peut pas être utilisée avec d'autre authentification. TOUTES LES FORMES D'AUTHENTIFICATION SONT PASSEES AU SCRIPT PHP. Pour configurer l'authentification PHP pour le serveur entier, ajoutez la ligne suivante : <Object name="default"> AuthTrans fn=php4_auth_trans . . . . </Object> Pour configurer l'authentification PHP pour un dossier, ajoutez la ligne suivante : <Object ppath="d:\path\to\authenticated\dir\*"> AuthTrans fn=php4_auth_trans </Object> </programlisting> </example> <para> Si vous utilisez Netscape Enterprise 4.x, alors, il faut utiliser ceci : </para> <example> <title>Exemple de configuration pour Netscape Enterprise 4.x</title> <programlisting> Placez ces lignes après les types MIME, et tout le reste ressemble à l'exemple ci-dessus :From: Graeme Hoose (GraemeHoose@BrightStation.com)Init fn="load-modules" shlib="/path/to/server4/bin/libphp4.so" funcs="php4_init,php4_close,php4_execute,php4_auth_trans"Init fn="php4_init" LateInit="yes" </programlisting> </example> </sect2> <sect2 id="install.netscape.windows"> <title>Installer PHP avec Netscape Enterprise sous Windows</title> <para> Pour installer PHP sous forme de CGI (pour Netscape Enterprise Server, iPlanet, peut être Fastrack), suivez ces instructions : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier où vous avez installé windows) </simpara> </listitem> <listitem> <para> Faîtes un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes : <programlisting>assoc .php=PHPScriptftype PHPScript=c:\php\php.exe %1 %* </programlisting> </para> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créez un dossier shellcgi et supprimez le aussitôt (cette opération créee 5 lignes importantes dans le fichier obj.conf et permet au serveur de gérer les scripts CGI). </simpara> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créeez un nouveau type MIME (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </simpara> </listitem> <listitem> <simpara> Recommencez pour chaque instance de serveur web qui devra exécuter PHP. </simpara> </listitem> </itemizedlist> <para> Plus de détails sur la configuration de PHP comme CGI sont disponibles à <ulink url="&url.netscape.cgi;">&url.netscape.cgi;</ulink> </para> <para> Pour installer PHP avec l'interface NSAPI (pour Netscape Enterprise Server, iPlanet, peut-être Fastrack), faîtes ceci : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier où vous avez installé windows) </simpara> </listitem> <listitem> <para> Faîtes un fichier d'association depuis la ligne de commande. Tapez les lignes suivantes : <programlisting>assoc .php=PHPScriptftype PHPScript=c:\php\php.exe %1 %* </programlisting> </para> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, créeez un nouveau type MIME (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </simpara> </listitem> <listitem> <para> Stoppez votre serveur web et éditez le fichier <filename>obj.conf</filename>. A la fin de la section Init, placez ces deux lignes (obligatoirement après l'init de type MIME) : <programlisting>Init fn="load-modules" funcs="php4_init,php4_close,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"Init fn="php4_init" errorString="Failed to initialise PHP!" </programlisting> </para> </listitem> <listitem> <para> Dans la section <literal>< Object name="default" ></literal>, placez cette ligne, obligatoirement après toutes les lignes 'ObjectType' et avamt les lignes 'AddLog' : <programlisting>Service fn="php4_execute" type="magnus-internal/x-httpd-php" </programlisting> </para> </listitem> <listitem> <para> A la fin du fichier, créez un nouvel objet appelé <literal>x-httpd-php</literal>, en insérant ces lignes : <programlisting>+<Object name="x-httpd-php">+ObjectType fn="force-type" type="magnus-internal/x-httpd-php"+Service fn=php4_execute+</Object> </programlisting> </para> </listitem> <listitem> <simpara> Redémarrez votre serveur web, et validez les modifications </simpara> </listitem> <listitem> <simpara> Recommencez pour chaque serveur qui doit utiliser PHP. </simpara> </listitem> </itemizedlist> <para> Plus ded détails sur la configiration de PHP en filtre NSAPI sont disponibles : <ulink url="&url.netscape.nsapi;">&url.netscape.nsapi;</ulink> </para> </sect2> </sect1> <sect1 id="install.omnihttpd"> <title>Installation OmniHTTPd</title> <para> Cette section contient des notes et conseils spécifiques à OmniHTTPd. </para> <sect2 id="install.omnihttpd.windows"> <title>OmniHTTPd 2.0b1 et plus récent pour Windows</title> <simpara> Vous devez compléter les étapes suivantes pour configurer PHP avec OmniHTTPd. Ceci est une installation sous forme de CGI. SAPI est supporté par OmniHTTPd, mais des tests ont montrés que ce n'est pas stable d'utiliser PHP en module ISAPI avec OmniHTTPd. </simpara> <para> <itemizedlist> <listitem> <para> Step 1: Installez Omni server. </para> </listitem> <listitem> <para> Step 2: Faites un clic-droit sur l'icone bleue d'OmniHTTPd, sur le bureau, et sélectionnez <literal>Properties</literal> </para> </listitem> <listitem> <para> Step 3: Cliquez sur <literal>Web Server Global Settings</literal> </para> </listitem> <listitem> <para> Step 4: Dans l'onglet 'External', entrez: <literal>virtual = .php | actual = c:\path-to-php-dir\php.exe</literal>, et utilisez le bouton "Add". </para> </listitem> <listitem> <para> Step 5: Dans l'onglet <literal>Mime</literal>, entrez: <literal>virtual = wwwserver/stdcgi | actual = .php</literal> et utilisez le bouton "Add". </para> </listitem> <listitem> <para> Step 6: Cliquez sur <literal>OK</literal>. </para> </listitem> </itemizedlist> </para> <simpara> Réptez les étapes 2 à 6 pour chaque extension que vous voulez associer à PHP. </simpara> <note> <para> Certains packages OmniHTTPd sont livrés avec le support PHP déjà intégré. Vous pouvez choisir au moment de la configuration de faire un paramétrage poussé et de décocher le support PHP. Nous vous conseillons d'utiliser les dernières versions de PHP. Certains serveurs OmniHTTPd sont encore livrés avec des versions beta de PHP : il est recommandé de ne pas les installer, mais d'installer votre propre version. Si le serveur est déjà sur votre machine, vous pouvez utiliser le bouton "Replace" dans les étapes 4 et 5 pour en choisir un nouveau et à jour. </para> </note> </sect2> </sect1> <sect1 id="install.oreilly"> <title>Installation Oreilly Website Pro Server</title> <para> Cette section contient les conseils d'installation spécifiques à Oreilly Website Pro. </para> <sect2 id="install.oreilly.windows"> <title>Oreilly Website Pro 2.5 et plus récent pour Windows</title> <simpara> Cette liste décrit comment installer PHP comme CGI exécutable ou module ISAPI avec Oreilly Website Pro sous Windows. </simpara> <para> <itemizedlist> <listitem> <para> Editez les "Server Properties" et sélectionnez l'onglet "Mapping". </para> </listitem> <listitem> <para> Dans la "List" sélectionnez "Associations" et entrez le nom de l'extension voulue (".php") et le chemin jusqu'à l'exécutable (ex. c:\php\php.exe) ou la DLL ISAPI (ex. c:\php\sapi\php4isapi.dll). </para> </listitem> <listitem> <para> Sélectionnez "Content Types", ajoutez la même extension "<literal>.php</literal>" et entrez le "content type". Si vous choisissez la forme CGI, entrez "wwwserver/shellcgi"; si vous choisissez la forme module ISAPI, entrez "wwwserver/isapi" (sans les guillemets). </para> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.xitami"> <title>Installation Xitami</title> <para> Cette section contient les conseils d'installation spécifiques à Xitami. </para> <sect2 id="install.xitami.windows"> <title>Xitami pour Windows</title> <simpara> Cette liste décrit comment installer PHP comme CGI exécutable ou module ISAPI avec Xitami sous Windows. </simpara> <para> <itemizedlist> <listitem> <para> Assurez-vous que le serveur web fonctionne, et allez dans la console d'administration du serveur (généralement <literal>http://127.0.0.1/admin</literal>), puis cliquez sur "Configuration". </para> </listitem> <listitem> <para> Naviguez dans les "Filters", et ajoutez l'extension que vous souhaitez (souvent ".php") dans le champs "File extensions". </para> </listitem> <listitem> <para> Dans la commande "Filter", ajoutez le nom et le chemin de votre exécutable PHP (souvent <filename>c:\php\php.exe</filename>). </para> </listitem> <listitem> <para> Cliquez sur le bouton "Save". </para> </listitem> </itemizedlist> </para> </sect2> </sect1> <sect1 id="install.otherhttpd"> <title>Autres serveurs web</title> <para> PHP peut être compilé pour fonctionner avec de nombreux autres serveurs web. Reportez-vous à <link linkend="install.configure.servers">Options particulières aux serveurs web</link> pour une liste complète des options de configuration. Les exécutables PHP CGI sont compatibles avec la majorité des serveurs supportant les interfaces CGI. </para> </sect1> <sect1 id="install.problems"> <title>Des problèmes?</title> <sect2> <title>Lisez la FAQ</title> <simpara> Certains problèmes sont récurrents : les plus communs sont listés dans la FAQ PHP, disponible à <ulink url="&url.php.faq;">&url.php.faq;</ulink>. N'envoyez pas de rapport de bug ou de courriers personnels sur la liste de diffusion. Le système de bug est aussi capable de traiter les suggestions. </simpara> </sect2> <sect2 id="install.bugreports"> <title>Rapports de Bug</title> <simpara> Si vous pensez avoir trouvé un bug dans PHP, n'oubliez pas de le signaler. L'équipe de développement PHP ne le connaît peut être pas, et si vous ne le signaler pas, vos chances de voir le bug corrigé sont nulles. Vous pouvez rapporter des bugs grâce au système de suivi, accessible à <ulink url="&url.php.bugs;">&url.php.bugs;</ulink>. </simpara> <simpara> Lisez les <ulink url="&url.php.bugs.howtoreport;">guides</ulink> (Les bugs : ce qu'il faut faire, et ce qu'il ne faut pas faire) avant d'envoyer n'importe quel rapport! </simpara> </sect2> <sect2 id="install.otherproblems"> <title>Autres problèmes</title> <simpara> Si vous êtes complètement bloqués, quelqu'un sur la liste de diffusion PHP pourra probablement vous aider. Essayez de consulter les archives, au cas où quelqu'un aurait déjà rencontré votre problème. Les archives sont toujours accessibles à : <ulink url="&url.php;">&url.php;</ulink>. Pour souscrire à la liste de diffusion, envoyez un mail vide à <ulink url="mailto:&email.php.install.subscribe;">&email.php.install.subscribe;</ulink>. L'adresse de la mailing liste : <literal>&email.php.install;</literal>. </simpara> <simpara> Si vous voulez obtenir de l'aide sur la liste de diffusion PHP, essayez d'être concis et clair, et pensez à donner tous les détails sur votre environnement (OS, version de PHP, serveur web, CGI ou module, <link linkend="ini.safe-mode">safe mode</link>...), et n'hésitez pas à envoyer suffisamment de code pour que nous puissions reproduire l'erreur. </simpara> </sect2> </sect1></chapter><!-- Keep this comment at the end of the fileLocal variables:mode: sgmlsgml-omittag:tsgml-shorttag:tsgml-minimize-attributes:nilsgml-always-quote-attributes:tsgml-indent-step:1sgml-indent-data:tindent-tabs-mode:nilsgml-parent-document:nilsgml-default-dtd-file:"../../manual.ced"sgml-exposed-tags:nilsgml-local-catalogs:nilsgml-local-ecat-files:nilEnd:--> \ No newline at end of file +<?xml version="1.0" encoding="iso-8859-1"?><!-- $Revision: 1.37 $ --><chapter id="installation"> <title>Installation</title> &install.general; &install.unix; &install.linux; &install.hpux; &install.solaris; &install.openbsd; &install.macosx; &install.configure; &install.windows; &install.apache; &install.apache2; &install.commandline; &install.fhttpd; &install.caudium; &install.iis; &install.iplanet; &install.omnihttpd; &install.oreilly; &install.xitami; &install.otherhttpd; &install.problems;</chapter><!-- Keep this comment at the end of the fileLocal variables:mode: sgmlsgml-omittag:tsgml-shorttag:tsgml-minimize-attributes:nilsgml-always-quote-attributes:tsgml-indent-step:1sgml-indent-data:tindent-tabs-mode:nilsgml-parent-document:nilsgml-default-dtd-file:"../../manual.ced"sgml-exposed-tags:nilsgml-local-catalogs:nilsgml-local-ecat-files:nilEnd:--> \ No newline at end of file Index: phpdoc-fr/chapters/intro.xml diff -u phpdoc-fr/chapters/intro.xml:1.15 phpdoc-fr/chapters/intro.xml:1.16 --- phpdoc-fr/chapters/intro.xml:1.15 Wed Dec 12 15:48:48 2001 +++ phpdoc-fr/chapters/intro.xml Sat Jan 18 11:11:35 2003 @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.15 $ --> +<!-- $Revision: 1.16 $ --> <chapter id="introduction"> <title>Introduction</title> <sect1 id="intro-whatis"> <title>Qu'est ce que PHP?</title> <simpara> - PHP (officiellement "PHP: Hypertext Preprocessor") est un langage - de script HTML, qui fonctionne côté serveur. + PHP (officiellement, ce sigle est un acronyme récursif pour + "PHP: Hypertext Preprocessor") est un langage de scripts généraliste + et Open Source, spécialement conçu pour le développement d'applications + web. Il peut être intégré facilement au HTML. </simpara> <para> Réponse simple et claire, mais qu'est ce que cela veut dire? Un exemple : @@ -15,16 +17,20 @@ <example> <title>Exemple d'introduction</title> <programlisting role="php"> -<html> - <head> - <title>Exemple</title> - </head> - <body> - <?php - echo "Bonjour, je suis un script PHP!"; - ?> - </body> -</html> +<![CDATA[ +<html> + <head> + <title>Exemple</title> + </head> + <body> + + <?php + echo "Bonjour, je suis un script PHP!"; + ?> + + </body> +</html> +]]> </programlisting> </example> </para> @@ -48,26 +54,117 @@ Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques. </para> + <para> + Le grand avantage de &php; est qu'il est extrêmement simple pour les + néophytes, mais offre des fonctionnalités avancées pour les + experts. Ne craignez pas de lire la longue liste de fonctionnalités + &php;. Vous pouvez vous plonger dans le code, et en quelques + instants, écrire des scripst simples. + </para> + <para> + Bien que le développement de &php; soit orienté vers la programmation + pour les sites web, vous pouvez en faire bien d'autres usages. + Lisez donc la section suivante : + <link linkend="intro-whatcando">Que peut faire PHP?</link>. + </para> </sect1> + <sect1 id="intro-whatcando"> <title>Que peut faire PHP?</title> <para> - Le langage PHP possède les même fonctionnalités que - les autres langages permettant d'écrire des scripts CGI, comme - collecter des données, générer dynamiquement des - pages web ou bien envoyer et recevoir des cookies. - </para> - <para> - La plus grande qualité et le plus important avantage du langage PHP est le - support d'un grand nombre de bases de données. Réaliser une - page web dynamique interfacant une base de donnés est extrêmement - simple. Les bases de données suivantes sont supportées par PHP: + Tout. &php; est principalement conçu pour servir de + langage de script coté serveur, ce qui fait qu'il est capable + de réaliser tout ce qu'un script CGI quelconque peut faire, comme + collecter des données de formulaire, générer du contenu dynamique, + ou gérer des cookies. Mais &php; peut en faire bien plus. + </para> + <para> + Il y a trois domaines différents où &php; peut s'illustrer. + <itemizedlist> + <listitem> + <simpara> + Langage de script coté serveur. C'est l'utilisation la plus + traditionnelle, et aussi le principal objet de &php;. + Vous aurez besoin de trois composants pour l'exploiter : + un analyseur &php; (CGI ou module serveur), un serveur + web et un navigateur web. Vous devez exécuter le serveur + web en corrélation avec &php;. Vous pouvez accéder + au programme &php; avec l'aide du navigateur web. Voyez + la section <link linkend="installation">d'installation</link> + pour plus d'informations. + </simpara> + </listitem> + <listitem> + <simpara> + Langage de programmation en ligne de commande. Vous pouvez + écrire des scripts &php; et l'exécuter en ligne de commande, + sans l'aide du serveur web et d'un navigateur. Il vous suffit + de disposer de l'exécutable &php;. Cette utilisation est idéale + pour les scripts qui sont exécutés régulièrement (avec un cron + sous Unix ou Linux), ou un Task Scheduler (sous Windows). Ces scripts + peuvent aussi être utilisé pour réaliser des opérations sur des + fichiers texte. Voyez la section sur l'utilisation de &php; en + <link linkend="features.commandline">ligne de commande</link> + pour plus d'informations. + </simpara> + </listitem> + <listitem> + <simpara> + Ecrire des applications graphiques. &php; n'est probablement + pas le meilleur langage pour écrire des applications + graphiques, mais si vous connaissez bien &php; et que + vous souhaitez exploiter des fonctionnalités avancées + dans vos applications clientes, vous pouvez utiliser + PHP-GTK pour écrire de tels programmes. Vous avez aussi la + possibilité d'écrire des applications très portables + avec ce langage. PHP-GTK est une extension de &php;, qui + n'est pas fournie dans la distribution de base. Si vous êtes + interessé par PHP-GTK, visitez + <ulink url="&url.php.gtk;">son site web</ulink>. + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + &php; est utilisable sur la majorité des systèmes d'exploitation, comme + Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), + Microsoft Windows, Mac OS X, RISC OS et d'autres encore. + &php; supporte aussi la plus part des serveurs web actuels : + Apache, Microsoft Internet Information Server, + Personal Web Server, Netscape et iPlanet servers, Oreilly + Website Pro server, Caudium, Xitami, OmniHTTPd et beaucoup d'autres + encore. Pour la majorité des serveurs web, &php; fonctionne comme + module, et pour d'autres, il fonctionne comme exécutable CGI. + </para> + <para> + Avec &php; vous avez le choix de votre système d'exploitation et + de votre serveur web. De plus, vous avez aussi le choix d'utiliser + la programmation procédurale ou objet, ou encore un mélange des + deux. Bien que le support de la couche objet ne soit pas très + standard, de nombreuses librairies et applications d'envergure + (y compris la bibliothèque PEAR) sont écrites en langage objet. + </para> + <para> + Avec &php;, vous n'êtes pas limité à la production de code + HTML. Les capacités de &php; lui permettent de générer aussi + bien des images, des fichiers PDF, des animations Flash + (avec l'aide des librairies libswf et Ming), généré à la + volée. Vous pouvez aussi générer facilement du texte, du code + XML ou XHTML. &php; génère tous ces fichiers, et les sauve dans + le système de fichier, ou bien les envoie directement au navigateur + web. + </para> + <para> + Une des grandes forces de &php; est le support de nombreuses bases + de données. crire une page web exploitant une base de données est + extrêmement simple. Les bases de données suivantes sont toutes supportées + par &php; : <blockquote> <simplelist columns="3"> <member>Adabas D</member> <member>dBase</member> <member>Empress</member> - <member>FilePro (lecutre seule)</member> + <member>FilePro (read-only)</member> <member>Hyperwave</member> <member>IBM DB2</member> <member>Informix</member> @@ -78,95 +175,57 @@ <member>Direct MS-SQL</member> <member>MySQL</member> <member>ODBC</member> - <member>Oracle (OCI7 et OCI8)</member> + <member>Oracle (OCI7 and OCI8)</member> <member>Ovrimos</member> <member>PostgreSQL</member> - <member>Sesam</member> <member>Solid</member> <member>Sybase</member> <member>Velocis</member> <member>Unix dbm</member> </simplelist> </blockquote> + Il existe aussi des couches d'abstraction de base de données comme DBX + qui vous permettent de vous connecter de manière transparente à toute + base de données supportée par cette extension. De plus, &php; supporte + ODBC, ce qui vous permet de vous connecter à toute autre base de données + qui supporte ce standard. + </para> + <para> + &php; supporte de nombreux protocoles comme par exemple + LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (sous Windows) et + encore d'autres. Vous pouvez ouvrir des sockets réseau, + et intéragir avec n'importe quel autre protocole. &php; supporte + le format complexe WDDX, qui permet de communiquer entre tous + les langages web. En terme d'interconnexion, &php; supporte aussi + les instanciations d'objets Java, et les utilise de manière transparente + comme objets intégrés. Vous pouvez aussi exploiter les objets + distants avec CORBA. + </para> + <para> + &php; dispose de fonctionnalités extrêmement utiles pour le + traitement de texte, allant des expressions régulières + POSIX étendue ou Perl aux traitements des fichiers XML, + avec les standards SAX et DOM. Vous pouvez utiliser les + transformations XSLT. + </para> + <para> + En commerce électronique, vous trouverez des outils de paiement + intégrés comme Cybercash, CyberMut, VeriSign Payflow + Pro et CCVS, pour réaliser des paiements en ligne. + </para> + <para> + Enfin, &php; dispose d'extensions très pratiques comme + le moteur de recherche mnoGoSearch, la passerelle avec + IRC, des outils de compressions (gzip, bz2) et de conversions + calendaires, de traduction... + </para> + <para> + Comme vous le voyez, cette page n'est pas assez grande pour lister + toutes les puissantes fonctionnalités de &php;. Lisez la section + sur <link linkend="installation">l'installation de &php;</link> + et étudiez la <link linkend="funcref">liste de fonctions</link> + pour avoir plus de détails sur toutes ces technologies. </para> - <para> - Le langage PHP inclus le support des services utilisant les protocoles tels que - <acronym>IMAP</acronym>, <acronym>SNMP</acronym>, <acronym>NNTP</acronym>, - <acronym>POP3</acronym> ou encore <acronym>HTTP</acronym>. Vous - pouvez également ouvrir des connexions et interagir en utilisant d'autres - protocoles. - </para> -<!-- - <figure> - <title>Internal Structure</title> - <graphic fileref="../images/php3_internal_structure.gif"/> - </figure> - <figure> - <title>Request Scheme</title> - <graphic fileref="../images/php3_request_scheme.gif"/> - </figure> ---> - </sect1> - <sect1 id="intro-history"> - <title>La genèse du PHP</title> - <simpara> - Le langage PHP a été conçu durant l'automne 1994 par - Rasmus Lerdorf. Les premières versions (qui restèrent - privées) étaient utilisées afin de savoir qui venait - consulter son CV en ligne. La première version publique fut - disponible au début de l'année 1995. Elle fut connue - sous le nom de "Personal Sommaire Page Tools". Elle était - composée d'un analyseur extrêmement simple qui ne reconnaissait - que quelques macros spéciales et d'un petit nombre d'utilitaires - couramment utilisés dans les pages web. Un livre d'or, un compteur, - etc... L'analyseur fut réécrit durant l'été 1995 - et fut appelé PHP/FI Version 2. FI etaient les initiales d'un autre - package que Rasmus avait écrit qui interprétait les - formulaires HTML. C'est alors qu'il combina le "Personnal Sommaire - Page tools" avec le "Form Interpreter" et il y ajouta le support de - mSQL: c'est comme cela que naquît PHP/FI. PHP/FI grandit de - manière spectaculaire et de nombreuses personnes - commencèrent à contribuer à son amélioration. - </simpara> - <simpara> - Il est relativement peu aisé de donner des statistiques, mais on - estime que PHP/FI est utilisé sur 15 000 sites web dans le monde - entier, fin 1996. Ce chiffre atteint 50 000 durant l'été - 1997. L'été 1997 voit aussi un profond changement dans le - développement du PHP: d'un projet personnel (celui de Ramsus), - on passe alors à une projet d'équipe. L'analyseur fut de - nouveau réécrit par Zeev Suraski et Andi Gutmans et ce nouvel - analyseur forma la base de la version 3 du PHP. Une grande partie du code de - PHP/FI fut complètement réécrit alors que l'autre partie - fut portée pour donner le PHP Version 3. La dernière version de PHP - (PHP 4) utilise le moteur d'analyse <ulink url="&url.zend;">Zend</ulink> - pour atteindre de nouveaux niveaux de performance, et supporter - un nombre encore plus grand de librairies et extensions. Il tourne - de manière native sur tous les serveurs web les plus répandus. - </simpara> - <simpara> - Aujourd'hui (Janvier 2001) PHP 3 ou PHP 4 sont distribués - avec de nombreux produits commerciaux comme "C2's StrongHold web server" et - "RedHat Linux" et il est admis (d'après les chiffres de - <ulink url="&url.netcraft;">NetCraft</ulink>, et leurs - <ulink url="&url.netcraft-survey;">statistiques Netcraft Web Server Survey</ulink>) - que le PHP est utilisé sur 5 100 000 sites web dans le monde entier. Pour - comparaison, ce chiffre est légèrement supérieur au nombre de serveurs - tournant sous Microsoft Information server (IIS) : 5.03 millions. - </simpara> -<!-- - <figure> - <title>NetCraft Webserver Survey</title> - <graphic fileref="&url.php.stats;"/></graphic> - </figure> ---> - <simpara> - Enfin, à l'heure où ce document est rédigé, - la nouvelle génération du PHP est en cours de création. - Elle utilisera les qualités de <ulink url="&url.zend;">Zend</ulink> - pour améliorer les performances et améliorera le support des - serveurs web autres que Apache. - </simpara> </sect1> </chapter> <!-- Keep this comment at the end of the file Index: phpdoc-fr/chapters/security.xml diff -u phpdoc-fr/chapters/security.xml:1.19 phpdoc-fr/chapters/security.xml:1.20 --- phpdoc-fr/chapters/security.xml:1.19 Wed Dec 12 15:48:48 2001 +++ phpdoc-fr/chapters/security.xml Sat Jan 18 11:11:35 2003 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.19 $ --> +<!-- $Revision: 1.20 $ --> <chapter id="security"> <title>Sécurité</title> <simpara> @@ -137,7 +137,7 @@ </simpara> <simpara> Le "path information" dans l'url, situé juste après le nom - du binaire PHP, <filename role="uri">/secret/doc.html</filename> est + de l'exécutable PHP, <filename role="uri">/secret/doc.html</filename> est utilisé par convention pour spécifier le nom du fichier qui doit être ouvert et interprété par le programe <acronym>CGI</acronym>. Habituellement, des directives de configuration @@ -395,14 +395,16 @@ <example> <title>Une erreur de vérification de variable conduit à ...</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier dans un dossier racine $username = $HTTP_POST_VARS['user_submitted_name']; $homedir = "/home/$username"; $file_to_delete = "$userfile"; unlink ($homedir/$userfile); echo "$file_to_delete a été effacé!"; -?> +?> +]]> </programlisting> </example> Etant donné que le nom de l'utilisateur est à fournir, des intrus peuvent @@ -415,7 +417,8 @@ <example> <title>Une attaque du système de fichiers!</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier n'importe où sur le disque dur, // où l'utilisateur PHP a accès. Si PHP a un accès root : $username = "../etc/"; @@ -423,7 +426,8 @@ $file_to_delete = "passwd"; unlink ("/home/../etc/passwd"); echo "/home/../etc/passwd a été effacé!"; -?> +?> +]]> </programlisting> </example> Il y a deux mesures primordiales à prendre pour éviter @@ -445,7 +449,8 @@ <example> <title>Une vérification renforcée</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // Efface un fichier sur le disque où l'utilisateur à le droit d'aller $username = $HTTP_SERVER_VARS['REMOTE_USER']; // utilise un mécanisme d'authentification @@ -458,7 +463,8 @@ fputs ($fp, $logstring); fclose($fp); echo "$file_to_delete a été éffacé!"; -?> +?> +]]> </programlisting> </example> Cependant, même cette technique n'est pas sans faille. @@ -469,14 +475,16 @@ <example> <title>Vérification de noms de fichier sécurisée</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php $username = $HTTP_SERVER_VARS['REMOTE_USER'];; $homedir = "/home/$username"; if (!ereg('^[^./][^/]*$', $username)) die('Erreur de nom de fichier'); //meurt, ne SURTOUT pas traiter! //etc... -?> +?> +]]> </programlisting> </example> </para> @@ -489,8 +497,440 @@ politique qui interdit TOUT sauf ce que vous autorisez. </para> </sect1> + <sect1 id="security.database"> + <title>Sécurité des bases de données</title> + <simpara> + De nos jours, les bases de données sont des composants incontournables + des serveurs web et des applications en ligne, qui fournissent du contenu + dynamique. Des données secrètes ou critiques peuvent être stockées dans les + bases de données : il est donc important de les protéger efficacement. + </simpara> + <simpara> + Pour lire ou stocker des informations, vous devez vous connecter au serveur + de base de données, envoyer une requête valide, lire le résultat et + refermer la connexion. De nos jours, le langage le plus courant pour ce + type de communication est le langage SQL (Structured Query Language). Voyez comment + un pirate peut + <link linkend="security.database.sql-injection">s'introduire dans une requête SQL</link>. + </simpara> + <simpara> + Comme vous pouvez le réaliser, &php; ne peut pas protéger vos bases de données + pour vous. La section suivante vous introduira aux notions de base pour protéger + vos bases de données, lors de la programmation de vos scripts. + </simpara> + <simpara> + Gardez bien cette règle simple en tête : la défense se fait par couches. + Plus vous ajouterez de tests pour protéger votre base, plus faible sera la + probabilité de réussite d'un pirate. Ajoutez à cela une bon schéma de base + de données, et vous aurez une application réussie. + </simpara> + + <sect2 id="security.database.design"> + <title>Schéma de base de données</title> + <simpara> + La première étape est de créer une base de données, à moins que vous ne + souhaitiez utiliser une base de données déjà créée. Lorsque la base + de données est créée, un utilisateur propriétaire en est responsable. + Généralement, seul le propriétaire (et le super utilisateur) peuvent + intervenir avec les tables de cette base, et il faut que ce dernier + donne des droits à tous les intervenants qui auront à faire dans cette + base. + </simpara> + <simpara> + Les applications ne doivent jamais se connecter au serveur de + base de données sous le nom du propriétaire ou de l'administrateur, + car ces utilisateurs ont des droits très importants, et pourront + exécuter n'importe quelle requête, comme par exemple la + modification de tables, l'effacement de lignes ou même encore, + la destruction de la base. + </simpara> + <simpara> + Vous pouvez créer différents utilisateurs de base de données pour + chaque aspect de votre application, avec des droits limités aux + seules actions planifiées. Il faut alors éviter que le même utilisateur + dispose des droits de plusieurs cas d'utilisation. Cela permet que + si des intrus obtiennent l'accès à la base avec l'un de ces jeux + de droits, il ne pourra pas affecter toute l'application. + </simpara> + <simpara> + Il est recommandé de ne pas implémenter toute la logique fonctionnelle + dans l'application web (c'est à dire dans vos scripts), mais d'en + reporter une partie dans la base en utilisant les triggers, vues et + règles. Si le système évolue, les nouvelles versions vous feront réécrire + toute la logique et donc tous vos scripts. De plus, l'utilisation de + trigger permet de gérer de manière transparente des données, et + fournit des indications pour déboguer votre application. + </simpara> + </sect2> + + <sect2 id="security.database.connection"> + <title>Connexions au serveur de base de données</title> + <simpara> + Il est recommandé d'établit des connexions au serveur avec le + protocole SSL, pour chiffrer les échanges clients/serveur, afin + d'améliorer la sécurité. Vous pouvez aussi utiliser un client + SSH pour chiffrer la connexion entre les clients et le serveur + de base de données. Si l'une de ces deux protections est + mise en place, il sera difficile de surveiller votre trafic et + de comprendre les informations échangées. + </simpara> + <!--simpara> + If your database server native SSL support, consider to use <link + linkend="ref.openssl">OpenSSL functions</link> in communication between + PHP and database via SSL. + </simpara--> + </sect2> + + <sect2 id="security.database.storage"> + <title>Modèle de stockage avec chiffrement</title> + <simpara> + Les protocoles SSL/SSH protègent les données qui circulent entre + le serveur et le client, mais SSL/SSH ne protègent pas les données + une fois dans la base. SSL est un protocole en ligne. + </simpara> + <simpara> + Une fois que le pirate a obtenu l'accès direct à votre base de données + (en contournant le serveur web), les données sensibles, stockées dans votre + base sont accessibles directement, à moins que les données de la base + ne soient protégées par la base. Chiffrer les données est une bonne + solution pour réduire cette menace, mais très peut de bases de données + offrent ce type de chiffrement. + </simpara> + <simpara> + Le moyen le plus simple pour contourner ce problème est de créer votre + propre logiciel de chiffrement, et de l'utiliser dans vos scripts &php;. + &php; peut vous aider dans cette tâche grâce aux nombreuses extensions + dont il dispose, comme par exemple + <link linkend="ref.mcrypt">Mcrypt</link> et + <link linkend="ref.mhash">Mhash</link>, qui connaissent un large éventail + de méthodes de chiffrement. Le script &php; va chiffrer les données qui seront + stockées, et les déchiffrer losrqu'elles seront relues. Voyez la suite + pour des exemples d'utilisation de ce chiffrement. + </simpara> + <simpara> + Dans le cas de données vraiment sensibles, si la représentation originale + n'est pas nécessaire (pour affichage, ou comparaison), utiliser un + hash est une bonne solution. L'exemple classique est le stockage de + mots de passe dans les bases de données, après les avoir passé au + MD5. Voyez les fonctions <function>crypt</function> et <function>md5</function>. + </simpara> + <example> + <title>Utiliser un mot de passe et MD5</title> + <programlisting role="php"> +<![CDATA[ +// Stockage du mot de passe hashé +$query = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');", + addslashes($username), md5($password)); +$result = pg_exec($connection, $query); + +// interroger le serveur pour comparer le mot de passe soumis +$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';", + addslashes($username), md5($password)); +$result = pg_exec($connection, $query); + +if (pg_numrows($result) > 0) { + echo "Bienvenue, $username!"; +} +else { + echo "Identification échouée pour $username."; +} +]]> + </programlisting> + </example> + </sect2> + + <sect2 id="security.database.sql-injection"> + <title>Injection SQL</title> + <simpara> + De nombreux développeurs web ne sont pas conscients des possibilités + de manipulation des requêtes SQL, et supposent que les requêtes SQL + sont des commandes sûres. Cela signifie qu'une requête SQL est + capable de contourner les contrôles et vérifications, comme par + exemple les identifications et authentifications, et parfois, les requêtes + SQL ont accès aux commandes d'administration. + </simpara> + <simpara> + L'injection SQL directe est une technique où un pirate modifie une requête + SQL existante pour afficher des données cachées, ou pour écraser des + valeurs importantes, ou encore exécuter des commandes dangeureuses pour la + base. Cela se fait lorsque l'appliaction prend les données envoyées par + l'internaute, et l'utilise directement pour contruire une requête SQL. Les + exemples ci-dessous sont basés sur une histoire vraie, malheureusement. + </simpara> + <para> + Avec le manque de vérification des données de l'internaute et la connexion + au serveur avec des droits de super utilisateur, le pirate peut créer des + utilisateurs, et créer un autre super utilisateur. + <example> + <title> + Séparation des résultats en pages, et créer des administrateurs + (PostgreSQL et MySQL) + </title> + <programlisting role="php"> +<![CDATA[ +$offset = argv[0]; // Attention, aucune validation! +$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; +// avec PostgreSQL +$result = pg_exec($conn, $query); +// avec MySQL +$result = mysql_query($query); +]]> + </programlisting> + </example> + Un utilisateur normale clique sur les boutons 'suivant' et 'précédent', + qui sont alors placés dans la variable <varname>$offset</varname>, + encodé dans l'URL. Le script s'attend à ce que la variable + <varname>$offset</varname> est alors un nombre décimal. Cependant, + il est possible de modifier l'URL en ajoutant une nouvelle valeur, + au format URL, comme ceci : + <informalexample> + <programlisting> +<![CDATA[ +// cas de PostgreSQL +0; +insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd) + select 'crack', usesysid, 't','t','crack' + from pg_shadow where usename='postgres'; +-- + +// cas de MySQL +0; +UPDATE user SET Password=PASSWORD('crack') WHERE user='root'; +FLUSH PRIVILEGES; +]]> + </programlisting> + </informalexample> + Si cela arrive, le script va créer un nouveau super utilisateur. + Notez que la valeur <literal>0;</literal> qui sert à terminer la requête + originale et la terminer correctement. + </para> + <note> + <para> + C'est une techinque répandue que de forcer l'analyseur SQL d'ignorer le + reste de la requête, en utilisant les symboles <literal>--</literal> pour + mettre en commentaire. + </para> + </note> + <para> + Un moyen possible pour accéder aux mots de passe est de contourner + la recherche de page. Ce que le pirate doit faire, c'est simplement + voir si une variable du formulaire est utilisée dans la requête, et + si elle est mal gérée. Ces variables peuvent avoir été configurées + dans une page précédente pour être utilisée dans les clauses + <literal>WHERE, ORDER BY, LIMIT</literal> et <literal>OFFSET</literal> des + requêtes <literal>SELECT</literal>. Si votre base de données supporte + les commandes <literal>UNION</literal>, le pirate peut essayer d'ajouter + une requête entière pour lister les mots de passe dans n'importe quelle + table. Utiliser la technique des mots de passe chiffrés est fortement + recommandée. + <example> + <title> + Liste d'articles ... et ajout de mot de passe + </title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT id, name, inserted, size FROM products + WHERE size = '$size' + ORDER BY $order LIMIT $limit, $offset;"; +$result = odbc_exec($conn, $query); +]]> + </programlisting> + </example> + La partie statique de la requête, combinée avec une autre + requête <literal>SELECT</literal>, va révéler les mots de passe : + <example> + <title>Révélation des mots de passe</title> + <programlisting> +<![CDATA[ +' +union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable; +-- +]]> + </programlisting> + </example> + Si cette requête (exploitant les <literal>'</literal> et <literal>--</literal>) + est affectée à une variable utilisée dans + <varname>$query</varname>, l'injection SQL va arriver. + </para> + <para> + Les commandes <literal>UPDATE</literal> sont aussi sujettes à des + attaques de votre base de données. Ces requêtes peuvent aussi introduite + toute une nouvelle requête dans votre commande initiale. Mais en plus, + le pirate peut jouer sur la commande <literal>SET</literal>. Dans ce cas, + il doit connaitre un peu votre base de données. Cela peut se deviner + en examinant les noms de variables dans les formulaires, ou simplement, + en testant les cas les plus classiques. Il n'y a pas beaucoup de conventions + de nommage pour stocker des noms d'utilisateur et des mots de passe. + <example> + <title>Modifier un mot de passe ... et gain de droits!</title> + <programlisting role="php"> +<![CDATA[ +$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';"; +]]> + </programlisting> + </example> + Mais un internaute fourbe peut envoyer une valeur telle que + <literal>' or uid like'%admin%'; --</literal> dans <varname>$uid</varname> + pour modifier le mot de passe utilisateur, ou simplement, utiliser la variable + <varname>$pwd</varname> avec la valeur + <literal>"hehehe', admin='yes', trusted=100 "</literal> (avec l'espace final) pour + obtenir des droist supplémentaires. La requête sera alors devenue : + <example> + <title>Une requête et son injection</title> + <programlisting role="php"> +<![CDATA[ +// $uid == ' or uid like'%admin%'; -- +$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --"; + +// $pwd == "hehehe', admin='yes', trusted=100 " +$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;" +]]> + </programlisting> + </example> + </para> + <para> + C'est un exemple terrible d'acquisition de droits d'administrateur sur un + serveur de base de données. + <example> + <title>Attaque d'un serveur de base de données (MSSQL Server)</title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT * FROM products WHERE id LIKE '%$prod%'"; +$result = mssql_query($query); +]]> + </programlisting> + </example> + Si le pirate injecte la valeur + <literal>a%' exec master..xp_cmdshell 'net user test testpass /ADD' --</literal> + dans la variable <varname>$prod</varname>, alors la requête <varname>$query</varname> + devient : + <example> + <title>Attaque d'un serveur de base de données (MSSQL Server) - 2</title> + <programlisting role="php"> +<![CDATA[ +$query = "SELECT * FROM products + WHERE id LIKE '%a%' + exec master..xp_cmdshell 'net user test testpass /ADD'--"; +$result = mssql_query($query); +]]> + </programlisting> + </example> + MSSQL Server exécute les requêtes SQL en lot, y compris la commande + d'ajout d'un nouvel utilisateur à la base de données locale. Si cette + application fonctionnait en tant que <literal>sa</literal> et que le service + MSSQLSERVER disposait de niveau de droits suffisant, le pirate dispose désormais + d'un compte avec accès au serveur. + </para> + <note> + <para> + Certains des exemples ci-dessus sont spécifiques à certains serveurs de + bbase de données. Cela n'empêche pas des attaques similaires d'être possibles + sur d'autres produites. Votre base de données sera alors vulnérable d'une autre + manière. + </para> + </note> + + <sect3 id="security.database.avoiding"> + <title>Techniques de contournement</title> + <simpara> + Vous pouvez prétendre que le pirate doit d'abord obtenir des informations + sur le schéma de la base de données, dans la plus part des cas d'injections. + C'est vrai, mais vous ne saurez jamais comment ni quand ces informations + auront filtrés, et si cela arrive, votre base de données sera en grand + danger. Si vous utilisez une base de données Open Srouce, ou une + base qui est du domaine publique, ou encore un schéma qui appartient + à un système de gestion de contenu ou d'un forum, le pirate peut facilement + se procurer une copie du code que vous utilisez. Cela peut être un + risque potentiel si la base a été mal conçue. + </simpara> + <simpara> + Ces attaques sont généralement basées sur l'exploitation de code qui + n'est pas écrit de manière sécuritaire. N'ayez aucune confiance dans + les données qui proviennent de l'utilisateur, même si cela provient d'un + menu déroulant, d'un champs caché ou d'un cookie. Le premier exemple montre + comment une requête peut causer un désastre. + </simpara> + <itemizedlist> + <listitem> + <simpara> + Ne nous connectez jamais sur une ase de données en tant que super utilisateur + ou propriétaire de la base. Utilisez toujours un utilisateur adapté, avec + des droits très limités. + </simpara> + </listitem> + <listitem> + <simpara> + Vérifiez que les données ont bien le type attendu. &php; dispose + d'un éventail de fonction de validation large, depuis les plus + simples, de la section <link linkend="ref.variables">Variables</link> et + la section <link linkend="ref.ctype">Caractères</link> + (e.g. <function>is_numeric</function>, <function>ctype_digit</function> + respectivement) aux fonctions avancées de + <link linkend="ref.pcre">Expression régulière Perl</link>. + </simpara> + </listitem> + <listitem> + <para> + Si l'application attend une entrée numérique, vérifiez vos données + avec la fonction <function>is_numeric</function>, ou bien modifiez + automatiquement le type avec la fonction <function>settype</function>, + ou encore avec <function>sprintf</function>. + <example> + <title>Une navigation de fiches plus sécuritaire</title> + <programlisting role="php"> +<![CDATA[ +settype($offset, 'integer'); +$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; + +// notez que %d dans la chaîne de format : %s serait inutile +$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;", + $offset); +]]> + </programlisting> + </example> + </para> + </listitem> + <listitem> + <simpara> + Mettez entre guillemet toutes les valeurs non numériques qui sont + passées à la base de données, et protégez-vous des guillemets dans + les valeurs avec la fonction <function>addslashes</function> ou + <function>addcslashes</function>. Voyez + <link linkend="security.database.storage">le premier exemple</link>. + Comme les exemples l'on montré, les guillemets statiques peuvent + être facilement contournés. + </simpara> + </listitem> + <listitem> + <simpara> + N'affichez jamais d'information spécifique à la base, et notamment + des informations concernant le schéma. Voyez aussi la section + <link linkend="security.errors">Rapport d'erreur</link> et le chapitre + <link linkend="ref.errorfunc">Gestion des erreurs</link>. + </simpara> + </listitem> + <listitem> + <simpara> + Vous pouvez avoir des procédures stockées et des curseurs prédéfinis qui + font que les utilisateurs n'ont pas un accès direct aux tables ou vues, + mais cette solution a d'autres impacts. + </simpara> + </listitem> + </itemizedlist> + + <simpara> + A coté de ces conseils, il est recommandé d'enregistrer vos requêtes soit dans + vos scripts soit dans la base elle même, si elle le supporte. Evidemment, + cet enregistrement ne sera pas capable d'empêcher une attaque, mais vous + permettra de retrouver la requête qui a fauté. L'historique n'est pas très utile + par lui même, mais au niveau des informations qu'il contient. Plus vous + avez de détails, mieux c'est. + </simpara> + </sect3> + </sect2> + </sect1> <sect1 id="security.errors"> - <title>Rapport d'erreur</title> + <title>Rapport d'erreurs</title> <para> En terme de sécurité, il y a deux conséquence au rapport d'erreur. D'un coté, cela améliore la sécurité, @@ -507,10 +947,12 @@ <example> <title>Attacque de site avec une page HTML personnalisée</title> <programlisting role="php"> -<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo"> -<input type="hidden" name="username" value="badfoo"> -<input type="hidden" name="password" value="badfoo"> -</form> +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?username=badfoo&password=badfoo"> +<input type="hidden" name="username" value="badfoo"> +<input type="hidden" name="password" value="badfoo"> +</form> +]]> </programlisting> </example> </para> @@ -533,11 +975,13 @@ <example> <title>Exploiter des variables classiques de débuggage</title> <programlisting role="php"> -<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1"> -<input type="hidden" name="errors" value="Y"> -<input type="hidden" name="showerrors" value="1"> -<input type="hidden" name="debug" value="1"> -</form> +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?errors=Y&showerrors=1"&debug=1"> +<input type="hidden" name="errors" value="Y"> +<input type="hidden" name="showerrors" value="1"> +<input type="hidden" name="debug" value="1"> +</form> +]]> </programlisting> </example> </para> @@ -589,7 +1033,8 @@ <example> <title>Détecter des variables non protégées avec E_ALL</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($username) { // Non initialisée, ou vérifée avant utilisation $good_login = 1; @@ -598,13 +1043,14 @@ // Si le test ci-dessus échoue, les valeurs n'ont pas été testées fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> </para> </sect1> <sect1 id="security.registerglobals"> - <title>Utilisation des variables HTTP</title> + <title>Utilisation des variables super-globales</title> <para> Une fonctionnalité de PHP qui peut être utilisée pour améliorer la sécurité est de configurer PHP en inactivant l'option @@ -623,7 +1069,8 @@ <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($username) { // attention, cette valeur peut être parasitée via GET/POST/COOKIES $good_login = 1; @@ -632,20 +1079,23 @@ // attention, cette valeur peut être parasitée via GET/POST/COOKIES fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if($HTTP_COOKIE_VARS["username"]){ // ne peut provenir que d'un cookie, corrompu ou pas $good_login = 1; // Impossible à parasiter fpassthru ("/données/très/très/sensibles/index.html"); } -?> +?> +]]> </programlisting> </example> En utilisant intelligemment ceci, il est même possible @@ -657,7 +1107,8 @@ <example> <title>Détection de corruption de variables</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php if ($HTTP_COOKIE_VARS['username'] && !$HTTP_POST_VARS['username'] && !$HTTP_GET_VARS['username'] ) { @@ -669,7 +1120,8 @@ echo "Problème de sécurité, l'administrateur est alerté."; exit; } -?> +?> +]]> </programlisting> </example> Bien entendu, inactiver l'option register_globals ne signifie pas @@ -690,7 +1142,8 @@ <example> <title>Utilisation dangereuse de variables</title> <programlisting role="php"> -<?php +<![CDATA[ +<?php // efface un fichier à la racine d'un utilisateur... ou peut être // de quelqu'un d'autre? unlink($evil_var); @@ -699,7 +1152,8 @@ // Exécute une commande triviale... ou ajoute une entrée dans /etc/password ? system($evil_var); exec($evil_var); -?> +?> +]]> </programlisting> </example> Il est vivement recommandé d'examiner minutieusement votre code @@ -756,7 +1210,7 @@ <para> Quelques astuces permettent de masquer PHP, et cela entrave les pirates qui recherchent des faiblesses dans votre système. En - inactivant l'option expose_php dans votre fichier <filename>php.ini</filename>, + inactivant l'option expose_php dans votre fichier &php.ini;, vous pouvez réduire la quantité d'informations disponible. </para> <para> Index: phpdoc-fr/chapters/tutorial.xml diff -u phpdoc-fr/chapters/tutorial.xml:1.2 phpdoc-fr/chapters/tutorial.xml:1.3 --- phpdoc-fr/chapters/tutorial.xml:1.2 Thu Dec 19 22:36:21 2002 +++ phpdoc-fr/chapters/tutorial.xml Sat Jan 18 11:11:35 2003 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <chapter id="tutorial"> <title>Une introduction à PHP</title> @@ -108,6 +108,55 @@ PHP avec <literal>?></literal>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise. </para> + + <note> + <title>Une note sur les éditeurs de texte</title> + <para> + Il existe de nombreux éditeurs de texte et environnement de + développement (IDE) que vous pouvez utiliser pour créer, éditer + et gérer vos applications PHP. Une liste partielle de ces outils + est entretenue à l'adresse <ulink url="&url.phpeditorlist;">PHP Editor's List</ulink>. + Si vous voulez recommander un éditeur, rendez donc une visite + à cette page, et demandez au webmestre d'ajouter votre éditeur. + </para> + </note> + + <note> + <title>Une note sur les traitements de texte</title> + <para> + Les traitements de texte tels que StarOffice Writer, Microsoft Word et + Abiword sont de très mauvais choix pour éditer des scripts PHP. + </para> + + <para> + Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos + scripts, vous devez vous assurer que vous sauvez les fichiers au format + texte seul (PLAIN TEXT) : sinon, &php; ne sera pas capable de lire + et d'exécuter ces scripts. + </para> + </note> + + <note> + <title>Une note sur le Notepad de Windows</title> + <para> + Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez + vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad + ajoute automatiquement une extension .txt à vos fichiers, à moins que + vous ne preniez l'une des mesures suivantes : + </para> + + <para> + Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner + un nom, placez le nom du fichier entre guillemets (i.e. "hello.php"). + </para> + + <para> + Ou bien, vous pouvez cliquer dans le menu 'Text Documents' du dialogue + de sauvegarde, et choisir l'option "All Files". Vous pourrez alors saisir + le nom de votre fichier sans les guillemets. + </para> + </note> + </sect1> <sect1 id="tutorial.useful"> @@ -131,7 +180,8 @@ et une auto-globale. Reportez-vous aux pages du manuel traitant des <link linkend="language.variables.superglobals">Auto-globales</link> (aussi connues sous le noms de super-globales). Ces - variables spéciales ont été introduites en PHP 4.1.0. Auparavant, + variables spéciales ont été introduites en + <ulink url="&url.php.release4.1.0;">&php; 4.1.0</ulink>. Auparavant, il fallait utiliser les variables <varname>$HTTP_*_VARS</varname>, comme par exemple <varname>$HTTP_SERVER_VARS</varname>. Bien qu'obsolètes, ces variables existent toujours. @@ -382,7 +432,8 @@ (qui devaient être indiquées comme globales pour être utilisées dans une fonction ou une méthode) sont obsolètes. Les nouveaux <link linkend="language.variables.superglobals">tableaux auto-globaux</link> - ont été introduit en PHP 4.1.0. Ce sont les variables suivantes : + ont été introduit en + <link linkend="&url.php.release4.1.0;">&php; 4.1.0</link>. Ce sont les variables suivantes : <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> et