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 >= 6) o bé
<filename>obj.conf</filename> (per servidors < 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 >= 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><Object name="default"></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 >= 4.3.3) Podeu afegir alguns valors al &php.ini; com a
paràmetres addicionals. Per exemple, podeu establir el valor
<literal>docroot="/ruta/a/arrel_documents"</literal>
específic al context on <literal>php4_execute</literal> és cridat.
Per valors ini booleans, utilitzeu els valors 0/1, i no
<literal>"On","Off",...</literal>
(no funcionaran), per exemple
<literal>zlib.output_compression=1</literal> i no
<literal>zlib.output_compression="On"</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ó
"MAGNUS EDITOR").
</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>"E"</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 >= 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="magnus-internal/directory"</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 >=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--