[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: zope et apache sous woody .



> Je misere depuis samedi pour essayer de connecter zope et apache.
> 
> en gros j'essaye de configurer un hote virtuel de famy.zapto.org vers mon famy.zapto.org:9673 par exemple.

Bonjour, j'ai moi-même connecté Zope et Apache récemment, mais pas avec la même méthode.
Je ne sais pas laquelle des deux tient le plus la route pour une utilisation de "production", mais je te présente la mienne, puisqu'elle a marché quasiment du premier coup, ce qui est un bon point en sa faveur :-)

I- Existant:
Soit ma machine = famy.zapto.org, Zope actuellement installé sur famy.zapto.org:9673.
Pour me connecter à un site Zope, je suis actuellement obligé de taper l'URL suivante : http://famy.zapto.org:9673/MonSite

II- Objectif: 
Je veux pouvoir me connecter à zope en tapant l'URL : http://famy.zapto.org/MonSite de manière plus intuitive

=> Je veuille rediriger les requêtes qui vont vers famy.zapto.org:9673 vers mon serveur Zope.

III- Idée générale de la solution: 
Je vais utiliser un module d'Apache qui permet de réécrire les entêtes HTTP ( du moins la partie avec l'URL) pour faire une redirection sur le serveur EN INTERNE, et donc agir comme un proxy vis-à-vis de Zope.

IV- Pré-requis: 
- sur Apache: Avoir le module rewrite activé, ce qui revient sous woody à décommenter la ligne suivante dans /etc/apache/httpd.conf :
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
il y a aussi cette ligne qui est décommentée dans mon fichier de configuration, un peu plus bas:
adModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so

- sur Zope: le produit Virtual Host Monster ( vhm ) doit être installé, je pense qu'il est avec le paquetage Zope par défaut.

V- Configuration de l'ensemble:
- sur Zope: Il faut créer une instance du Virtual Host Monster à la racine de Zope, donne-lui un id vhm par exemple.

- sur Apache: Il faut se servir du module Rewrite qui va servir à rediriger les requêtes reçues vers Zope !
Voici une configuration type, pour  répondre à ton besoin :

NameVirtualHost famy.zapto.org

<VirtualHost famy.zapto.org>
        DocumentRoot /var/www
        ServerName famy.zapto.org

        #ErrorLog /var/log/fami.log
        #CustomLog /var/log/fami_netaccess_log common

        ReWriteEngine On

        #ReWriteLog /var/log/rewrite.log
        #RewriteLogLevel 2

        ReWriteRule ^/(.*) http://localhost:9673/VirtualHostBase/http/famy.zapto.org:80/VirtualHostRoot/$1 [P]
</VirtualHost>

Les deux premieres instructions en commentaires permettent de récupérer dans des fichiers séparés les logs concernant ce répertoire virtuel.
Les deux autres instruction en commentaires permettent de récupérer des logs spécifiques au Rewrite Engine, utiles pour déboguer, mais à virer après car très verbeuses !!

La règle de réécriture peut se comprendre ainsi : 
^/(.*) : la règle correspond à n'importe quel type de demande, absolument TOUTES les requêtes seront redirigées vers ZOPE dans cette configuration. (Cela peut aller dans un premier temps)
VirtualHostBase/http://localhost:9673/VirtualHostBase : redirection en local vers Zope, et réveil du monstre virtuel :-)
http/famy.zapto.org:80 : Ce sera considéré par Zope comme étant le tag BASE à utiliser pour positionner l'objet REQUEST (très important car cela le "dupe" pour créer notamment des URL en http://famy.zapto.org:80 et non http://localhost:9673 qui ne marcheraient pas vues de l'extérieur !!!)
VirtualHostRoot/$1 : tout ce qui se trouver derriere VirtualHostRoot représente la ressource qui est demandée à Zope, ici $1 fait référence à tout ce qui est entre parenthèses au début de la règle : .* soit une copie exacte de la ressource qui est demandée au départ à Apache.
[P] : indique de se comporter comme un proxy

Voilà, j'espère t'avoir donné quelques éléments qui te permettront d'avancer,

Cordialement,

-- 
Laurent PETIT.

Reply to: