cvs: phpdoc-ca /install/windows sun.xml

[email protected] ("Eduard Capell Brufau") Sun, 07 Aug 2005 15:42:28 -0000
Newsgroups php.doc.ca
Message-ID <cvseduardcapell1123429348@cvsserver>
--eduardcapell1123429348
Content-Type: text/plain

eduardcapell		Sun Aug  7 11:42:28 2005 EDT

  Added files:                 
    /phpdoc-ca/install/windows	sun.xml 
  Log:
  
  
--eduardcapell1123429348
Content-Type: text/plain
Content-Disposition: attachment; filename="eduardcapell-20050807114228.txt"


http://cvs.php.net/co.php/phpdoc-ca/install/windows/sun.xml?r=1.1&p=1
Index: phpdoc-ca/install/windows/sun.xml
+++ phpdoc-ca/install/windows/sun.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.2 Maintainer: eduardcapell Status: ready -->
  <sect1 id="install.windows.sun">
   <title>Servidors Sun, iPlanet i Netscape en Microsoft Windows</title>
   <para>
    Aquesta secció contè notes i consells específics per la instal·lació del 
    PHP en Windows, sobre el Servidor Sun Java System Web Server, Sun ONE Web
    Server, iPlanet i Netscape.
   </para>
   <para>
    Des de la versió 4.3.3 de PHP podeu utilitzar seqüències de PHP amb el 
    <link linkend="ref.nsapi">mòdul NSAPI</link> per a  
    <link linkend="install.windows.sun.specialpages">generar llistats de 
    directoris personalitzats i pàgines d'error personalitzades</link>. 
    També hi ha disponible un conjunt de funcions per la compatibilitat
    d'Apache. Per suport en webservers actuals, llegiu la 
    <link linkend="install.windows.sun.notes">nota sobre 
    sub-peticions</link>.
   </para>
   
   <sect2 id="install.windows.sun.cgi">
    <title>Configuració de CGI en servidors Sun, iPlanet i Netscape</title> 
    <para>
     Per instal·lar el PHP gestionat per CGI, feu el següent:
    </para>
    <itemizedlist>
     <listitem>
      <simpara>
       Copieu el fitxer <filename>php4ts.dll</filename> a la carpeta arrel del 
       sistema (el directori on és instal·lat el Windows)
      </simpara>
     </listitem>
     <listitem>
      <para>
       Feu una associació de fitxers, des de la línia de comanda. Teclegeu les
       següents dues línies:
       <programlisting role="shell">
<![CDATA[
assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*
]]>
       </programlisting>
      </para>
     </listitem>
     <listitem>
      <simpara>
       Al Netscape Enterprise Administration Server, creeu un directori babau, 
       anomenat shellcgi, i esborreu-lo immediatament després (aquest pas crea 
       5 línies importants al fitxer obj.conf, i pemeten que el servidor web
       gestioni scripts shellcgi).
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Al Netscape Enterprise Administration Server, creeu un nou tipus mime
       (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:
       php).
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Feu-ho per cada instància del servidor web on vulgueu executar PHP.
      </simpara>
     </listitem>
    </itemizedlist>
    <para>
     Podeu trobar més detalls sobre com configurar el PHP com un executable CGI
     a <ulink url="&url.netscape.cgi;">&url.netscape.cgi;</ulink>
    </para>
   </sect2>
    
   <sect2 id="install.windows.sun.nsapi">
    <title>Configuració de NSAPI als servidors  Sun, iPlanet i Netscape</title> 
    <para>
     Per a instal·lar el PHP amb NSAPI, feu el següent:
    </para>
    <itemizedlist>
     <listitem>
      <simpara>
       Copieu el fitxer <filename>php4ts.dll</filename> a l'arrel del vostre 
       sistema (el directori on és instal·lat el Windows)
      </simpara>
     </listitem>
     <listitem>
      <para>
       Feu una associació de fitxers des de la línia de comanda.
       Escriviu les següents dues línies:
       <programlisting role="shell">
<![CDATA[
assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*
]]>
       </programlisting>
      </para>
     </listitem>
     <listitem>
      <simpara>
       Dins de Netscape Enterprise Administration Server, creeu un nou tipus 
       mime (Category: type, Content-Type: magnus-internal/x-httpd-php, File 
       Suffix: php).
      </simpara>
     </listitem>
     <listitem>
      <para>
        Editeu <filename>magnus.conf</filename> (per servidors &gt;= 6) o bé
        <filename>obj.conf</filename> (per servidors &lt; 6) i afegiu el 
        següent (heu de posar les línies després de 
        <literal>mime types init</literal>):
       <programlisting>
