1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 16:02:13 +01:00
Files
archived-doc-es/reference/hwapi/apache.xml
Pedro Antonio Gil Rodríguez eb619e226f Correcciones menores
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337267 c90b9560-bf6c-de11-be94-00142212c4b1
2015-07-30 22:18:55 +00:00

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
-->