cvs: phpdoc-fr /chapters config.xml install.xml intro.xml security.xml tutorial.xml

From: 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&eacute; <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&eacute;marrage. Si vous avez compil&eacute; PHP en module, le fichier n'est lu qu'une seule fois, au lancement du d&eacute;mon <acronym>HTTP</acronym>. Pour la version <acronym>CGI</acronym> le fichier est lu &agrave; chaque invocation. </simpara> <para> + La localisation par d&eacute;faut du &php.ini; est une option de compilation (voir + <link linkend="faq.installation.phpini">FAQ</link>), mais elle peut &ecirc;tre + chang&eacute;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&eacute;mentaires pour rechercher le fichier + &php.ini;. + </para> + <para> + Toutes les directives &php; ne sont pas document&eacute;es ci-dessous. Pour une + ligne de toutes les directives, lisez le &php.ini;, qui est tr&egrave;s bien + document&eacute;. Vous pouvez jeter un oeil &agrave; sa toute derni&egrave;re version + <ulink url="&url.php.cvs.phpini;">dans le CVS</ulink>. + </para> + <note> + <para> + La valeur par d&eacute;faut de la directive &php; + <link linkend="ini.register-globals">register_globals</link> a &eacute;t&eacute; chang&eacute;e + de <emphasis>on</emphasis> &agrave; <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&eacute; apr&egrave;s un point-virgule ";" est ignor&eacute; [php] ; les marqueur de section (texte entre crochets) sont aussi ignor&eacute;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&eacute;cuter &php; comme module Apache</title> <simpara> Lorsque vous utilisez le module Apache, vous pouvez aussi changer les param&egrave;tres de configurations en utilisant les directives @@ -45,9 +76,8 @@ pr&eacute;fix&eacute;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 &agrave; la variable - sp&eacute;cifi&eacute;e. - </para> + Modifie la valeur de la directive sp&eacute;cifi&eacute;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 &eacute;t&eacute; modifi&eacute;e au pr&eacute;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&eacute;e pour activer ou + Cette instruction est utilis&eacute;e pour activer ou d&eacute;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 &agrave; la variable - sp&eacute;cifi&eacute;e. La directive "Admin" ne peut &ecirc;tre - utilis&eacute;e que dans le fichier de configuration d'Apache, et - non dans un fichier <filename>.htaccess</filename>. + Cette instruction affecte une valeur &agrave; la variable + sp&eacute;cifi&eacute;e. + Cette instruction NE peux PAS &ecirc;tre utilis&eacute;e dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configur&eacute;e avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas &ecirc;tre + modifi&eacute;e en utilisant le fichier <filename>.htaccess</filename>. </para> </listitem> </varlistentry> @@ -101,6 +145,10 @@ <para> Cette directive est utilis&eacute;e pour activer ou d&eacute;sactiver l'option pr&eacute;c&eacute;dente. + Cette instruction NE peux PAS &ecirc;tre utilis&eacute;e dans un fichier <filename>.htaccess</filename>. + Toute diretive de &php; configur&eacute;e avec le type + <systemitem role="directive">php_admin_value</systemitem> ne peut pas &ecirc;tre + modifi&eacute;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"> -&lt;IfModule mod_php4.c&gt; +<![CDATA[ +<IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" - php_flag safe_mode on -&lt;/IfModule&gt; -&lt;IfModule mod_php3.c&gt; + php_admin_flag safe_mode on +</IfModule> +<IfModule mod_php3.c> php3_include_path ".:/usr/local/lib/php" php3_safe_mode on -&lt;/IfModule&gt; +</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&eacute;es par <emphasis>0</emphasis>. + Utilisez les valeurs num&eacute;riques &agrave; la place. + Les valeurs num&eacute;riques peuvent aussi &ecirc;tre + utilis&eacute;es dans le &php.ini; + </para> + </note> + </sect2> + + <sect2 id="configuration.changes.other"> + <title>Autres interfaces de configuration de &php;</title> + <para> + Ind&eacute;pendamment de l'interface de &php;, vous pouvez modifier + certaines valeurs de la configuration durant l'ex&eacute;cution des + scripts, gr&acirc;ce &agrave; la fonction <function>ini_set</function>. + La table suivante fournit une pr&eacute;sentation des diff&eacute;rents endroits + o&ugrave; la directive peut &ecirc;tre modifi&eacute;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 &ecirc;tre configur&eacute;e dans les scripts.</entry> + </row> + <row> + <entry>PHP_INI_PERDIR</entry> + <entry>2</entry> + <entry> + La directive peut &ecirc;tre configur&eacute;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 &ecirc;tre configur&eacute;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 &ecirc;tre modifi&eacute;e n'importe o&ugrave;.</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + <para> Vous pouvez voir l'&eacute;tat de votre configuration en utilisant la fonction <function>phpinfo</function>. Vous pouvez aussi acc&eacute;der aux valeurs de votre configuration de mani&egrave;re - individuelle en utilisant la fonction <function>get_cfg_var</function>. - </simpara> - <sect2 id="ini.sect.general"> - <title>Directives de configuration g&eacute;n&eacute;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&eacute;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&eacute;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>&lt;? ?&gt;</userinput>. Si vous voulez utiliser + &php; avec du XML, vous pouvez d&eacute;sactiver cette option afin que + vous puissiez utiliser <userinput>&lt;?xml ?&gt;</userinput>. Sinon + vous pouvez l'afficher avec PHP comme ceci : + <userinput>&lt;?php echo '&lt;?xml version="1.0"'; ?&gt;</userinput>. + Si cette directive est inactiv&eacute;e, vous devez utiliser la + forme longue des balises &php; <userinput>&lt;?php ?&gt;</userinput>. + </para> + <note> + <para> + Cette directive affecte aussi les raccourcis <userinput>&lt;?=</userinput>, + qui est l'&eacute;quivalent de <userinput>&lt;? 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&eacute;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&icirc;ne de caract&egrave;res</type> + <parameter>precision</parameter> + <type>&integer;</type> + </term> + <listitem> + <simpara> + Le nombre de chiffres significatifs &agrave; 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&eacute; an 2000 (Cela posera des probl&egrave;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&eacute;cifie le nom d'un fichier qui sera automatiquement ajout&eacute; - apr&egrave;s le fichier principal. Le fichier est inclus comme s'il avait - &eacute;t&eacute; appel&eacute; avec la fonction <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilis&eacute;. + Cette directive force le passage des arguments par r&eacute;f&eacute;rence au + moment de l'appel des fonctions. Cette m&eacute;thode est obsol&egrave;te, et il + est probable qu'elle soit abandonn&eacute;e dans les futures versions de + PHP et Zend. La m&eacute;thode qui est recommand&eacute;e est d'indiquer le passage + par r&eacute;f&eacute;rence dans la d&eacute;claration de la focntion. Nous vous recommandons + de tenter de d&eacute;sactiver cette directive et d'adapter vos scripts, + afin d'en garantir leur portabilit&eacute; (vous verrez une alerte s'afficher + &agrave; chaque fois que vous utilisez cette fonctionnalit&eacute;, et les + arguments seront pass&eacute;s par valeur au lieu de par r&eacute;f&eacute;rence). </para> <para> - Le mot r&eacute;serv&eacute; <systemitem class="constant">NONE</systemitem> - d&eacute;sactive l'auto-appending. + Voir aussi <link linkend="language.references">Les r&eacute;f&eacute;rences</link>. </para> - <note> - <para> - Si le script s'arr&ecirc;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&icirc;ne de caract&egrave;res</type> + <parameter>expose_php</parameter> + <type>&boolean;</type> </term> <listitem> <para> - Sp&eacute;cifie le nom d'un fichier qui sera automatiquement ajout&eacute; - avant le fichier principal. Le fichier est inclus comme s'il avait - &eacute;t&eacute; appel&eacute; avec la fonction <function>include</function>, - donc <link linkend="ini.include-path">include_path</link> est utilis&eacute;. + Cette directive active ou non le fait que &php; est marqu&eacute; comme install&eacute; + sur le serveur web (en ajoutant sa propre signature dans les ent&ecirc;tes du serveur + web). Cet affichage n'est pas une menace en terme de s&eacute;curit&eacute;, mais il permet + de d&eacute;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&eacute;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 &eacute;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&eacute; maximale de m&eacute;moire, exprim&eacute;e + en octets, qu'un script peut r&eacute;server. Cela &eacute;vite que des scripts + mal &eacute;crits consomme toute la m&eacute;moire sur le serveur. Afin d'utiliser + cette directive, vous devez l'avoir activ&eacute;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&eacute;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&eacute;es</title> + <para> + <table> + <title>Options de gestion des donn&eacute;es</title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom</entry> + <entry>Par d&eacute;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>"&amp;"</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>arg_separator.input</entry> + <entry>"&amp;"</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 &eacute;claircissement sur ces directives. + <variablelist> + <varlistentry id="ini.track-vars"> + <term> + <parameter>track_vars</parameter> + <type>&boolean;</type> + </term> + <listitem> + <para> + Si activ&eacute;, 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&eacute;serv&eacute; <systemitem class="constant">NONE</systemitem> - d&eacute;sactive l'auto-appending. - </para> + Notez que depuis PHP 4.0.3, + <systemitem role="directive">track_vars</systemitem> est toujours + activ&eacute;e. + </para> </listitem> </varlistentry> - <varlistentry id="ini.cgi-ext"> + + <varlistentry id="ini.arg-separator.output"> <term> - <parameter>cgi_ext</parameter> - <type>cha&icirc;ne de caract&egrave;res</type> + <parameter>arg_separator.output</parameter> + <type>&string;</type> </term> <listitem> - <para> - (NDT : aucune documentation n'est fournie). - </para> + <para> + Le s&eacute;parateur utilis&eacute; par &php; dans les URL g&eacute;n&eacute;r&eacute;es par &php; pour + s&eacute;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&eacute;e que - si elle est d&eacute;finie. Si PHP est configur&eacute; en - &safemode;, aucun fichier en dehors de ce dossier ne sera accessible. + Liste de s&eacute;parateur(s) utilis&eacute; par &php; pour analyser les + URL d'entr&eacute;es, et en d&eacute;duire les variables. </para> + <note> + <para> + Chacun des caract&egrave;res de cette directive est consdir&eacute; comme + un s&eacute;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&ugrave; 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&eacute;rifi&eacute;e. - Si ce fichier est hors du dossier cit&eacute; dans cette directive, PHP refusera - de l'ouvrir. Tous les liens symboliques sont r&eacute;solus, et subissent aussi - la restriction. - </para> - <para> - La valeur sp&eacute;ciale <systemitem class="constant">.</systemitem> - indique que le dossier courant du script est utilis&eacute; comme open_basedir. - </para> - <para> - Sous Windows, s&eacute;parez les noms de dossiers par un point virgule (;). - Sur les autres syst&egrave;mes, s&eacute;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&eacute;rit&eacute;e par les fils. - </para> + <para> + Etablit l'ordre de priorit&eacute; des m&eacute;thodes GET/POST/COOKIE + et des valeurs issues de l'environnement et du serveur. + Par d&eacute;faut, cette directive est &eacute;tablie &agrave; "EGPCS". + En affectant "GP" &agrave; cette directive, &php; ignorera les cookies, + le serveur et l'environnement et &eacute;crasera toute variable issue + de la m&eacute;thode GET par les valeurs des variables de m&ecirc;me nom, + issues de la m&eacute;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&eacute;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&eacute;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&eacute;faut <emphasis>off</emphasis>. Il est recommand&eacute; + de lire la liste des <link linkend="reserved.variables">Variables pr&eacute;d&eacute;finies</link>, + pour d&eacute;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&eacute;curit&eacute; + <link linkend="security.registerglobals">Utilisation des variables super-globales</link> + pour plus de d&eacute;tails. + </para> + <para> + Notez que <systemitem role="directive">register_globals</systemitem> + ne peut &ecirc;tre modifi&eacute;e durant l'ex&eacute;cution du script (avec <function>ini_set</function>). + Cependant, vous pouvez utiliser le fichier <filename>.htaccess</filename> si + votre h&ocirc;te les supporte, comme d&eacute;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 &eacute;t&eacute; ajout&eacute; dans 3.0.7. - </para> - </note> - <para> - La valeur par d&eacute;faut est : libre acc&egrave;s &agrave; tous les fichiers. - </para> + <systemitem role="directive">register_globals</systemitem> est combin&eacute; 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 &agrave; &php; si il doit d&eacute;clarer les variables argv et - argc (qui contiendront alors les m&ecirc;mes informations pass&eacute;es par m&eacute;thode GET). + argc (qui contiendront alors les m&ecirc;mes informations pass&eacute;es + par m&eacute;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&icirc;ne de caract&egrave;res</type> + <parameter>gpc_order</parameter> + <type>&string;</type> </term> <listitem> - <para> - Etablit l'ordre de pr&eacute;s&eacute;ance des m&eacute;thodes GET/POST/COOKIE. - Par d&eacute;faut, cette directive est &eacute;tablie &agrave; "GPC". En affectant "GP" &agrave; - cette directive, PHP ignorera les cookies, et &eacute;crasera toute m&eacute;thode - GET utilis&eacute;e par une m&eacute;thode POST avec des variables du m&ecirc;me nom. - </para> + <para> + Cette directive est obsol&egrave;te. Voyez plut&ocirc;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&eacute;cifie une liste de dossiers, o&ugrave; 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&ecirc;me - que celui de la variable d'environnement <envar>PATH</envar> : une liste de dossiers, - s&eacute;par&eacute;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&eacute;faut pour cette directive est <literal>.</literal>, - c'est-&agrave;-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&eacute;cifie le nom d'un fichier qui sera automatiquement ajout&eacute; + apr&egrave;s le fichier principal. Le fichier est inclus comme s'il avait + &eacute;t&eacute; appel&eacute; avec la fonction <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilis&eacute;. </para> - </listitem> - </varlistentry> - <varlistentry id="ini.memory-limit"> - <term> - <parameter>memory_limit</parameter> - <type>entier</type> - </term> - <listitem> <para> - Gr&acirc;ce &agrave; cette option, vous pouvez donner la quantit&eacute; - maximale de m&eacute;moire qu'un script peut allouer. Ceci permet - de se prevenir contre des scripts mal cod&eacute;s pouvant consommer toute - la m&eacute;moire disponible d'un serveur + Le mot r&eacute;serv&eacute; <systemitem class="constant">NONE</systemitem> + d&eacute;sactive l'auto-appending. </para> + <note> + <para> + Si le script s'arr&ecirc;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&icirc;ne de caract&egrave;res</type> + <parameter>auto_prepend_file</parameter> + <type>&string;</type> </term> <listitem> <para> - Aucune documentation n'est fournie. + Sp&eacute;cifie le nom d'un fichier qui sera automatiquement ajout&eacute; + avant le fichier principal. Le fichier est inclus comme s'il avait + &eacute;t&eacute; appel&eacute; avec la fonction <function>include</function>, + donc <link linkend="ini.include-path">include_path</link> est utilis&eacute;. </para> + <para> + Le mot r&eacute;serv&eacute; <systemitem class="constant">none</systemitem> + d&eacute;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&eacute;sactiver cette fonction - si vous ne voulez pas truffer vos scripts avec des - valeurs utilisateurs. Cette option est surtout utile lorsqu'elle - est utilis&eacute;e conjointement avec <link - linkend="ini.track-vars">track_vars</link> - dans ce cas, - vous pouvez acc&eacute;der &agrave; toutes les variables EGPCS gr&acirc;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&eacute;en</type> + <parameter>default_charset</parameter> + <type>&string;</type> </term> <listitem> <para> - Active ou d&eacute;sactive l'utilisation des balises courtes, - (<userinput>&lt;? ?&gt;</userinput>). Si vous voulez utiliser PHP et XML en m&ecirc;me - temps, vous devez d&eacute;sactiver cette option. Si cette option est - d&eacute;sactiv&eacute;e, vous devez utiliser la forme longue des tags, - (<userinput>&lt;?php ?&gt;</userinput>).</para> + Depuis la version 4.0b4, &php; fournit toujours une indication + de jeu de caract&egrave;res pour les fichiers g&eacute;n&eacute;r&eacute;s, dans l'ent&ecirc;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&eacute;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&eacute;en</type> + <parameter>allow_webdav_methods</parameter> + <type>&boolean;</type> </term> <listitem> <para> - Si cette option est activ&eacute;e, lors de l'appel des m&eacute;thodes GET, POST et - l'utilisation des cookies, les variables sont disponibles dans des tableaux - associatifs globaux appel&eacute;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&ecirc;tes HTTP WebDAV par &php; : + PROPFIND, PROPPATCH, MOVE, COPY, etc... Si vous voulez les donn&eacute;es + post&eacute;es par ces requ&ecirc;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&eacute;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 &eacute;claircissement sur ces directives. + <variablelist> + <varlistentry id="ini.include-path"> <term> - <parameter>upload_tmp_dir</parameter> - <type>cha&icirc;ne de caract&egrave;res</type> + <parameter>include_path</parameter> + <type>&string;</type> </term> <listitem> <para> - Indique le r&eacute;pertoire utilis&eacute; lors du chargement d'un fichier sur un - serveur. Ce r&eacute;pertoire doit &ecirc;tre accessible en lecture pour - l'utilisateur qui lance le script PHP. + Sp&eacute;cifie une liste de dossiers, o&ugrave; les fonctions + <function>require</function>, <function>include</function> et + fopen_with_path() iront chercher les fichiers. Le format est + le m&ecirc;me que celui de la variable d'environnement + <envar>PATH</envar> : une liste de dossiers, s&eacute;par&eacute;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&eacute;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&eacute;l&eacute;charg&eacute; sur le serveur. La valeur - doit &ecirc;tre en octets. Par d&eacute;faut, elle est de 2 m&eacute;ga-octets. - in bytes. + Le dossier racine de &php;. Cette directive n'est utilis&eacute;e que + si elle est d&eacute;finie. Si &php; est configur&eacute; en + &safemode;, aucun fichier en dehors de ce dossier ne sera accessible. + Si &php; n'a pas &eacute;t&eacute; compil&eacute; avec l'option FORCE_REDIRECT, vous + DEVRIEZ utiliser cette option, si vous ex&eacute;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&icirc;ne de caract&egrave;res</type> + <type>&string;</type> </term> <listitem> <para> - R&eacute;pertoire o&ugrave; sont stock&eacute;s les fichiers PHP dans le - r&eacute;pertoire d'un utilisateur. Par exemple, <literal>public_html</literal>. + R&eacute;pertoire o&ugrave; sont stock&eacute;s les fichiers &php; + dans le r&eacute;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&eacute;en</type> + <parameter>extension_dir</parameter> + <type>&string;</type> </term> <listitem> <para> - Cette directive active ou d&eacute;sactive l'option &safemode;, un - mode de s&eacute;curisation de PHP lors du partage avec plusieurs utilisateurs. - </para> + D&eacute;finit le r&eacute;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&icirc;ne de caract&egrave;res</type> + <parameter>extension</parameter> + <type>&string;</type> </term> <listitem> <para> - Si l'option "SAFE MODE" est activ&eacute;e, <function>system</function> et les - autres fonctions ex&eacute;cutant des programmes syst&egrave;mes refusent de se lancer - si ces programmes ne sont pas plac&eacute;s dans ce r&eacute;pertoire. + D&eacute;finit les extensions qui doivent &ecirc;tre charg&eacute;es lors du + d&eacute;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&eacute;cesssaire pour assurer la s&eacute;curit&eacute; de + &php;, lorsqu'il fonctionne en tant que CGI pour la plus part + des serveur web. M&ecirc;me si laiss&eacute; vide, &php; va activer cette + option par d&eacute;faut. Vous pouvez l'inactiver + <emphasis>&agrave; vos risques et p&eacute;rils</emphasis>. + </para> + <note> + <para> + Utilisateurs Windows : vous pouvez inactiver cette option sans probl&egrave;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&eacute;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&eacute;cution. + </para> + <note> + <para> + Allouer cette variable PEUT causer des probl&egrave;mes de s&eacute;curit&eacute;, + 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&eacute; de + traiter les tokens de s&eacute;curit&eacute; du client. Cela permet &agrave; IIS de + d&eacute;finir le contexte de s&eacute;curit&eacute; &agrave; utiliser. mod_fastcgi sous Apache + ne supporte pas encore cette fonctionnalit&eacute; (17/03/2002). + Utilisez la valeur de 1 pour l'activer sous IIS. La valeur par + d&eacute;faut est z&eacute;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&eacute;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 &eacute;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&eacute;l&eacute;chargements de fichiers</link> + sont support&eacute;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&eacute;pertoire utilis&eacute; lors du chargement d'un fichier sur un + serveur. Ce r&eacute;pertoire doit &ecirc;tre accessible en lecture pour + l'utilisateur qui ex&eacute;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&eacute;l&eacute;charg&eacute; sur le serveur. + La valeur est en octets. Par d&eacute;faut, elle est de 2 m&eacute;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&eacute;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 &eacute;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&eacute;bugage.</title> + <title>Configuration des d&eacute;bogeurs</title> <variablelist> + <varlistentry id="ini.debugger.host"> <term> <parameter>debugger.host</parameter> - <type>cha&icirc;ne de caract&egrave;res</type> + <type>&string;</type> </term> <listitem> <para> - Adresse IP ou nom de l'h&ocirc;te utilis&eacute; pour le d&eacute;bugage. + Nom DNS ou adresse IP de l'h&ocirc;te du d&eacute;bogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.port"> <term> <parameter>debugger.port</parameter> - <type>cha&icirc;ne de caract&egrave;res</type> + <type>&string;</type> </term> <listitem> <para> - Num&eacute;ro du port utilis&eacute; pour le d&eacute;bugage. + Num&eacute;ro de port du d&eacute;bogueur. </para> </listitem> </varlistentry> + <varlistentry id="ini.debugger.enabled"> <term> <parameter>debugger.enabled</parameter> - <type>bool&eacute;en</type> + <type>&boolean;</type> </term> <listitem> <para> - Activation ou d&eacute;sactivation du d&eacute;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&icirc;ne de caract&egrave;res</type> - </term> - <listitem> - <para> - D&eacute;finit le r&eacute;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&icirc;ne de caract&egrave;res</type> - </term> - <listitem> - <para> - D&eacute;finit les extensions qui doivent &ecirc;tre charg&eacute;es lors du - d&eacute;marrage du PHP. + Indique si le d&eacute;bogeur est activ&eacute; 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&eacute;rations g&eacute;n&eacute;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&eacute;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 &agrave; interface graphique</simpara></listitem> </itemizedlist> </para> <para> Pour la premi&egrave;re t&acirc;che, qui est de loin la plus r&eacute;pandue, vous avez besoin de trois choses : PHP lui-m&ecirc;me, un serveur web et un navigateur. Vous avez probablement un navigateur, et en fonction de votre syst&egrave;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 &agrave; une soci&eacute;t&eacute;. De cette fa&ccedil;on, vous n'aurez pas &agrave; mettre en place PHP, mais uniquement &agrave; &eacute;crire vos scripts, les charger sur le serveur et voir le r&eacute;sultat sur votre navigateur. Vous pouvez trouver une liste de ces compagnies &agrave; <ulink url="&url.php.hosts;">&url.php.hosts;</ulink>. </para> <para> Si vous installez PHP et le serveur par vous-m&ecirc;me, vous avez deux choix. Soit sous la forme d'un module du serveur web (via une interface directe appel&eacute;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&eacute;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 (&eacute;crire des scripts de g&eacute;n&eacute;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&eacute;cutable PHP. Pour plus de d&eacute;tails, lisez la section <link linkend="commandline">&eacute;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 &eacute;crire des interfaces graphiques clientes, en utilisant l'extension PHP-GTK. C'est une approche compl&egrave;tement diff&eacute;rente de l'&eacute;criture des pages web, car vous ne g&eacute;n&eacute;rerez pas de fichiers HTML, mais vous aurez &agrave; g&eacute;rer des fen&ecirc;tres et des objets. Pour plus de d&eacute;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&eacute;crit l'installation de PHP avec un serveur web sous Unix et Windows, sous forme de module ou d'ex&eacute;cutables CGI. </para> <simpara> Les codes source et les ex&eacute;cutables compil&eacute;s de certains OS (y compris Windows), sont disponibles &agrave; <ulink url="&url.php;">&url.php;</ulink>. Nous recommandons l'utilisation du <ulink url="&url.mirrors;">miroir</ulink> le plus proche pour acc&eacute;l&eacute;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 &eacute;tudier les sections sp&eacute;cifiques &agrave; votre plate-forme ou &agrave; votre serveur web avant de passer &agrave; l'installation. </para> <para> Pr&eacute;-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&eacute;cessaires aux extensions (librairie <acronym>GD</acronym>, <acronym>PDF</acronym>, etc...) </simpara> </listitem> </itemizedlist> </para> <para> Il y a plusieurs fa&ccedil;ons d'installer PHP sur une plate-forme UNIX : soit un processus de compilation-configuration, ou bien avec des packages d&eacute;j&agrave; tout pr&ecirc;ts. Cette documentation se concentre sur la premi&egrave;re solution. </para> <para> La premi&egrave;re partie du processus est faite en ligne de commande, gr&acirc;ce aux options du script <filename>configure</filename>. Cette section pr&eacute;sente l'utilisation des options les plus courantes, mais il y en a beaucoup d'autres &agrave; essayer. Reportez-vous &agrave; la <link linkend="install.configure">liste compl&egrave;te des options de configuration </link> pour une liste exhaustive. Voici les diff&eacute;rentes m&eacute;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&eacute;cutable CGI</link> </simpara> </listitem> </itemizedlist> </para> <sect2 id="install.unix.apache-module"> <title>R&eacute;f&eacute;rence Module Apache</title> <para> PHP peut &ecirc;tre compil&eacute; de nombreuses mani&egrave;res diff&eacute;rentes, mais la plus populaire est le module Apache. La liste suivante est un r&eacute;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&eacute;dure habituelle pour red&eacute;marrer le serveur Apache. (vous devez arr&ecirc;ter puis red&eacute;marrer le serveur, et pas seulement forcer le serveur &agrave; relire la configuration initiale). </programlisting> </example> </sect2> <sect2 id="install.building"> <title>Compilation</title> <simpara> Lorsque PHP est configur&eacute;, vous &ecirc;tes pr&ecirc;ts &agrave; compiler l'ex&eacute;cutable CGI. La commande <command>make</command> doit prendre tout en charge. Si ce n'est pas le cas et que vous restez bloqu&eacute;, reportez-vous aux <link linkend="install.problems">probl&egrave;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&egrave;me d'installation par package, comme le fameux RPM. Ils vous permettent de faire des installations standard, mais si vous avez des configurations sp&eacute;cifiques (comme par exemple un serveur s&eacute;curis&eacute;, ou un pilote de base de donn&eacute;es exotique), vous aurez probablement &agrave; compiler vous-m&ecirc;me votre PHP et votre serveur web. Si vous n'&ecirc;tes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra r&eacute;pondre &agrave; 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&eacute;s &agrave; 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&eacute;l&eacute;chargez la distribution compil&eacute;e &agrave;http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z,puis d&eacute;compressez la, et utilisez swinstall pour installer.2. Vous aurez besoin de gcc. T&eacute;l&eacute;chargez une distribution compil&eacute;e &agrave;http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz,puis d&eacute;compressez la, et utilisez swinstall pour installer.3. Vous aurez besoin de GNU binutils.T&eacute;l&eacute;chargez une distribution compil&eacute;e &agrave;http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz, puis d&eacute;compressez la, et utilisez swinstall pour installer.4. Vous aurez besoin de bison. T&eacute;l&eacute;chargez une distribution compil&eacute;e &agrave;http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, puis d&eacute;compressez la, et utilisez swinstall pour installer.5. Vous aurez besoin de flex. T&eacute;l&eacute;chargez une distribution source sur l'undes miroirs http://www.gnu.org. Il se trouve dans le dossier non-gnu du site FTP.T&eacute;l&eacute;chargez le fichier, d&eacute;compressez leur,puis utilisez tar -xvf avec. Allez dans le nouveau dossier flex ainsi cr&eacute;&eacute;,et ex&eacute;cutez la commande "./configure", puis faites un "make", puis un "make install".Si vous avez des erreurs &agrave; cette &eacute;tape, c'est probablement par ce que gcc etles autres ne sont pas inscrites dans votre PATH. Ajoutez les.Maintenant, la partie d&eacute;licate.6. T&eacute;l&eacute;chargez les sources d'Apache et de PHP.7. D&eacute;compressez les avec gunzip puis faites "tar -xvf" avec les deux archives.Nous devons modifier quelques fichiers avant de les compiler.8. Premi&egrave;rement, le fichier de configuration doit &ecirc;tre modifi&eacute; car ilsemble oublier qu'il est sur une machine HP-UX. Il y a des m&eacute;thodes plusrus&eacute;es, mais le plus simple et le plus efficace est d'ajouter "lt_target=hpux10.20" &agrave; la ligne 47286 du script de configuration.9. Le fichier d'Apache GuessOS doit &ecirc;tre modifi&eacute;. Sousapache_1.3.9/src/helpers, modifier la ligne 89, en rempla&ccedil;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&eacute;s correctement, mais Apache ne d&eacute;marre pas. Vous devez cr&eacute;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'&eacute;x&eacute;cuter Apache avec l'utilisateur nobody sousHP-UX. A partir de ce moment l&agrave;, PHP et Apache doivent fonctionner.J'esp&egrave;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&eacute;cessaires</title> <para> L'installation Solaris oublie g&eacute;n&eacute;ralement les compilateurs C, et leurs utilitaires. Voici la liste des outils n&eacute;cessaires : <itemizedlist> <listitem> <simpara> gcc (recommand&eacute;, 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 &ecirc;tre aussi compiler) toutes les librairies n&eacute;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&eacute;cifiques &agrave; 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&eacute;thode recommand&eacute;e d'installation de PHP sous OpenBSD, car elle prend en compte les derni&egrave;res modifications et mises &agrave; jour de s&eacute;curit&eacute;. Pour utiliser cette m&eacute;thode, assurez vous que vous avez bien <ulink url="&url.openbsd.ports;">ports tree</ulink> r&eacute;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&eacute;-compil&eacute;s disponibles en t&eacute;l&eacute;chargement &agrave; <ulink url="&url.openbsd;">OpenBSD</ulink>. Ils s'int&egrave;grent automatiquement avec la version d'Apache install&eacute;e sur votre OS. Cependant, comme il y a un grand nombre d'options (appel&eacute;es <emphasis>flavors</emphasis>) disponibles, vous trouverez peut-&ecirc;tre plus facile de le compiler &agrave; partir de l'arbre de ports. Lisez le manuel <ulink url="&url.openbsd.packages;">packages(7)</ulink> pour plus de d&eacute;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&eacute;-packag&eacute;e et pr&eacute;-compil&eacute;es de PHP pour Mac OS X. Ils permettent de r&eacute;aliser rapidement des installations standard, mais si vous avez des configurations personnelles, (comme un serveur s&eacute;curis&eacute; SSL ou un pilote de base de donn&eacute;es exotique), vous devrez compiler PHP et/ou votre serveur web vous-m&ecirc;me. Si vous n'&ecirc;tes pas familier avec la compilation de vos propres logiciels, il vaut mieux rechercher le package qui pourra r&eacute;pondre &agrave; vos besoins. </simpara> </sect2> <sect2 id="install.macosx.compile"> <title>Compilation pour serveur OS X</title> <simpara> Il existe deux versions l&eacute;g&egrave;rement diff&eacute;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&eacute;l&eacute;chargez la derni&egrave;re version de Apache et PHP2. D&eacute;compressez puis d&eacute;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 &ecirc;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 &agrave; 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&eacute;cutez un "make"7. Ex&eacute;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&egrave;te. Si c'est le cas, allez dans le dossier src/modules/php4 de votre dossier Apache et ex&eacute;cutez la commande suivante : ranlib libmodphp4.a Puis, revenez &agrave; la racine de la distribution Apache, et recommencez la configuration. Cela aura mis &agrave; jour la table de liens.9. Ex&eacute;cutez un "make"10. Ex&eacute;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 &agrave; <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&eacute;es MySQL et PostgreSQL. </simpara> <simpara> NOTE: Soyez prudent avec cette manipulation, vous risquez de mettre votre serveur Apache &agrave; 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&eacute;l&eacute;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&eacute;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>&lt;?php phpinfo() ?&gt;</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&egrave;te des options de configuration</title> <para> Cette section rassemble la liste compl&egrave;te des options de configuration support&eacute;es par PHP 3 et PHP 4, &agrave; 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&eacute;. Il y a de nombreuses options dont le nom a chang&eacute; 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&eacute;. </para> <itemizedlist> <listitem> <para> <link linkend="install.configure.databases">Base de donn&eacute;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&eacute;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&eacute;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&eacute;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&eacute; </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&ocirc;t <link linkend="install.configure.with-dbase">--with-dbase</link> instead. </para> <para> PHP 4: Active la librairie dbase livr&eacute;e avec PHP. Aucune librairie suppl&eacute;mentaire n'est n&eacute;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&eacute;e avec PHP. Aucune librairie suppl&eacute;mentaire n'est n&eacute;cessaire. </para> <para> PHP 4: Option non disponible; utilisez plut&ocirc;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&eacute;faut, c'est le dossier de la derni&egrave;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&eacute;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&ocirc;t <link linkend="install.configure.with-filepro">--with-filepro</link> instead. </para> <para> PHP 4: Active la librairie filePro (lecture seule) livr&eacute;e avec PHP. Aucune librairie suppl&eacute;mentaire n'est n&eacute;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'&agrave; l'installation de FrontBase base. Par d&eacute;faut, c'est le dossier standard d'installation Frontbase. L'installation d&eacute;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&eacute;mentaire n'est n&eacute;cessaire. </para> <para> PHP 4: Option non disponible; utilisez plut&ocirc;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&eacute;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&eacute;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&eacute;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&eacute;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&eacute;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&eacute;faut; <filename class="directory">/usr/local/ldap</filename>). </para> <simpara> Plus de d&eacute;tails sur LDAP sont disponibles &agrave; <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&eacute;faut <filename>/usr</filename> et <filename>/usr/local/Hughes</filename>, pour la version 2.0). <command>configure</command> d&eacute;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&eacute;der qu'&agrave; 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&eacute;faut, il cherche dans diff&eacute;rents dossiers o&ugrave; MySQL a coutume d'&ecirc;tre install&eacute;). </para> <para> PHP 4: Inclut le support MySQL. DIR est le dossier de l'installation MySQL. S'il est omis, la librairie MySQL livr&eacute;e en standard avec PHP sera utilis&eacute;e par d&eacute;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&eacute;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&eacute;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&eacute;faut, <filename>ORACLE_HOME</filename>). </para> <simpara> Inclut le support Oracle. Ce support a &eacute;t&eacute; test&eacute; et permet de travailler avec les versions d'Oracle de 7.0 &agrave; 7.3. Le param&egrave;tre est le dossier <envar>ORACLE_HOME</envar>. Vous n'avez pas &agrave; sp&eacute;cifier ce param&egrave;tre si votre environnement Oracle a &eacute;t&eacute; configur&eacute;. </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&eacute;faut, <filename>/usr/local/pgsql</filename>). </para> <para> PHP 4: Inclut le support PostgreSQL. DIR est le dossier d'installation de PostgreSQL (par d&eacute;faut, <filename>/usr/local/pgsql</filename>). Pour compiler en "dl", utilisez la valeur "shared", ou "shared,DIR", pour compiler en "dl", mais sp&eacute;cifier DIR malgr&eacute; 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&eacute;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&eacute;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&eacute;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&eacute;faut <literal>/usr/local/openlink</literal>). A partir de PHP 4.0.6, cette option n'est plus valable. Utilisez plut&ocirc;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&eacute;faut, <filename>/usr/local</filename>). </para> <para> Cette fonctionnalit&eacute; a d'abord &eacute;t&eacute; d&eacute;velopp&eacute;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&egrave;tre DIR est le nom du dossier d'installation de cette librairie. Par d&eacute;faut, il vaut <filename class="directory">/usr/local</filename>. </para> <simpara> Cette option implique qus vous avez d&eacute;fini CUSTOM_ODBC_LIBS lorsque vous &eacute;x&eacute;cutez le script de configuration. Vous devez aussi avoir une en-t&ecirc;te <filename>odbc.h</filename> valide dans vos dossiers d'Inclution. Si vous n'en avez pas, cr&eacute;ez le, et ajoutez-y vos en-t&ecirc;tes sp&eacute;cifiques. Votre en-t&ecirc;te peut aussi r&eacute;clamer d'autres d&eacute;finitions, surtout si elle est multi-plate-forme. D&eacute;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&eacute;ciale ODBC a &eacute;t&eacute; activ&eacute;e. </para> <para> PHP 4: Option non disponible en PHP 4 </para> <simpara> Le module Unified ODBC est commun &agrave; toutes les bases de donn&eacute;es ODBC, comme par exemple Solid, IBM DB2 et Adabas D. Il fonctionne aussi avec les librairies ODBC normales. Des tests ont &eacute;t&eacute; men&eacute;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&eacute;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&eacute;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&eacute;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&eacute;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&ocirc;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&ocirc;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&eacute;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&eacute;cifier DIR malgr&eacute; 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&ecirc;me (exp&eacute;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&ocirc;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&ocirc;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&eacute;es ult&eacute;rieurement, lorsqu'une cat&eacute;gorie ad&eacute;quate appara&icirc;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&eacute;e par d&eacute;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&ecirc;che le verrouillage (risque d'emp&ecirc;cher certaines compilations parall&eacute;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&ocirc;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&eacute;mentaires pour la recherche de librairie lors de l'ex&eacute;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&eacute;e par d&eacute;faut. Utilisez plut&ocirc;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&eacute;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&eacute;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&eacute;buggage &agrave; 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&eacute;e, le CGI PHP peut &ecirc;tre plac&eacute; hors de l'arborescence web, pour que personne ne puisse l'atteindre, m&ecirc;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&eacute;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&eacute;rification interne des redirections serveurs. Il est recommand&eacute; d'utiliser cette option si vous avez compil&eacute; 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&eacute;moire disponible et que vous utilisez gcc, essayez donc &ccedil;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&egrave;gles de make et de d&eacute;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&eacute;moire (par d&eacute;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&eacute;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&eacute;es (par d&eacute;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 &agrave; 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&eacute;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&eacute;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&eacute;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&eacute;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&eacute;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&eacute;faut, <literal>/usr/local</literal>). </para> <para> PHP 4: Inclut le support ClibPDF.(requires cpdflib &gt;= 2). DIR est le dossier d'installation de cpdfllib (par d&eacute;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&eacute;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&eacute;cutables plac&eacute;s dans le dossier DIR, lorsque le SAFE MODE est activ&eacute; (par d&eacute;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&eacute;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&eacute;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&agrave; o&ugrave; 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 &ecirc;tre compil&eacute;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&eacute; avec 0.6 et 2.0). DIR est le dossier d'installation de pdflib (par d&eacute;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&eacute;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&eacute;guli&egrave;res : syst&egrave;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&eacute;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&eacute;guli&egrave;res livr&eacute;e avec PHP. </para> <para> PHP 4: (Obsol&egrave;te) Utilise la librairie d'expressions r&eacute;guli&egrave;res syst&egrave;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&eacute;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 &gt;= 1.0.9). DIR est le dossier d'installation de zlib (par d&eacute;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 &gt;= 0.10.6). DIR est le dossier d'installation de ZZIPliby (par d&eacute;faut, <literal>/usr/local</literal>). </para> <para> La derni&egrave;re version de ZZIPlib est disponible &agrave; <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&eacute;guli&egrave;res Perl. </para> <para> PHP 4: Inactive le support des expressions r&eacute;guli&egrave;res Perl. Utilisez --with-pcre-regex=DIR pour sp&eacute;cifier le dossier d'installation de PCRE, si vous n'utilisez pas la librairie livr&eacute;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&ocirc;t <link linkend="install.configure.disable-posix">--disable-posix</link>. </para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="install.configure.networking"> <title>R&eacute;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&ocirc;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&ocirc;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'&agrave; la version 4.0.3. Les versions plus r&eacute;centes fournissent un param&egrave;tre dans le fichier <filename>php.ini</filename> appel&eacute; <parameter>allow_url_fopen</parameter>, afin de vous &eacute;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&acirc;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&eacute;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&eacute;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&ocirc;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&ocirc;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&eacute;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&eacute;sactive la forme courte des balises PHP (&lt;? ?&gt;). </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&eacute;faut. </para> <para> PHP 4: Option non disponible en PHP 4; &agrave; partir de PHP 4.0.2, cette option est toujours activ&eacute;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'&agrave; 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'&agrave; la distribution install&eacute;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&eacute;rieur d'Apache (par d&eacute;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&eacute; d'Apache module. FILE est le chemin optionnel jusqu'&agrave; Apache apxs tool; par d&eacute;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&egrave;me de versionnage et de scoping fourni par Solaris 2.x et Linux </para> <para> PHP 4: Exporte uniquement les symboles n&eacute;cessaires. Voyez l'installation pour plus de d&eacute;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 &ecirc;tre utilis&eacute; avec le serveur web Caudium. DIR est le dossier d'installation de Caudium (par d&eacute;faut, <literal>$prefix/caudium/server</literal>. Le pr&eacute;fixe est param&eacute;tr&eacute; par l'option --prefix (par d&eacute;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&eacute;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&eacute;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&eacute;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 &gt;= 2.0). DIR est le dossier d'installation de libxml (par d&eacute;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&eacute;faut. Utilisez plut&ocirc;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&eacute;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&eacute; par d&eacute;faut. Utilisez plut&ocirc;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&egrave;mes Windows 95/98/Me et Windows NT/2000/XP. (La configuration n'est actuellement pas confirm&eacute;e sous XP). Ne vous attendez pas &agrave; ce que PHP fonctionne sur les plateformes 16 bits, comme Windows 3.1. Parfois, on d&eacute;crira les plateformes support&eacute;es sous le nom de Win32. </para> <para> Il y a deux m&eacute;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 &agrave; partir des sources. </para> <para> Une fois que PHP est install&eacute; 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&eacute;l&eacute;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&eacute;thode simple pour installer PHP, il est limit&eacute; 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&egrave;me et assurez-vous qu'il fonctionne. </simpara> <simpara> Ex&eacute;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&eacute;faut les plus pratiques, et avanc&eacute;e, qui pose un maximum de questions pour param&eacute;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&eacute;e, et vous pouvez s&eacute;lectionner les dossiers qui utiliseront PHP. </simpara> <simpara> Une fois l'installation termin&eacute;e, l'installeur vous informera que vous devez red&eacute;marrer. Suivez ce conseil, ou commencez &agrave; utiliser PHP imm&eacute;diatement. </simpara> <warning> <para> Gardez bien &agrave; l'esprit que cette installation de PHP n'est pas s&eacute;curis&eacute;e. Si vous voulez avoir une installation s&eacute;curis&eacute;e de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de r&eacute;aliser l'installation en un tour de main, mais n'est pas destin&eacute;e &agrave; l'utilisation sur des serveurs de production. </para> </warning> </sect2> <sect2 id="install.windows.manual"> <title>Instructions G&eacute;n&eacute;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&egrave;re version de ce guide a &eacute;t&eacute; compil&eacute;e par &link.bob;. La version originale est disponible (en anglais) &agrave; <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&eacute;cente recommand&eacute;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&eacute;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&eacute;clin&eacute; en deux versions : un ex&eacute;cutable CGI (<filename>php.exe</filename>), et plusieurs modules SAPI (par exemple php4isapi.dll). Cette derni&egrave;re forme est nouvelle pour PHP 4 et founit des performances am&eacute;lior&eacute;es ainsi que des fonctionnalit&eacute;s suppl&eacute;mentaires. </para> <para> Notez cependant que les modules SAPI <emphasis>ne sont pas</emphasis> consid&eacute;r&eacute; comme ayant atteint une qualit&eacute; de production. La raison &agrave; cela est que les modules SAPI utilisent le syst&egrave;me de thread s&eacute;curis&eacute; de PHP, ce qui est nouveau en PHP 4, et qui n'a pas &eacute;t&eacute; test&eacute; et tortur&eacute; suffisamment pour &ecirc;tre consid&eacute;r&eacute;s comme stable. </para> <para> Il y a encore quelques bugs qui trainent. D'un autre c&ocirc;t&eacute;, certains d'entre vous ont rapport&eacute; des r&eacute;sultats significativement meilleurs avec les modules SAPI, m&ecirc;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&eacute;, et il vaut mieux laisser les performances SAPI de c&ocirc;t&eacute;; soit vous avez besoin de performances, et alors c'est l'occasion de tester en production et de nous rapporter vos r&eacute;sultats. </para> <para> Si vous choisissez l'un des modules SAPI et utilisez Windows 95, pensez &agrave; t&eacute;l&eacute;charger la mise &agrave; jour DCOM &agrave; <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&eacute;cessaire (test&eacute; avec IIS 4.0, PWS 4.0 et IIS 5.0). IIS 3.0 <emphasis>n'est pas</emphasis> support&eacute;; vous devez t&eacute;l&eacute;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&eacute;rentes &eacute;tapes d'installation avant les &eacute;tapes sp&eacute;cifiques au serveur. <itemizedlist> <listitem> <para> Extrayez la distribution dans le dossier de votre choix. <filename>"C:\php\"</filename> est une bonne id&eacute;e. </para> </listitem> <listitem> <para> Vous devez vous assurer que les DLL que PHP utilise sont disponibles. La liste pr&eacute;cise des DLL d&eacute;pend du serveur web que vous utiliser, et de la m&eacute;thode que vous utiliser pour faire ex&eacute;cuter vos script (CGI ou module). <filename>php4ts.dll</filename> est toujours n&eacute;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&eacute;es. Pour &ecirc;tre certains que les DLL sont accessibles, vous pouvez les copier dans le dossier syst&egrave;me (i.e. <filename>winnt/system32</filename> ou <filename>windows/system</filename>) ou vous pouvez vous assurer qu'elles sont dans le m&ecirc;me dossier que l'ex&eacute;cutable PHP ou les autres DLL de votre serveur web (i.e. php.exe, ou php4apache.dll). </para> <para> L'ex&eacute;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&eacute; dans le PATH Windows. Le mieux &agrave; faire est de copier les fichiers ci-dessous dans votre dossier syst&egrave;me, qui est g&eacute;n&eacute;ralement : <simplelist> <member>c:\windows\system pour Windows 9x/Me</member> <member>c:\winnt\system32 pour Windows NT/2000</member> </simplelist> Les fichiers &agrave; copier sont : <simplelist> <member> &apos;php4ts.dll&apos;, s'il existe, &eacute;crasez le </member> <member> Les fichiers &apos;dlls&apos; de votre distribution. Si vous les avez d&eacute;j&agrave; install&eacute;, ne les remplacez pas, sauf si quelquechose ne fonctionne pas correctement (avant de les &eacute;craser, il est recommand&eacute; de les sauver de toutes mani&egrave;res, au cas o&ugrave; quelque chose irait de travers). </member> </simplelist> </para> <para> T&eacute;l&eacute;chargez la derni&egrave;re version de Microsoft Data Access Components (MDAC) pour votre plateforme, sp&eacute;cialement si vous utilisez Microsoft Windows 9x/NT4. MDAC est disponible &agrave; <ulink url="&url.mdac;">&url.mdac;</ulink>. </para> </listitem> <listitem> <para> Copiez le fichier &apos;<filename>php.ini-dist</filename>&apos; dans votre dossier &apos;%WINDOWS%&apos; sous Windows 95/98, ou vers votre dossier &apos;%SYSTEMROOT%&apos; sous Windows NT ou Windows 2000 et renommez le en &apos;<filename>php.ini</filename>&apos;. Votre dossier &apos;%WINDOWS%&apos; ou &apos;%SYSTEMROOT%&apos; est g&eacute;n&eacute;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&eacute;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&eacute; d'un point de vue s&eacute;curit&eacute; et vitesse d'ex&eacute;cution. Le mieux est tout de m&ecirc;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&eacute;curit&eacute;, c'est par ce moyen que vous pourez le faire, m&ecirc;me si PHP focntionne parfaitement avec les configurations par d&eacute;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&ugrave; vous avez install&eacute; vos 'php_*.dll'. ex: c:\php\extensions </simpara> </listitem> <listitem> <simpara> Si vous utilisez Omni Httpd, sautez l'&eacute;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&eacute;marre. Vous pouvez d&eacute;commenter les lignes 'extension=php_*.dll' pour charger ces modules. Certains modules requi&egrave;rent que des librairies suppl&eacute;mentaires soient install&eacute;es sur votre syst&egrave;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 &ecirc;tre d&eacute;plac&eacute; dans le dossier <filename>DRIVE:\usr\mibs</filename> (<filename>DRIVE</filename> est le p&eacute;riph&eacute;rique o&ugrave; PHP est install&eacute;.) </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&eacute;diatement &agrave; l'esprit : </para> <orderedlist> <listitem><simpara> Windows ne dispose pas (encore) d'une grande communaut&eacute; de d&eacute;veloppeurs qui partagent librement leurs sources. La cons&eacute;quence directe est que les investissements n&eacute;cessaires en infrastructure pour supporter ce type de d&eacute;veloppement n'ont pas &eacute;t&eacute; faits. Ce qui fait que le portage des utilitaires Unix a &eacute;t&eacute; la solution pour pallier ce manque. Ne soyez donc pas surpris de rencontrer cette parent&eacute; de temps en temps. </simpara></listitem> <listitem><simpara> La majorit&eacute; 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&eacute;paration</title> <para> Avant de commencer, il faut t&eacute;l&eacute;charger un maximum de fichiers! </para> <itemizedlist> <listitem> <simpara> Pour commencer, t&eacute;l&eacute;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&eacute;s durant le processus de compilation. </simpara> </listitem> <listitem> <simpara> T&eacute;l&eacute;chargez le reste des utilitaires de compilation dont vous aurez besoin depuis le site PHP &agrave; <ulink url="http://www.php.net/extra/win32build.zip"> http://www.php.net/extra/win32build.zip</ulink>. </simpara> </listitem> <listitem> <simpara> T&eacute;l&eacute;chargez le code source du DNS utilis&eacute; par PHP &agrave; <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&eacute;zippage, vous devez en t&eacute;l&eacute;charger un. Une version libre est disponible &agrave; <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&ecirc;mes!! Les derni&egrave;res versions sont accessibles sur le serveur CVS <ulink url="http://www.php.net/anoncvs.php">anonyme</ulink>. Si vous t&eacute;l&eacute;chargez une version <ulink url="http://snaps.php.net/">interm&eacute;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 &eacute;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&eacute;cutez <filename>setup.exe</filename> et suivez les instructions d'installation. Si vous d&eacute;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&eacute;marrer =&gt; Param&egrave;tres =&gt; Panneau de contr&ocirc;le =&gt; Syst&egrave;me " ("My Computer =&gt; Control Panel =&gt; System ") et s&eacute;lectionnez l'onglet "environnement" ("environment"). </simpara> <warning> <simpara> Cr&eacute;ez un dossier temporaire pour Cygwin, sinon de nombreuses commandes (comme bison) &eacute;choueront. Sous Windows 9x/Me, <userinput>mkdir C:\TMP</userinput>. Sous Windows NT, <userinput>mkdir %SystemDrive%\tmp</userinput>. </simpara> </warning> </listitem> <listitem> <simpara> Cr&eacute;ez un dossier et d&eacute;zippez <filename>win32build.zip</filename> dedans. </simpara> </listitem> <listitem> <simpara> Lancez Microsoft Visual C++, et allez dans le menu "select Tools =&gt; Options". Dans le dialogue, s&eacute;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&eacute;roulants "Executables", "Include", et "Library". (Pour ajouter une entr&eacute;e, s&eacute;lectionnez une ligne blanche, et tapez). Une entr&eacute;e typique ressemble &agrave; 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&eacute;ez un autre dossier et d&eacute;zippez <filename>bindlib_w32.zip</filename> dedans. D&eacute;cidez si vous avez besoin des symboles de d&eacute;buggage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration ad&eacute;quate : </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs de GUI, lancez VC++, puis s&eacute;lectionnez le menu "File =&gt; Open Workspace" et "bindlib". Puis s&eacute;lectionnez "Build=&gt;Set Active Configuration" et s&eacute;lectionnez la configuration voulue. Enfin, s&eacute;lectionnez "Build=&gt;Rebuild All". </simpara> </listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistr&eacute; les variables d'environnement C++, ou que vous avez ex&eacute;cut&eacute; <command>vcvars.bat</command>. Ex&eacute;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&ccedil;ant le fichier du m&ecirc;me nom. </simpara> </listitem> </itemizedlist> </listitem> </itemizedlist> </sect3> <sect3 id="install.windows.build.compile"> <title>Compilation</title> <simpara> La meilleure fa&ccedil;on de compiler est de commander par la version CGI/ex&eacute;cutable. </simpara> <itemizedlist> <listitem> <simpara> Pour les utilisateurs GUI, lancez VC++, puis s&eacute;lectionnez le menu "File =&gt; Open Workspace" et s&eacute;lectionnez "php4ts". Ensuite, s&eacute;lectionnez le menu "Build=&gt;Set Active Configuration", et s&eacute;lectionnez la configuration voulue. Finalement, s&eacute;lectionnez le menu "Build=&gt;Rebuild All". </simpara></listitem> <listitem> <simpara> Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistr&eacute; les variables d'environnement C++, ou que vous avez ex&eacute;cut&eacute; <command>vcvars.bat</command>. Ex&eacute;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&eacute;p&eacute;tez les instructions ci-dessus avec <filename>php4isapi.dsp</filename> (qui est dans <filename>sapi\isapi</filename>) pour compiler le code n&eacute;cessaire pour int&eacute;grer PHP avec Microsoft IIS. </simpara> </sect3> </sect2> <sect2 id="install.windows.extensions"> <title>Installation des extensions sous Windows</title> <para> Apr&egrave;s avoir install&eacute; PHP et votre serveur web sous Windows, vous voudrez s&ucirc;rement ajouter quelques extensions bien pratiques. La table suivante liste une partie des extensions disponibles. Comme indiqu&eacute; dans le manuel, vous pouvez choisir quelles extensions vous voulez charger en d&eacute;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&eacute;fix&eacute;s par 'php_' en PHP 4, et 'php3_' en PHP 3. Cela &eacute;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&eacute;es <emphasis>par d&eacute;faut</emphasis>. Vous n'avez rien &agrave; faire pour qu'elles soient inclues. Lisez le fichier <filename>README.txt</filename> ou <filename>install.txt</filename> dans votre distribution pour conna&icirc;tre la liste des modules par d&eacute;faut. </para> </note> <note> <para> Certaines de ces extensions requi&egrave;rent des librairies DLL suppl&eacute;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&eacute;j&agrave; d'install&eacute;es sur votre syst&egrave;me, ne les &eacute;crasez que si PHP ne fonctionne pas correctement (et de toutes mani&egrave;res, faites une sauvegarde de ces DLL, en cas de probl&egrave;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&eacute;es par d&eacute;faut)</entry> <entry>Activ&eacute;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&egrave;te. Utilisez DBA &agrave; 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'&eacute;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&ecirc;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&egrave;s en lecture seule</entry> </row> <row> <entry>php_ftp.dll</entry> <entry><link linkend="ref.ftp">Fonctions FTP</link></entry> <entry>Activ&eacute;e par d&eacute;faut depuis PHP 4.0.3</entry> </row> <row> <entry>php_gd.dll</entry> <entry>Biblioth&egrave;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&eacute;es par d&eacute;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&eacute;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&eacute;tails pour l'installation de PHP sous Apache sous Unix.</title> <simpara> Il y a deux m&eacute;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&ecirc;ter le serveur Apache, et &eacute;diter le fichier <filename>srm.conf</filename> ou <filename>httpd.conf</filename>, pour configurer Apache avec PHP. </simpara> <para> Vous pouvez s&eacute;lectionner des options &agrave; ajouter au fichier <command>configure</command> &agrave; la ligne 8 depuis la <link linkend="install.configure">liste compl&egrave;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 &eacute;tape, vous pouvez aussi copier le binaire httpd et remplacer votre ex&eacute;cutable actuel. Assurez-vous tout de m&ecirc;me que le serveur est bien &eacute;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 &eacute;diter votre fichier php.ini pour modifier certaines options PHP. Si vous pr&eacute;f&eacute;rez placer ce fichier ailleurs, utilisez --with-config-file-path=/path lors de l'&eacute;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&eacute;dure habituelle pour d&eacute;marrer votre serveur Apache.(vous devez l'&eacute;teindre et le red&eacute;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&ccedil;ons d'arr&ecirc;ter et red&eacute;marrer Apache. Voici une liste des commandes typiques, pour diff&eacute;rentes installations. Remplacez <literal>/path/to/</literal> par le chemin d'acc&egrave;s &agrave; vos applications sur votre syst&egrave;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 &agrave; 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&eacute;cutables apachectl et http(s)dctl peuvent &ecirc;tre situ&eacute;s dans diff&eacute;rents dossiers. Si votre syst&egrave;me a <literal>locate</literal> ou <literal>whereis</literal> ou <literal>which</literal>, utilisez-les pour retrouver vos programmes. </para> <para> Diff&eacute;rents exemples de compilation PHP pour Apache suivent : <informalexample> <programlisting>./configure --with-apxs --with-pgsql </programlisting> </informalexample> </para> <para> Cette commande va cr&eacute;er une librairie partag&eacute;e <filename>libphp4.so</filename> qui sera charg&eacute;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&eacute;er une autre librairie partag&eacute;e <filename>libphp4.so</filename>, mais va aussi cr&eacute;er une librairie partag&eacute;e <filename>pgsql.so</filename> qui sera charg&eacute;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&eacute;er une autre librairie partag&eacute;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&egrave;me de compilation d'Apache va cr&eacute;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&eacute;cutable <filename>httpd</filename>, ce qui fait que le r&eacute;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 &agrave; la version pr&eacute;c&eacute;dente, mais au lieu d'inclure le support PostgreSQL directement dans l'ex&eacute;cutable final <filename>httpd</filename>, vous allez obtenir une librairie partag&eacute;e <filename>pgsql.so</filename> que vous pouvez charger dans PHP soit gr&acirc;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&eacute;rents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconv&eacute;nients respectifs. Les objets partag&eacute;s permettent de compiler PHP et Apache de mani&egrave;re s&eacute;par&eacute;e, et vous n'aurez pas &agrave; compiler l'ensemble pour faire &eacute;voluer PHP. La compilation statique permet de charger et d'&eacute;x&eacute;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&eacute;tails sur l'installation de PHP sous Windows avec Apache 1.3.x</title> <simpara> Il y a deux m&eacute;thodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La premi&egrave;re est d'utiliser l'ex&eacute;cutable CGI (php.exe), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arr&ecirc;ter le serveur Apache, &eacute;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&eacute;rences de configurations de PHP sous Apache, le processus reste simple et &agrave; la port&eacute;e du n&eacute;ophyte. Reportez-vous aux documentations Apache pour plus de d&eacute;tails sur ces directives. </simpara> <para> Si vous avez d&eacute;zipp&eacute; le package dans <filename>C:\PHP\</filename> comme indiqu&eacute; dans <link linkend="install.windows.manual">Instructions G&eacute;n&eacute;rales d'installation</link>, vous devez ins&eacute;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&eacute;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&eacute;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 &eacute;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&eacute;faut (<filename>httpd.conf-dist-win</filename>) a une directive <literal>ClearModuleList</literal> incluse par d&eacute;faut. Si cette directive est utilis&eacute;, il est n&eacute;cessaire de mettre une ligne <literal>AddModule mod_php4.c</literal> &agrave; la liste <literal>AddModule</literal>, sinon PHP ne sera pas enregistr&eacute; comme Module Apache. </simpara> </note> <simpara> Pour utiliser les fonctionnalit&eacute;s de mise en &eacute;vidence du code source, cr&eacute;ez simplement un script PHP et ajoutez le code suivant : <literal>&lt;?php show_source("original_php_script.php"); ?&gt;</literal>. Remplacez le fichier <literal>original_php_script.php</literal> par le fichier que vous voulez afficher : c'est la seule mani&egrave;re de le faire, car il n'y a pas de fonctionnalit&eacute;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 &ecirc;tre convertis en slash c'est &agrave; dire "c:/directory/file.ext". </simpara> </note> </sect2> </sect1> <sect1 id="install.commandline"> <title>CGI/ Installation pour ex&eacute;cution en ligne de commande</title> <para> Par d&eacute;faut, PHP est compil&eacute; comme une CGI. Si PHP peut &ecirc;tre incorpor&eacute; au serveur web que vous utilisez en tant que module, de mani&egrave;re g&eacute;n&eacute;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&eacute; &agrave; la <link linkend="security">s&eacute;curit&eacute;</link> si vous souhaitez utiliser cette solution. </para> <sect2 id="install.commandline.testing"> <title>Tests</title> <simpara> Si vous avez compil&eacute; 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&eacute;sultat d'une compilation. Cela vous permet de rep&eacute;rer des probl&egrave;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&eacute; PHP comme programme CGI, vous pouvez &eacute;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&eacute; (par d&eacute;faut), vous ne risquez pas de voir l'&eacute;valuation s'arr&ecirc;ter une fois les 30 secondes r&eacute;glementaires &eacute;coul&eacute;es. En effet, la fonction <function>set_time_limit</function> ne peut pas &ecirc;tre utilis&eacute;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&ocirc;ler le temps d'&eacute;x&eacute;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&eacute;pondre "yes" &agrave; la question "Build as an fhttpd module ?" (cela correspond &agrave; l'option de configuration <link linkend="install.configure.with-fhttpd">--with-fhttpd</link>=<replaceable>DIR</replaceable> et sp&eacute;cifier la racine de la distribution fhttpd. Le r&eacute;pertoire par d&eacute;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&eacute;rieures, plus de contr&ocirc;le et la possibilit&eacute; d'ex&eacute;cution &agrave; distance. </para> </sect1> <sect1 id="install.caudium"> <title>Installation sur serveur Caudium</title> <para> PHP 4 peut &ecirc;tre compil&eacute; comme module Pike pour le serveur web Caudium. Notez que ce mode n'est pas support&eacute; 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&eacute; avant de tenter l'installation PHP 4. Pour que PHP 4 fonctionne correctement, vous devez installer Pike 7.0.268 ou plus r&eacute;cent. Pour cet exemple, nous supposerons que vous avez install&eacute; Caudium dans le dossier /opt/caudium/server/.2. Renommez le dossier en php-x.y.z (o&ugrave; x.y.z est le num&eacute;ro de version).3. ./configure --with-caudium=/opt/caudium/server4. make5. make install6. Red&eacute;marrez Caudium s'il &eacute;tait en fonctionnement7. Connectez-vous &agrave; 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&eacute;marr&eacute; le serveur. Si vous l'avez fait, v&eacute;rifiez le fichier /opt/caudium/logs/debug/default.1 : il contient peut-&ecirc;tre des erreurs li&eacute;es &agrave; <filename>PHP4.so</filename>. De m&ecirc;me, assurez-vous que <filename>caudium/server/lib/[pike-version]/PHP4.so</filename> est pr&eacute;sent.10. Configurez le module "PHP Script Support" si n&eacute;cessaire. </programlisting> </example> <para> Vous pouvez bien s&ucirc;r compiler votre module Caudium avec les diverses extensions disponibles. Voyez la <link linkend="install.configure">liste compl&egrave;te des options de configuration</link> pour une liste exhaustive. </para> <note> <para> Lorsque vous ajoutez le support MySQL &agrave; PHP 4, vous devez-vous assurer que le client MySQL normal est utilis&eacute;. Sinon, il peut y avoir des conflits avec Pike, qui dispose d&eacute;j&agrave; du support MySQL. Vous pouvez le faire en sp&eacute;cifiant le dossier d'installation de MySQL gr&acirc;ce &agrave; 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&eacute;cent</link> et <link linkend="install.iis.iis4">IIS 4 ou plus r&eacute;cent</link>. </para> <sect2 id="install.iis.iis3"> <title>Windows et PWS/IIS 3</title> <simpara> La m&eacute;thode recommand&eacute;e pour configurer ces serveurs est d'utiliser le fichier INF inclus dans la distribution (<filename>php_iis_reg.inf</filename>). Vous pouvez &eacute;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&egrave;rent la manipulation du fichier de registry de Windows. Une erreur peut laisser votre syst&egrave;me dans un &eacute;tat instable. Nous vous recommandons vivement de sauvegarder ce fichier en lieu s&ucirc;r. L'&eacute;quipe de d&eacute;veloppement et les traducteurs de cette documentation ne pourront pas &ecirc;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'&agrave; : <literal>HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap</literal>. </simpara> </listitem> <listitem> <simpara> Dans le menu "edit", s&eacute;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&icirc;ne, et entrez le chemin jusqu'&agrave; <literal>php.exe</literal> dans le champ "value data". ex: <literal>c:\php\php.exe</literal>. </simpara> </listitem> </itemizedlist> </para> <para> Les &eacute;tapes suivantes n'affectent pas la configuration du serveur web, et ne s'appliquent que si vous voulez que vos scripts PHP soient ex&eacute;cut&eacute;s lorsqu'il sont ex&eacute;cut&eacute;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 &eacute;tapes si vous pr&eacute;f&eacute;rez que vos scripts PHP s'ouvrent dans &eacute;diteur de texte, plut&ocirc;t que de les voir s'ex&eacute;cuter lorsque vous double-cliquez dessus. </para> <para> <itemizedlist> <listitem> <simpara> R&eacute;p&eacute;tez ces instructions pour toutes les extensions que vous voulez associer aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Naviguez jusqu'&agrave; : <literal>HKEY_CLASSES_ROOT</literal> </simpara> </listitem> <listitem> <simpara> Dans le menu edit, s&eacute;lectionnez: <literal>New->Key</literal>. </simpara> </listitem> <listitem> <simpara> Donnez le nom de votre extension &agrave; la cl&eacute; : ex: <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> S&eacute;lectionnez le nom de la nouvelle cl&eacute;e dans le panneau de droite, et double cliquez dans "default value", puis entrez <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> R&eacute;p&eacute;tez ces instructions pour toutes les extensions que vous avez associ&eacute;es aux scripts PHP. </simpara> </listitem> <listitem> <simpara> Cr&eacute;ez une autre <literal>New->Key</literal> sous <literal>HKEY_CLASSES_ROOT</literal> et nommez-la <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> S&eacute;lectionnez la nouvelle cl&eacute; <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&eacute;lectionnez <literal>New->Key</literal>, appelez-le <literal>Shell</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>Shell</literal> et s&eacute;lectionnez <literal>New->Key</literal>, appelez-le <literal>open</literal>. </simpara> </listitem> <listitem> <simpara> Faites un clic droit dans <literal>open</literal> et s&eacute;lectionnez <literal>New->Key</literal>, appelez-le <literal>command</literal>. </simpara> </listitem> <listitem> <simpara> S&eacute;lectionnez la nouvelle cl&eacute; <literal>command</literal> et dans le panneau de droite, faites un double clic dans "default value", puis entrez le chemin jusqu'&agrave; <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&eacute;marrez pour prendre en compte la nouvelle registry. </simpara> </listitem> </itemizedlist> </para> <simpara> Les utilisateurs de PWS et IIS 3 sont pr&ecirc;ts &agrave; 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&eacute;cent</title> <simpara> Pour installer PHP sous Windows avec PWS 4 ou plus r&eacute;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 &ecirc;tre &eacute;chapp&eacute;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&eacute;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 &ecirc;tre &eacute;chapp&eacute;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&eacute;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&eacute;cent</title> <simpara> Pour installer PHP sous Windows NT/2000 serveyr avec IIS 4 ou plus r&eacute;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&eacute;e soit dans "Windows NT 4.0 Option Pack" ou dans "Control Panel=&gt;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&eacute;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&eacute;lectionnez l'onglet "App Mappings". </simpara> </listitem> <listitem> <simpara> Cliquez sur "Add", puis dans la bo&icirc;te "Executable", tapez : <literal>c:\php\php.exe</literal> (si vous avez install&eacute; PHP dans le dossier <literal>c:\php\</literal>.) </simpara> </listitem> <listitem> <simpara> Dans la bo&icirc;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&eacute;f&eacute;rer cocher la bo&icirc;te 'check that file exists' - pour un co&ucirc;t faible, IIS (ou PWS) s'assirurera que le script existe, et r&eacute;soudra les probl&egrave;mes d'autentification avant de d&eacute;marrer PHP. Cela signifie que vous obtiendrez des messages d'erreur 404 intelligents, plut&ocirc;t que d'avoir simplement une plainte du serveur comme quoi les CGI n'ont rien retourn&eacute;s. </simpara> <simpara> R&eacute;p&eacute;tez les &eacute;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&eacute;pandues.) </simpara> </listitem> <listitem> <simpara> Configurer la s&eacute;curit&eacute; n&eacute;cessaire (dans "Internet Service Manager"), et si votre serveur NT utilise NTFS, ajoutez les droits ad&eacute;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 &eacute;tape. Avec ISAPI Filters, ajoutez un nouveau filtre ISAPI. Utilisez PHP comme nom de filtre, et ajoutez simplement le chemin jusqu'&agrave; <filename>php4isapi.dll</filename>. </simpara> </listitem> <listitem> <simpara> Sous "Home Directory", cliquez sur le bouton "Configuration". Ajoutez une nouvelle entr&eacute;e dans "Application Mappings". Utilisez le chemin jusqu'&agrave; <filename>php4isapi.dll</filename> comme "Executable", indiquez ".php" comme extension, laissez "Method exclusions" vide, et cochez "Script engine". </simpara> </listitem> <listitem> <simpara> Arr&ecirc;tez totalement IIS (NET STOP iisadmin) </simpara> </listitem> <listitem> <simpara> D&eacute;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&eacute;tails sp&eacute;cifique &agrave; 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&eacute;faut est g&eacute;n&eacute;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&eacute;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 &eacute;tapes suivantes, assurez-vous que /opt/netscape/suitespot/ correspondbien &agrave; 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&egrave;s avoir fait l'installation de base et lu les fichiers readme.txt, vous pouvez avoir besoin de faire des configurations suppl&eacute;mentaires. </para> <para> D'abord, vous devez ajouter des chemins dans la variable LD_LIBRARY_PATH pour que PHP trouve toutes les librairies partag&eacute;es. Le mieux est de le faire dans le script de d&eacute;marrage de votre serveur Netscape. Les utilisateurs Windows peuvent probablement ignorer cette &eacute;tape. Le script de d&eacute;marrage est situ&eacute; dans : <filename class="directory">/path/to/server/https-servername/start</filename> </para> <para> Vous pouvez aussi avoir besoin d'&eacute;diter les fichiers de configuration qui sont situ&eacute;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&eacute;pendre devotre OS, pour Unix c'est quelque chose de proche de/opt/netscape/suitespot/bin/libphp4.so. Il est conseill&eacute; de placer les lignes suivantes apr&egrave;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!" &lt;object name="default"&gt; . . . .#NOTE La ligne suivante doit &ecirc;tre plac&eacute;e apr&egrave;s toutes .#les lignes 'ObjectType' .# et avant les lignes 'AddLog' Service fn="php4_execute" type="magnus-internal/x-httpd-php" . . &lt;/Object&gt; &lt;Object name="x-httpd-php"&gt; ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute &lt;/Object&gt; Configuration d'authentification L'authentification PHP ne peut pas &ecirc;tre utilis&eacute;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 : &lt;Object name="default"&gt; AuthTrans fn=php4_auth_trans . . . . &lt;/Object&gt; Pour configurer l'authentification PHP pour un dossier, ajoutez la ligne suivante : &lt;Object ppath="d:\path\to\authenticated\dir\*"&gt; AuthTrans fn=php4_auth_trans &lt;/Object&gt; </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&egrave;s les types MIME, et tout le reste ressemble &agrave; 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 &ecirc;tre Fastrack), suivez ces instructions : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier o&ugrave; vous avez install&eacute; windows) </simpara> </listitem> <listitem> <para> Fa&icirc;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&eacute;ez un dossier shellcgi et supprimez le aussit&ocirc;t (cette op&eacute;ration cr&eacute;ee 5 lignes importantes dans le fichier obj.conf et permet au serveur de g&eacute;rer les scripts CGI). </simpara> </listitem> <listitem> <simpara> Dans le serveur Netscape Enterprise Administration Server, cr&eacute;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&eacute;cuter PHP. </simpara> </listitem> </itemizedlist> <para> Plus de d&eacute;tails sur la configuration de PHP comme CGI sont disponibles &agrave; <ulink url="&url.netscape.cgi;">&url.netscape.cgi;</ulink> </para> <para> Pour installer PHP avec l'interface NSAPI (pour Netscape Enterprise Server, iPlanet, peut-&ecirc;tre Fastrack), fa&icirc;tes ceci : </para> <itemizedlist> <listitem> <simpara> Copiez le fichier <filename>php4ts.dll</filename> dans votre dossier systemroot (le dossier o&ugrave; vous avez install&eacute; windows) </simpara> </listitem> <listitem> <para> Fa&icirc;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&eacute;eez un nouveau type MIME (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </simpara> </listitem> <listitem> <para> Stoppez votre serveur web et &eacute;ditez le fichier <filename>obj.conf</filename>. A la fin de la section Init, placez ces deux lignes (obligatoirement apr&egrave;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>&lt; Object name="default" &gt;</literal>, placez cette ligne, obligatoirement apr&egrave;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&eacute;ez un nouvel objet appel&eacute; <literal>x-httpd-php</literal>, en ins&eacute;rant ces lignes : <programlisting>+&lt;Object name="x-httpd-php"&gt;+ObjectType fn="force-type" type="magnus-internal/x-httpd-php"+Service fn=php4_execute+&lt;/Object&gt; </programlisting> </para> </listitem> <listitem> <simpara> Red&eacute;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&eacute;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&eacute;cifiques &agrave; OmniHTTPd. </para> <sect2 id="install.omnihttpd.windows"> <title>OmniHTTPd 2.0b1 et plus r&eacute;cent pour Windows</title> <simpara> Vous devez compl&eacute;ter les &eacute;tapes suivantes pour configurer PHP avec OmniHTTPd. Ceci est une installation sous forme de CGI. SAPI est support&eacute; par OmniHTTPd, mais des tests ont montr&eacute;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&eacute;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&eacute;ptez les &eacute;tapes 2 &agrave; 6 pour chaque extension que vous voulez associer &agrave; PHP. </simpara> <note> <para> Certains packages OmniHTTPd sont livr&eacute;s avec le support PHP d&eacute;j&agrave; int&eacute;gr&eacute;. Vous pouvez choisir au moment de la configuration de faire un param&eacute;trage pouss&eacute; et de d&eacute;cocher le support PHP. Nous vous conseillons d'utiliser les derni&egrave;res versions de PHP. Certains serveurs OmniHTTPd sont encore livr&eacute;s avec des versions beta de PHP : il est recommand&eacute; de ne pas les installer, mais d'installer votre propre version. Si le serveur est d&eacute;j&agrave; sur votre machine, vous pouvez utiliser le bouton "Replace" dans les &eacute;tapes 4 et 5 pour en choisir un nouveau et &agrave; 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&eacute;cifiques &agrave; Oreilly Website Pro. </para> <sect2 id="install.oreilly.windows"> <title>Oreilly Website Pro 2.5 et plus r&eacute;cent pour Windows</title> <simpara> Cette liste d&eacute;crit comment installer PHP comme CGI ex&eacute;cutable ou module ISAPI avec Oreilly Website Pro sous Windows. </simpara> <para> <itemizedlist> <listitem> <para> Editez les "Server Properties" et s&eacute;lectionnez l'onglet "Mapping". </para> </listitem> <listitem> <para> Dans la "List" s&eacute;lectionnez "Associations" et entrez le nom de l'extension voulue (".php") et le chemin jusqu'&agrave; l'ex&eacute;cutable (ex. c:\php\php.exe) ou la DLL ISAPI (ex. c:\php\sapi\php4isapi.dll). </para> </listitem> <listitem> <para> S&eacute;lectionnez "Content Types", ajoutez la m&ecirc;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&eacute;cifiques &agrave; Xitami. </para> <sect2 id="install.xitami.windows"> <title>Xitami pour Windows</title> <simpara> Cette liste d&eacute;crit comment installer PHP comme CGI ex&eacute;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&eacute;n&eacute;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&eacute;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 &ecirc;tre compil&eacute; pour fonctionner avec de nombreux autres serveurs web. Reportez-vous &agrave; <link linkend="install.configure.servers">Options particuli&egrave;res aux serveurs web</link> pour une liste compl&egrave;te des options de configuration. Les ex&eacute;cutables PHP CGI sont compatibles avec la majorit&eacute; des serveurs supportant les interfaces CGI. </para> </sect1> <sect1 id="install.problems"> <title>Des probl&egrave;mes?</title> <sect2> <title>Lisez la FAQ</title> <simpara> Certains probl&egrave;mes sont r&eacute;currents : les plus communs sont list&eacute;s dans la FAQ PHP, disponible &agrave; <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&egrave;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&eacute; un bug dans PHP, n'oubliez pas de le signaler. L'&eacute;quipe de d&eacute;veloppement PHP ne le conna&icirc;t peut &ecirc;tre pas, et si vous ne le signaler pas, vos chances de voir le bug corrig&eacute; sont nulles. Vous pouvez rapporter des bugs gr&acirc;ce au syst&egrave;me de suivi, accessible &agrave; <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&egrave;mes</title> <simpara> Si vous &ecirc;tes compl&egrave;tement bloqu&eacute;s, quelqu'un sur la liste de diffusion PHP pourra probablement vous aider. Essayez de consulter les archives, au cas o&ugrave; quelqu'un aurait d&eacute;j&agrave; rencontr&eacute; votre probl&egrave;me. Les archives sont toujours accessibles &agrave; : <ulink url="&url.php;">&url.php;</ulink>. Pour souscrire &agrave; la liste de diffusion, envoyez un mail vide &agrave; <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'&ecirc;tre concis et clair, et pensez &agrave; donner tous les d&eacute;tails sur votre environnement (OS, version de PHP, serveur web, CGI ou module, <link linkend="ini.safe-mode">safe mode</link>...), et n'h&eacute;sitez pas &agrave; 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&ocirc;t&eacute; serveur. + PHP (officiellement, ce sigle est un acronyme r&eacute;cursif pour + "PHP: Hypertext Preprocessor") est un langage de scripts g&eacute;n&eacute;raliste + et Open Source, sp&eacute;cialement con&ccedil;u pour le d&eacute;veloppement d'applications + web. Il peut &ecirc;tre int&eacute;gr&eacute; facilement au HTML. </simpara> <para> R&eacute;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"> -&lt;html&gt; - &lt;head&gt; - &lt;title&gt;Exemple&lt;/title&gt; - &lt;/head&gt; - &lt;body&gt; - &lt;?php - echo "Bonjour, je suis un script PHP!"; - ?&gt; - &lt;/body&gt; -&lt;/html&gt; +<![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&ecirc;mement simple pour les + n&eacute;ophytes, mais offre des fonctionnalit&eacute;s avanc&eacute;es pour les + experts. Ne craignez pas de lire la longue liste de fonctionnalit&eacute;s + &php;. Vous pouvez vous plonger dans le code, et en quelques + instants, &eacute;crire des scripst simples. + </para> + <para> + Bien que le d&eacute;veloppement de &php; soit orient&eacute; 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&egrave;de les m&ecirc;me fonctionnalit&eacute;s que - les autres langages permettant d'&eacute;crire des scripts CGI, comme - collecter des donn&eacute;es, g&eacute;n&eacute;rer dynamiquement des - pages web ou bien envoyer et recevoir des cookies. - </para> - <para> - La plus grande qualit&eacute; et le plus important avantage du langage PHP est le - support d'un grand nombre de bases de donn&eacute;es. R&eacute;aliser une - page web dynamique interfacant une base de donn&eacute;s est extr&ecirc;mement - simple. Les bases de donn&eacute;es suivantes sont support&eacute;es par PHP: + Tout. &php; est principalement con&ccedil;u pour servir de + langage de script cot&eacute; serveur, ce qui fait qu'il est capable + de r&eacute;aliser tout ce qu'un script CGI quelconque peut faire, comme + collecter des donn&eacute;es de formulaire, g&eacute;n&eacute;rer du contenu dynamique, + ou g&eacute;rer des cookies. Mais &php; peut en faire bien plus. + </para> + <para> + Il y a trois domaines diff&eacute;rents o&ugrave; &php; peut s'illustrer. + <itemizedlist> + <listitem> + <simpara> + Langage de script cot&eacute; 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&eacute;cuter le serveur + web en corr&eacute;lation avec &php;. Vous pouvez acc&eacute;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 + &eacute;crire des scripts &php; et l'ex&eacute;cuter en ligne de commande, + sans l'aide du serveur web et d'un navigateur. Il vous suffit + de disposer de l'ex&eacute;cutable &php;. Cette utilisation est id&eacute;ale + pour les scripts qui sont ex&eacute;cut&eacute;s r&eacute;guli&egrave;rement (avec un cron + sous Unix ou Linux), ou un Task Scheduler (sous Windows). Ces scripts + peuvent aussi &ecirc;tre utilis&eacute; pour r&eacute;aliser des op&eacute;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 &eacute;crire des applications + graphiques, mais si vous connaissez bien &php; et que + vous souhaitez exploiter des fonctionnalit&eacute;s avanc&eacute;es + dans vos applications clientes, vous pouvez utiliser + PHP-GTK pour &eacute;crire de tels programmes. Vous avez aussi la + possibilit&eacute; d'&eacute;crire des applications tr&egrave;s portables + avec ce langage. PHP-GTK est une extension de &php;, qui + n'est pas fournie dans la distribution de base. Si vous &ecirc;tes + interess&eacute; par PHP-GTK, visitez + <ulink url="&url.php.gtk;">son site web</ulink>. + </simpara> + </listitem> + </itemizedlist> + </para> + <para> + &php; est utilisable sur la majorit&eacute; des syst&egrave;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&eacute; des serveurs web, &php; fonctionne comme + module, et pour d'autres, il fonctionne comme ex&eacute;cutable CGI. + </para> + <para> + Avec &php; vous avez le choix de votre syst&egrave;me d'exploitation et + de votre serveur web. De plus, vous avez aussi le choix d'utiliser + la programmation proc&eacute;durale ou objet, ou encore un m&eacute;lange des + deux. Bien que le support de la couche objet ne soit pas tr&egrave;s + standard, de nombreuses librairies et applications d'envergure + (y compris la biblioth&egrave;que PEAR) sont &eacute;crites en langage objet. + </para> + <para> + Avec &php;, vous n'&ecirc;tes pas limit&eacute; &agrave; la production de code + HTML. Les capacit&eacute;s de &php; lui permettent de g&eacute;n&eacute;rer aussi + bien des images, des fichiers PDF, des animations Flash + (avec l'aide des librairies libswf et Ming), g&eacute;n&eacute;r&eacute; &agrave; la + vol&eacute;e. Vous pouvez aussi g&eacute;n&eacute;rer facilement du texte, du code + XML ou XHTML. &php; g&eacute;n&egrave;re tous ces fichiers, et les sauve dans + le syst&egrave;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&eacute;es. ƒcrire une page web exploitant une base de donn&eacute;es est + extr&ecirc;mement simple. Les bases de donn&eacute;es suivantes sont toutes support&eacute;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&eacute;es comme DBX + qui vous permettent de vous connecter de mani&egrave;re transparente &agrave; toute + base de donn&eacute;es support&eacute;e par cette extension. De plus, &php; supporte + ODBC, ce qui vous permet de vous connecter &agrave; toute autre base de donn&eacute;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&eacute;seau, + et int&eacute;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&egrave;re transparente + comme objets int&eacute;gr&eacute;s. Vous pouvez aussi exploiter les objets + distants avec CORBA. + </para> + <para> + &php; dispose de fonctionnalit&eacute;s extr&ecirc;mement utiles pour le + traitement de texte, allant des expressions r&eacute;guli&egrave;res + POSIX &eacute;tendue ou Perl aux traitements des fichiers XML, + avec les standards SAX et DOM. Vous pouvez utiliser les + transformations XSLT. + </para> + <para> + En commerce &eacute;lectronique, vous trouverez des outils de paiement + int&eacute;gr&eacute;s comme Cybercash, CyberMut, VeriSign Payflow + Pro et CCVS, pour r&eacute;aliser des paiements en ligne. + </para> + <para> + Enfin, &php; dispose d'extensions tr&egrave;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&eacute;s de &php;. Lisez la section + sur <link linkend="installation">l'installation de &php;</link> + et &eacute;tudiez la <link linkend="funcref">liste de fonctions</link> + pour avoir plus de d&eacute;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 &eacute;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&egrave;se du PHP</title> - <simpara> - Le langage PHP a &eacute;t&eacute; con&ccedil;u durant l'automne 1994 par - Rasmus Lerdorf. Les premi&egrave;res versions (qui rest&egrave;rent - priv&eacute;es) &eacute;taient utilis&eacute;es afin de savoir qui venait - consulter son CV en ligne. La premi&egrave;re version publique fut - disponible au d&eacute;but de l'ann&eacute;e 1995. Elle fut connue - sous le nom de "Personal Sommaire Page Tools". Elle &eacute;tait - compos&eacute;e d'un analyseur extr&ecirc;mement simple qui ne reconnaissait - que quelques macros sp&eacute;ciales et d'un petit nombre d'utilitaires - couramment utilis&eacute;s dans les pages web. Un livre d'or, un compteur, - etc... L'analyseur fut r&eacute;&eacute;crit durant l'&eacute;t&eacute; 1995 - et fut appel&eacute; PHP/FI Version 2. FI etaient les initiales d'un autre - package que Rasmus avait &eacute;crit qui interpr&eacute;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&icirc;t PHP/FI. PHP/FI grandit de - mani&egrave;re spectaculaire et de nombreuses personnes - commenc&egrave;rent &agrave; contribuer &agrave; son am&eacute;lioration. - </simpara> - <simpara> - Il est relativement peu ais&eacute; de donner des statistiques, mais on - estime que PHP/FI est utilis&eacute; sur 15 000 sites web dans le monde - entier, fin 1996. Ce chiffre atteint 50 000 durant l'&eacute;t&eacute; - 1997. L'&eacute;t&eacute; 1997 voit aussi un profond changement dans le - d&eacute;veloppement du PHP: d'un projet personnel (celui de Ramsus), - on passe alors &agrave; une projet d'&eacute;quipe. L'analyseur fut de - nouveau r&eacute;&eacute;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&egrave;tement r&eacute;&eacute;crit alors que l'autre partie - fut port&eacute;e pour donner le PHP Version 3. La derni&egrave;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&egrave;re native sur tous les serveurs web les plus r&eacute;pandus. - </simpara> - <simpara> - Aujourd'hui (Janvier 2001) PHP 3 ou PHP 4 sont distribu&eacute;s - avec de nombreux produits commerciaux comme "C2's StrongHold web server" et - "RedHat Linux" et il est admis (d'apr&egrave;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&eacute; sur 5 100 000 sites web dans le monde entier. Pour - comparaison, ce chiffre est l&eacute;g&egrave;rement sup&eacute;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, &agrave; l'heure o&ugrave; ce document est r&eacute;dig&eacute;, - la nouvelle g&eacute;n&eacute;ration du PHP est en cours de cr&eacute;ation. - Elle utilisera les qualit&eacute;s de <ulink url="&url.zend;">Zend</ulink> - pour am&eacute;liorer les performances et am&eacute;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&eacute;curit&eacute;</title> <simpara> @@ -137,7 +137,7 @@ </simpara> <simpara> Le "path information" dans l'url, situ&eacute; juste apr&egrave;s le nom - du binaire PHP, <filename role="uri">/secret/doc.html</filename> est + de l'ex&eacute;cutable PHP, <filename role="uri">/secret/doc.html</filename> est utilis&eacute; par convention pour sp&eacute;cifier le nom du fichier qui doit &ecirc;tre ouvert et interpr&eacute;t&eacute; par le programe <acronym>CGI</acronym>. Habituellement, des directives de configuration @@ -395,14 +395,16 @@ <example> <title>Une erreur de v&eacute;rification de variable conduit &agrave; ...</title> <programlisting role="php"> -&lt;?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 &eacute;t&eacute; effac&eacute;!"; -?&gt; +?> +]]> </programlisting> </example> Etant donn&eacute; que le nom de l'utilisateur est &agrave; fournir, des intrus peuvent @@ -415,7 +417,8 @@ <example> <title>Une attaque du syst&egrave;me de fichiers!</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php // efface un fichier n'importe o&ugrave; sur le disque dur, // o&ugrave; l'utilisateur PHP a acc&egrave;s. Si PHP a un acc&egrave;s root : $username = "../etc/"; @@ -423,7 +426,8 @@ $file_to_delete = "passwd"; unlink ("/home/../etc/passwd"); echo "/home/../etc/passwd a &eacute;t&eacute; effac&eacute;!"; -?&gt; +?> +]]> </programlisting> </example> Il y a deux mesures primordiales &agrave; prendre pour &eacute;viter @@ -445,7 +449,8 @@ <example> <title>Une v&eacute;rification renforc&eacute;e</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php // Efface un fichier sur le disque o&ugrave; l'utilisateur &agrave; le droit d'aller $username = $HTTP_SERVER_VARS['REMOTE_USER']; // utilise un m&eacute;canisme d'authentification @@ -458,7 +463,8 @@ fputs ($fp, $logstring); fclose($fp); echo "$file_to_delete a &eacute;t&eacute; &eacute;ffac&eacute;!"; -?&gt; +?> +]]> </programlisting> </example> Cependant, m&ecirc;me cette technique n'est pas sans faille. @@ -469,14 +475,16 @@ <example> <title>V&eacute;rification de noms de fichier s&eacute;curis&eacute;e</title> <programlisting role="php"> -&lt;?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... -?&gt; +?> +]]> </programlisting> </example> </para> @@ -489,8 +497,440 @@ politique qui interdit TOUT sauf ce que vous autorisez. </para> </sect1> + <sect1 id="security.database"> + <title>S&eacute;curit&eacute; des bases de donn&eacute;es</title> + <simpara> + De nos jours, les bases de donn&eacute;es sont des composants incontournables + des serveurs web et des applications en ligne, qui fournissent du contenu + dynamique. Des donn&eacute;es secr&egrave;tes ou critiques peuvent &ecirc;tre stock&eacute;es dans les + bases de donn&eacute;es : il est donc important de les prot&eacute;ger efficacement. + </simpara> + <simpara> + Pour lire ou stocker des informations, vous devez vous connecter au serveur + de base de donn&eacute;es, envoyer une requ&ecirc;te valide, lire le r&eacute;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&ecirc;te SQL</link>. + </simpara> + <simpara> + Comme vous pouvez le r&eacute;aliser, &php; ne peut pas prot&eacute;ger vos bases de donn&eacute;es + pour vous. La section suivante vous introduira aux notions de base pour prot&eacute;ger + vos bases de donn&eacute;es, lors de la programmation de vos scripts. + </simpara> + <simpara> + Gardez bien cette r&egrave;gle simple en t&ecirc;te : la d&eacute;fense se fait par couches. + Plus vous ajouterez de tests pour prot&eacute;ger votre base, plus faible sera la + probabilit&eacute; de r&eacute;ussite d'un pirate. Ajoutez &agrave; cela une bon sch&eacute;ma de base + de donn&eacute;es, et vous aurez une application r&eacute;ussie. + </simpara> + + <sect2 id="security.database.design"> + <title>Sch&eacute;ma de base de donn&eacute;es</title> + <simpara> + La premi&egrave;re &eacute;tape est de cr&eacute;er une base de donn&eacute;es, &agrave; moins que vous ne + souhaitiez utiliser une base de donn&eacute;es d&eacute;j&agrave; cr&eacute;&eacute;e. Lorsque la base + de donn&eacute;es est cr&eacute;&eacute;e, un utilisateur propri&eacute;taire en est responsable. + G&eacute;n&eacute;ralement, seul le propri&eacute;taire (et le super utilisateur) peuvent + intervenir avec les tables de cette base, et il faut que ce dernier + donne des droits &agrave; tous les intervenants qui auront &agrave; faire dans cette + base. + </simpara> + <simpara> + Les applications ne doivent jamais se connecter au serveur de + base de donn&eacute;es sous le nom du propri&eacute;taire ou de l'administrateur, + car ces utilisateurs ont des droits tr&egrave;s importants, et pourront + ex&eacute;cuter n'importe quelle requ&ecirc;te, comme par exemple la + modification de tables, l'effacement de lignes ou m&ecirc;me encore, + la destruction de la base. + </simpara> + <simpara> + Vous pouvez cr&eacute;er diff&eacute;rents utilisateurs de base de donn&eacute;es pour + chaque aspect de votre application, avec des droits limit&eacute;s aux + seules actions planifi&eacute;es. Il faut alors &eacute;viter que le m&ecirc;me utilisateur + dispose des droits de plusieurs cas d'utilisation. Cela permet que + si des intrus obtiennent l'acc&egrave;s &agrave; la base avec l'un de ces jeux + de droits, il ne pourra pas affecter toute l'application. + </simpara> + <simpara> + Il est recommand&eacute; de ne pas impl&eacute;menter toute la logique fonctionnelle + dans l'application web (c'est &agrave; dire dans vos scripts), mais d'en + reporter une partie dans la base en utilisant les triggers, vues et + r&egrave;gles. Si le syst&egrave;me &eacute;volue, les nouvelles versions vous feront r&eacute;&eacute;crire + toute la logique et donc tous vos scripts. De plus, l'utilisation de + trigger permet de g&eacute;rer de mani&egrave;re transparente des donn&eacute;es, et + fournit des indications pour d&eacute;boguer votre application. + </simpara> + </sect2> + + <sect2 id="security.database.connection"> + <title>Connexions au serveur de base de donn&eacute;es</title> + <simpara> + Il est recommand&eacute; d'&eacute;tablit des connexions au serveur avec le + protocole SSL, pour chiffrer les &eacute;changes clients/serveur, afin + d'am&eacute;liorer la s&eacute;curit&eacute;. Vous pouvez aussi utiliser un client + SSH pour chiffrer la connexion entre les clients et le serveur + de base de donn&eacute;es. Si l'une de ces deux protections est + mise en place, il sera difficile de surveiller votre trafic et + de comprendre les informations &eacute;chang&eacute;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&egrave;le de stockage avec chiffrement</title> + <simpara> + Les protocoles SSL/SSH prot&egrave;gent les donn&eacute;es qui circulent entre + le serveur et le client, mais SSL/SSH ne prot&egrave;gent pas les donn&eacute;es + une fois dans la base. SSL est un protocole en ligne. + </simpara> + <simpara> + Une fois que le pirate a obtenu l'acc&egrave;s direct &agrave; votre base de donn&eacute;es + (en contournant le serveur web), les donn&eacute;es sensibles, stock&eacute;es dans votre + base sont accessibles directement, &agrave; moins que les donn&eacute;es de la base + ne soient prot&eacute;g&eacute;es par la base. Chiffrer les donn&eacute;es est une bonne + solution pour r&eacute;duire cette menace, mais tr&egrave;s peut de bases de donn&eacute;es + offrent ce type de chiffrement. + </simpara> + <simpara> + Le moyen le plus simple pour contourner ce probl&egrave;me est de cr&eacute;er votre + propre logiciel de chiffrement, et de l'utiliser dans vos scripts &php;. + &php; peut vous aider dans cette t&acirc;che gr&acirc;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 &eacute;ventail + de m&eacute;thodes de chiffrement. Le script &php; va chiffrer les donn&eacute;es qui seront + stock&eacute;es, et les d&eacute;chiffrer losrqu'elles seront relues. Voyez la suite + pour des exemples d'utilisation de ce chiffrement. + </simpara> + <simpara> + Dans le cas de donn&eacute;es vraiment sensibles, si la repr&eacute;sentation originale + n'est pas n&eacute;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&eacute;es, apr&egrave;s les avoir pass&eacute; 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&eacute; +$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 &eacute;chou&eacute;e pour $username."; +} +]]> + </programlisting> + </example> + </sect2> + + <sect2 id="security.database.sql-injection"> + <title>Injection SQL</title> + <simpara> + De nombreux d&eacute;veloppeurs web ne sont pas conscients des possibilit&eacute;s + de manipulation des requ&ecirc;tes SQL, et supposent que les requ&ecirc;tes SQL + sont des commandes s&ucirc;res. Cela signifie qu'une requ&ecirc;te SQL est + capable de contourner les contr&ocirc;les et v&eacute;rifications, comme par + exemple les identifications et authentifications, et parfois, les requ&ecirc;tes + SQL ont acc&egrave;s aux commandes d'administration. + </simpara> + <simpara> + L'injection SQL directe est une technique o&ugrave; un pirate modifie une requ&ecirc;te + SQL existante pour afficher des donn&eacute;es cach&eacute;es, ou pour &eacute;craser des + valeurs importantes, ou encore ex&eacute;cuter des commandes dangeureuses pour la + base. Cela se fait lorsque l'appliaction prend les donn&eacute;es envoy&eacute;es par + l'internaute, et l'utilise directement pour contruire une requ&ecirc;te SQL. Les + exemples ci-dessous sont bas&eacute;s sur une histoire vraie, malheureusement. + </simpara> + <para> + Avec le manque de v&eacute;rification des donn&eacute;es de l'internaute et la connexion + au serveur avec des droits de super utilisateur, le pirate peut cr&eacute;er des + utilisateurs, et cr&eacute;er un autre super utilisateur. + <example> + <title> + S&eacute;paration des r&eacute;sultats en pages, et cr&eacute;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&eacute;c&eacute;dent', + qui sont alors plac&eacute;s dans la variable <varname>$offset</varname>, + encod&eacute; dans l'URL. Le script s'attend &agrave; ce que la variable + <varname>$offset</varname> est alors un nombre d&eacute;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&eacute;er un nouveau super utilisateur. + Notez que la valeur <literal>0;</literal> qui sert &agrave; terminer la requ&ecirc;te + originale et la terminer correctement. + </para> + <note> + <para> + C'est une techinque r&eacute;pandue que de forcer l'analyseur SQL d'ignorer le + reste de la requ&ecirc;te, en utilisant les symboles <literal>--</literal> pour + mettre en commentaire. + </para> + </note> + <para> + Un moyen possible pour acc&eacute;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&eacute;e dans la requ&ecirc;te, et + si elle est mal g&eacute;r&eacute;e. Ces variables peuvent avoir &eacute;t&eacute; configur&eacute;es + dans une page pr&eacute;c&eacute;dente pour &ecirc;tre utilis&eacute;e dans les clauses + <literal>WHERE, ORDER BY, LIMIT</literal> et <literal>OFFSET</literal> des + requ&ecirc;tes <literal>SELECT</literal>. Si votre base de donn&eacute;es supporte + les commandes <literal>UNION</literal>, le pirate peut essayer d'ajouter + une requ&ecirc;te enti&egrave;re pour lister les mots de passe dans n'importe quelle + table. Utiliser la technique des mots de passe chiffr&eacute;s est fortement + recommand&eacute;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&ecirc;te, combin&eacute;e avec une autre + requ&ecirc;te <literal>SELECT</literal>, va r&eacute;v&eacute;ler les mots de passe : + <example> + <title>R&eacute;v&eacute;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&ecirc;te (exploitant les <literal>'</literal> et <literal>--</literal>) + est affect&eacute;e &agrave; une variable utilis&eacute;e dans + <varname>$query</varname>, l'injection SQL va arriver. + </para> + <para> + Les commandes <literal>UPDATE</literal> sont aussi sujettes &agrave; des + attaques de votre base de donn&eacute;es. Ces requ&ecirc;tes peuvent aussi introduite + toute une nouvelle requ&ecirc;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&eacute;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&eacute;mentaires. La requ&ecirc;te sera alors devenue : + <example> + <title>Une requ&ecirc;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&eacute;es. + <example> + <title>Attaque d'un serveur de base de donn&eacute;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&ecirc;te <varname>$query</varname> + devient : + <example> + <title>Attaque d'un serveur de base de donn&eacute;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&eacute;cute les requ&ecirc;tes SQL en lot, y compris la commande + d'ajout d'un nouvel utilisateur &agrave; la base de donn&eacute;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&eacute;sormais + d'un compte avec acc&egrave;s au serveur. + </para> + <note> + <para> + Certains des exemples ci-dessus sont sp&eacute;cifiques &agrave; certains serveurs de + bbase de donn&eacute;es. Cela n'emp&ecirc;che pas des attaques similaires d'&ecirc;tre possibles + sur d'autres produites. Votre base de donn&eacute;es sera alors vuln&eacute;rable d'une autre + mani&egrave;re. + </para> + </note> + + <sect3 id="security.database.avoiding"> + <title>Techniques de contournement</title> + <simpara> + Vous pouvez pr&eacute;tendre que le pirate doit d'abord obtenir des informations + sur le sch&eacute;ma de la base de donn&eacute;es, dans la plus part des cas d'injections. + C'est vrai, mais vous ne saurez jamais comment ni quand ces informations + auront filtr&eacute;s, et si cela arrive, votre base de donn&eacute;es sera en grand + danger. Si vous utilisez une base de donn&eacute;es Open Srouce, ou une + base qui est du domaine publique, ou encore un sch&eacute;ma qui appartient + &agrave; un syst&egrave;me de gestion de contenu ou d'un forum, le pirate peut facilement + se procurer une copie du code que vous utilisez. Cela peut &ecirc;tre un + risque potentiel si la base a &eacute;t&eacute; mal con&ccedil;ue. + </simpara> + <simpara> + Ces attaques sont g&eacute;n&eacute;ralement bas&eacute;es sur l'exploitation de code qui + n'est pas &eacute;crit de mani&egrave;re s&eacute;curitaire. N'ayez aucune confiance dans + les donn&eacute;es qui proviennent de l'utilisateur, m&ecirc;me si cela provient d'un + menu d&eacute;roulant, d'un champs cach&eacute; ou d'un cookie. Le premier exemple montre + comment une requ&ecirc;te peut causer un d&eacute;sastre. + </simpara> + <itemizedlist> + <listitem> + <simpara> + Ne nous connectez jamais sur une ase de donn&eacute;es en tant que super utilisateur + ou propri&eacute;taire de la base. Utilisez toujours un utilisateur adapt&eacute;, avec + des droits tr&egrave;s limit&eacute;s. + </simpara> + </listitem> + <listitem> + <simpara> + V&eacute;rifiez que les donn&eacute;es ont bien le type attendu. &php; dispose + d'un &eacute;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&egrave;res</link> + (e.g. <function>is_numeric</function>, <function>ctype_digit</function> + respectivement) aux fonctions avanc&eacute;es de + <link linkend="ref.pcre">Expression r&eacute;guli&egrave;re Perl</link>. + </simpara> + </listitem> + <listitem> + <para> + Si l'application attend une entr&eacute;e num&eacute;rique, v&eacute;rifiez vos donn&eacute;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&eacute;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&icirc;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&eacute;riques qui sont + pass&eacute;es &agrave; la base de donn&eacute;es, et prot&eacute;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&eacute;, les guillemets statiques peuvent + &ecirc;tre facilement contourn&eacute;s. + </simpara> + </listitem> + <listitem> + <simpara> + N'affichez jamais d'information sp&eacute;cifique &agrave; la base, et notamment + des informations concernant le sch&eacute;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&eacute;dures stock&eacute;es et des curseurs pr&eacute;d&eacute;finis qui + font que les utilisateurs n'ont pas un acc&egrave;s direct aux tables ou vues, + mais cette solution a d'autres impacts. + </simpara> + </listitem> + </itemizedlist> + + <simpara> + A cot&eacute; de ces conseils, il est recommand&eacute; d'enregistrer vos requ&ecirc;tes soit dans + vos scripts soit dans la base elle m&ecirc;me, si elle le supporte. Evidemment, + cet enregistrement ne sera pas capable d'emp&ecirc;cher une attaque, mais vous + permettra de retrouver la requ&ecirc;te qui a faut&eacute;. L'historique n'est pas tr&egrave;s utile + par lui m&ecirc;me, mais au niveau des informations qu'il contient. Plus vous + avez de d&eacute;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&eacute;curit&eacute;, il y a deux cons&eacute;quence au rapport d'erreur. D'un cot&eacute;, cela am&eacute;liore la s&eacute;curit&eacute;, @@ -507,10 +947,12 @@ <example> <title>Attacque de site avec une page HTML personnalis&eacute;e</title> <programlisting role="php"> -&lt;form method="post" action="http://www.site.cible.com/?username=badfoo&amp;password=badfoo"&gt; -&lt;input type="hidden" name="username" value="badfoo"&gt; -&lt;input type="hidden" name="password" value="badfoo"&gt; -&lt;/form&gt; +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?username=badfoo&amp;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&eacute;buggage</title> <programlisting role="php"> -&lt;form method="post" action="http://www.site.cible.com/?errors=Y&amp;showerrors=1"&amp;debug=1"&gt; -&lt;input type="hidden" name="errors" value="Y"&gt; -&lt;input type="hidden" name="showerrors" value="1"&gt; -&lt;input type="hidden" name="debug" value="1"&gt; -&lt;/form&gt; +<![CDATA[ +<form method="post" action="http://www.site.cible.com/?errors=Y&amp;showerrors=1"&amp;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&eacute;tecter des variables non prot&eacute;g&eacute;es avec E_ALL</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php if ($username) { // Non initialis&eacute;e, ou v&eacute;rif&eacute;e avant utilisation $good_login = 1; @@ -598,13 +1043,14 @@ // Si le test ci-dessus &eacute;choue, les valeurs n'ont pas &eacute;t&eacute; test&eacute;es fpassthru ("/donn&eacute;es/tr&egrave;s/tr&egrave;s/sensibles/index.html"); } -?&gt; +?> +]]> </programlisting> </example> </para> </sect1> <sect1 id="security.registerglobals"> - <title>Utilisation des variables HTTP</title> + <title>Utilisation des variables super-globales</title> <para> Une fonctionnalit&eacute; de PHP qui peut &ecirc;tre utilis&eacute;e pour am&eacute;liorer la s&eacute;curit&eacute; est de configurer PHP en inactivant l'option @@ -623,7 +1069,8 @@ <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php if ($username) { // attention, cette valeur peut &ecirc;tre parasit&eacute;e via GET/POST/COOKIES $good_login = 1; @@ -632,20 +1079,23 @@ // attention, cette valeur peut &ecirc;tre parasit&eacute;e via GET/POST/COOKIES fpassthru ("/donn&eacute;es/tr&egrave;s/tr&egrave;s/sensibles/index.html"); } -?&gt; +?> +]]> </programlisting> </example> <example> <title>Travailler avec register_globals actif</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php if($HTTP_COOKIE_VARS["username"]){ // ne peut provenir que d'un cookie, corrompu ou pas $good_login = 1; // Impossible &agrave; parasiter fpassthru ("/donn&eacute;es/tr&egrave;s/tr&egrave;s/sensibles/index.html"); } -?&gt; +?> +]]> </programlisting> </example> En utilisant intelligemment ceci, il est m&ecirc;me possible @@ -657,7 +1107,8 @@ <example> <title>D&eacute;tection de corruption de variables</title> <programlisting role="php"> -&lt;?php +<![CDATA[ +<?php if ($HTTP_COOKIE_VARS['username'] &amp;&amp; !$HTTP_POST_VARS['username'] &amp;&amp; !$HTTP_GET_VARS['username'] ) { @@ -669,7 +1120,8 @@ echo "Probl&egrave;me de s&eacute;curit&eacute;, l'administrateur est alert&eacute;."; exit; } -?&gt; +?> +]]> </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"> -&lt;?php +<![CDATA[ +<?php // efface un fichier &agrave; la racine d'un utilisateur... ou peut &ecirc;tre // de quelqu'un d'autre? unlink($evil_var); @@ -699,7 +1152,8 @@ // Ex&eacute;cute une commande triviale... ou ajoute une entr&eacute;e dans /etc/password ? system($evil_var); exec($evil_var); -?&gt; +?> +]]> </programlisting> </example> Il est vivement recommand&eacute; 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&egrave;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&eacute;duire la quantit&eacute; 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 &agrave; PHP</title> @@ -108,6 +108,55 @@ PHP avec <literal>?&gt;</literal>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette mani&egrave;re, et &agrave; votre guise. </para> + + <note> + <title>Une note sur les &eacute;diteurs de texte</title> + <para> + Il existe de nombreux &eacute;diteurs de texte et environnement de + d&eacute;veloppement (IDE) que vous pouvez utiliser pour cr&eacute;er, &eacute;diter + et g&eacute;rer vos applications PHP. Une liste partielle de ces outils + est entretenue &agrave; l'adresse <ulink url="&url.phpeditorlist;">PHP Editor's List</ulink>. + Si vous voulez recommander un &eacute;diteur, rendez donc une visite + &agrave; cette page, et demandez au webmestre d'ajouter votre &eacute;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&egrave;s mauvais choix pour &eacute;diter des scripts PHP. + </para> + + <para> + Si vous voulez utiliser l'un d'entre eux, malgr&eacute; 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&eacute;cuter ces scripts. + </para> + </note> + + <note> + <title>Une note sur le Notepad de Windows</title> + <para> + Si vous &eacute;crivez vos scripts PHP avec Windows Notepad, vous devez + vous assurer que vos fichiers sont sauv&eacute;s avec l'extension .php (Notepad + ajoute automatiquement une extension .txt &agrave; vos fichiers, &agrave; moins que + vous ne preniez l'une des mesures suivantes : + </para> + + <para> + Lorsque vous sauvez un fichier, et que vous &ecirc;tes invit&eacute; &agrave; 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&eacute;ciales ont &eacute;t&eacute; introduites en PHP 4.1.0. Auparavant, + variables sp&eacute;ciales ont &eacute;t&eacute; 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&egrave;tes, ces variables existent toujours. @@ -382,7 +432,8 @@ (qui devaient &ecirc;tre indiqu&eacute;es comme globales pour &ecirc;tre utilis&eacute;es dans une fonction ou une m&eacute;thode) sont obsol&egrave;tes. Les nouveaux <link linkend="language.variables.superglobals">tableaux auto-globaux</link> - ont &eacute;t&eacute; introduit en PHP 4.1.0. Ce sont les variables suivantes : + ont &eacute;t&eacute; 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
« previous php.doc.fr (#157) next »