<![CDATA[
Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="No es pot inicialitzar el PHP!" [php_ini="c:/path/to/php.ini"]
]]>
       </programlisting>
       (PHP &gt;= 4.3.3) El paràmetre <literal>php_ini</literal> és opcional, 
       però amb ell podeu posar el fitxer &php.ini; al directori de 
       configuració del vostre servidor web.
      </para>
     </listitem>
     <listitem>
      <para>
       Configureu l'objecte per defecte a <filename>obj.conf</filename>
       (per classes del servidor virtual [Sun Web Server 6.0+] en el fitxer 
       <filename>vserver.obj.conf</filename>):
       A la secció <literal>&lt;Object name="default"&gt;</literal>, poseu 
       aquestes línies necessàriament després de totes les línies 'ObjectType' i
       abans de totes les línies 'AddLog':
       <programlisting>
<![CDATA[
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
]]>
       </programlisting>
       (PHP &gt;= 4.3.3) Podeu afegir alguns valors al &php.ini; com a 
       paràmetres addicionals. Per exemple, podeu establir el valor 
       <literal>docroot=&quot;/ruta/a/arrel_documents&quot;</literal>
       específic al context on <literal>php4_execute</literal> és cridat. 
       Per valors ini booleans, utilitzeu els valors 0/1, i no
       <literal>&quot;On&quot;,&quot;Off&quot;,...</literal>
       (no funcionaran), per exemple
       <literal>zlib.output_compression=1</literal> i no 
       <literal>zlib.output_compression=&quot;On&quot;</literal>
      </para>
     </listitem>
     <listitem>
      <para>
       Això només fa falta si voleu configurar un directori que només contingui 
       seqüències PHP (com si fos un directori cgi-bin):
       <programlisting>
<![CDATA[
<Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
]]>
       </programlisting>
       Després d'això, pdeu configurar un directori al servidor d'Administració
       i assignar-li l'estil <literal>x-httpd-php</literal>. Tots els fitxers
       que contingui s'executaran com a PHP. Això va bé per a ocultar l'ús de
       PHP, renomenant els fitxers a <filename>.html</filename>.
      </para>
     </listitem>
     <listitem>
      <simpara>
       Reinicieu el servei web i apliquem els canvis
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       Feu-ho per cada instància del servidor web on voleu que el PHP s'executi
      </simpara>
     </listitem>
    </itemizedlist>
    <note>
     <para>
      Podeu trobar més detalls sobre la configuració de PHP com un filtre NSAP
      aquí: <ulink url="&url.netscape.nsapi;">&url.netscape.nsapi;</ulink>
     </para>
    </note>
    <note>
     <para>
      El tamany de pila que utilitza el PHP depèn de la configuració del
      servidor web. Si aquest falla amb seqüències PHP molt grans, us recomanem
      que augmenteu el tamany de la pila, amb l'Admin Server (a la secció 
      &quot;MAGNUS EDITOR&quot;).
     </para>
    </note>
   </sect2>
   
   <sect2 id="install.windows.sun.phpini">
    <title>Entorn CGI i modificacions recomanades del php.ini</title>
    <para>
     És important, en escriure seqüències PHP, de saber que els servidors Sun
     JSWS/Sun ONE WS/iPlanet/Netscape són servidors web multifil. Degut a totes
     les peticions que corren sota el mateix espai de processos (el propi espai
     del servidor) i aquest espai només té un sol entorn. Si voleu obtenir
     variables CGI, com ara <literal>PATH_INFO</literal>, 
     <literal>HTTP_HOST</literal>, etc. no és correcte d'intentar-ho a la 
     manera antiga de PHP 3.x amb 
     <function>getenv</function> o d'alguna manera similar (registrar les 
     globals a l'entorn, <literal>$_ENV</literal>). Només obtindríeu l'entorn 
     del servidor web que s'executaria, sense cap variable CGI vàlida!
    </para>
    <note>
     <para>
      Per què trobem variables CGI (invàlides) a l'entorn?
     </para>
     <para>
      Resposta: Això passa perquè heu arrencat el procés del servidor web des 
      de l'admin server, que executa l'script d'arrencada del servidor web, i 
      estàveu intentant d'arrencar, com un script CGI dins de l'admin server!
      Aquest és el motiu pel qual l'entorn del servidor web inicial té algunes 
      variables d'entorn CGI. Podeu comprovar-ho arrencant el servidor web no 
      des del servidor d'administració. Utilitzeu la línia de comanda com a 
      usuari root, i arrenqueu-lo manualment - veureu que no hi ha cap 
      variable d'enton de tipus CGI.
     </para>
    </note>
    <para>
     Senzillament canvieu les vostres seqüències per tal d'obtenir les 
     variables CGI de la manera correcta en PHP 4.x, utilitzant la variable
     superglobal <literal>$_SERVER</literal>. Si teniu seqüències més 
     antigues, que utilitzin <literal>$HTTP_HOST</literal>, etc., hauríeu 
     d'habilitar l'opció <literal>register_globals</literal> al fitxer 
     &php.ini; i canviar l'ordre de les variables (important: elimineu-ne
     <literal>&quot;E&quot;</literal>, ja que no necessiteu l'entorn 
     en aquest cas):
     <programlisting>
