mirror of
https://github.com/php/doc-es.git
synced 2026-03-25 16:02:13 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337267 c90b9560-bf6c-de11-be94-00142212c4b1
135 lines
4.6 KiB
XML
135 lines
4.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: cb2e7b70b1354e5468e538720d59c37e273bc98e Maintainer: seros Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<!-- this file is renamed reference/hw/apache.xml with changed ID -->
|
|
|
|
<chapter xml:id="hwapi.apache-integration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Integration with Apache</title>
|
|
<para>
|
|
La extensión Hyperwave se emplea mejor cuando PHP se compila como un
|
|
módulo de Apache. En tal caso, el servidor de Hyperwave subyacente se puede
|
|
ocultar a los usuarios casi completamente si Apache utiliza su motor de
|
|
reescritura. Las siguientes instrucciones lo explican.
|
|
</para>
|
|
<para>
|
|
Ya que la integración del soprte de PHP con Hyperwave en Apache tiene como objeto
|
|
el reemplazo la solución nativa de Hyperwave basada en Wavemaster,
|
|
asumiremos que el servidor Apache solamente servirá como una interfaz web
|
|
de Hyperwave en estos ejemplos. Esto no es necesario, aunque simplifica
|
|
la configuración. El concepto es bastante sencillo. Lo primero que se
|
|
necesita es un script de PHP que evalúe la variable <varname>$_ENV['PATH_INFO']</varname>
|
|
y trate su valor como el nombre de un objeto de Hyperwave.
|
|
Llamemos a este script <literal>'Hyperwave'</literal>. El URL
|
|
<literal>http://su.nombre_de_host/Hyperwave/nombre_del_objeto</literal>
|
|
haría que devolviera el objeto de Hyperwave con el nombre
|
|
<literal>'nombre_del_objeto'</literal>. Dependiendo del tipo de objeto,
|
|
el script ha de reaccionar en consecuencia. Si es una colección, probablemente
|
|
devolverá el primer hijo. Si es un documento, devolverá el
|
|
tipo MIME y el contenido. Se puede lograr una pequeña mejora
|
|
si se emplea el motor de reescritura de Apache. Desde el punto de vista del
|
|
usuario sería más sencillo si el URL
|
|
<literal>http://su.nombre_de_host/nombre_del_objeto</literal> devolviera
|
|
el objeto. La regla de reescritura es bastante sencilla:
|
|
|
|
<informalexample>
|
|
<programlisting role="apache-conf">
|
|
<![CDATA[
|
|
RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
|
|
Ahora, cada URL se relaciona con un objeto del servidor Hyperwave. Esto
|
|
ocasiona un sencillo problema a resolver. No hay forma de ejecutar un
|
|
script distinto al del 'Hyperwave', p.ej. de
|
|
búsqueda. Esto se puede solucionar con otra regla de reescritura como la
|
|
siguiente:
|
|
|
|
<informalexample>
|
|
<programlisting role="apache-conf">
|
|
<![CDATA[
|
|
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
|
|
Esto reservará el directorio <filename>/usr/local/apache/htdocs/hw</filename>
|
|
para scripts adicionales y otros ficheros. Asegúrese de que esta regla se
|
|
evalúa antes de la anteriore. Hay un pequeño inconveniente:
|
|
todos los objetos de Hyperwave cuyo nombre comience con <literal>'hw/'</literal>
|
|
serán ocultados. Por tanto, asegúrese de no utilizar tales nombres. Si fueran necesarios
|
|
más directorios, p.ej. para imágenes, añada más reglas o colóquelos
|
|
todos en un directorio. Antes de seguir estas instrucciones, no
|
|
olvide activar el motor de reescritura con
|
|
|
|
<informalexample>
|
|
<programlisting role="apache-conf">
|
|
<![CDATA[
|
|
RewriteEngine on
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
|
|
Serán necesarios scripts:
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
para devolver el objeto en sí
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
para permitir búsquedas
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
para identificarse
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
para establecer el perfil
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
uno por cada función adicional, como mostrar
|
|
los atributos del objeto, para mostrar información sobre los usuarios,
|
|
para mostrar el estado del servidor, etc.
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
Como alternativa al motor de reescritura, también se puede considerar el uso
|
|
de la directiva <literal>ErrorDocument</literal> de Apache, teniendo en cuenta
|
|
que las páginas redirigidas de <literal>ErrorDocument</literal> no pueden recibir
|
|
datos POST.
|
|
</para>
|
|
</chapter>
|
|
|
|
<!-- 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:"~/.phpdoc/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
|
|
-->
|
|
|