<![CDATA[
variables_order = "GPCS"
register_globals = On
]]>
     </programlisting>
    </para>
   </sect2>
   
   <sect2 id="install.windows.sun.specialpages">
    <title>Utilització especial de les pàgines d'error o de llistats de 
    directoris personalitzats (PHP &gt;= 4.3.3)</title>
    <para>
     Podeu utilitzar el PHP per a generar les pàgines d'error per 
     <literal>"404 Not Found"</literal> o similars. Afegiu la següent línia a 
     l'objecte a <filename>obj.conf</filename> per cada error que vulgueu 
     tractar:
     <programlisting>
<![CDATA[
Error fn="php4_execute" code=XXX script="/ruta/a/script.php" [inikey=value inikey=value...]
]]>
     </programlisting>
     on <literal>XXX</literal> és el codi d'error HTTP. Esborreu qualsevol 
     altra directiva <literal>Error</literal> que pugui interferir amb les que 
     indiqueu vosaltres. Si voleu posar una pàgina per a tots els errors que 
     puguin existir, elimineu el paràmetre <literal>code</literal>. El vostre
     script podrà obtenir el codi d'error HTTP amb 
     <literal>$_SERVER['ERROR_TYPE']</literal>.
    </para>
    <para>
     Una altra possibilitat és una generació personalitzada de llistats
     de directori. Creeu un script que mostri un llistat de directori 
     i substituïu la línia per defecte Service per 
     <literal>type=&quot;magnus-internal/directory&quot;</literal>
     a <filename>obj.conf</filename> pel següent:
     <programlisting>
<![CDATA[
Service fn="php4_execute" type="magnus-internal/directory" script="/ruta/a/script.php" [inikey=value inikey=value...]
]]>
     </programlisting>
     Tan per la gestió d'errors com pels llistats de directoris 
     la URI original i la URI traduïda són a les variables 
     <literal>$_SERVER['PATH_INFO']</literal> i
     <literal>$_SERVER['PATH_TRANSLATED']</literal>.
    </para>
   </sect2>
   
   <sect2 id="install.windows.sun.notes">
    <title>Una observació sobre <function>nsapi_virtual</function> 
    i sub-peticions (PHP &gt;=4.3.3)</title>
    <para>
     El mòudl NSAPI ara suporta la funció <function>nsapi_virtual</function> 
     (alias: <function>virtual</function>) per tal de fer sub-peticions al 
     servidor web i inserir el resultat a la pàgina web.
     El problema és que aquesta funció utilitza algunes característiques no
     documentades de la biblioteca NSAPI.
    </para>
    <para>
     En Unix això no és un problema, perquè el mòdul automàticament busca les
     funcions que necessita i les utilitza, si les troba. Si no, la funció 
     <function>nsapi_virtual</function> es deshabilita.
    </para>
    <para>
     En Windows, les limitacions en la gestió de DLL necessiten que s'utilitzi
     la detecció automàtica del fitxer <filename>ns-httpdXX.dll</filename> més
     recent. Això s'ha provat satisfactòriament fins a la versió 6.1. Si
     s'utilitza una versió més recent del servidor Sun, la detecció falla i la
     funció <function>nsapi_virtual</function> està deshabilitada.
    </para>
    <para>
     Si aquest és el cas, afegiu el següent:
     Afegiu el paràmetre següent a <literal>php4_init</literal> en 
     <filename>magnus.conf</filename>/<filename>obj.conf</filename>:
     <programlisting>
<![CDATA[
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
]]>
     </programlisting>
     on <literal>XX</literal> és el número correcte de versió de la DLL.
     Per a saber aquest número, mireu en l'arrel del servidor, per trobar el nom
     de la DLL correcta. La DLL amb el tamany de fitxer més gran és la correcta.
    </para>
    <para>
     Podeu comprovar-ho amb la funció <function>phpinfo</function> funció.
    </para>
    <note>
     <para>
      Però aneu amb compte: el suport de <function>nsapi_virtual</function>
      és EXPERIMENTAL!!!
     </para>
    </note>
   </sect2>   
  </sect1>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

--eduardcapell1123429348--