Vous êtes ici : Accueil Zope Zone Plone Configurer un serveur Apache pour Zope et Plone sous Debian GNU Linux
Actions sur le document

Configurer un serveur Apache pour Zope et Plone sous Debian GNU Linux

Lorsque l'on souhaite disposer de plusieurs sites Plone sur une même machine, on a coutume d'utiliser Apache, ce dernier nous permettra de rediriger les requêtes HTTP sur les instances qui écoutent chacune sur leur port respectifs. Voici comment nous allons nous y prendre sur Debian GNU Linux.

Le contexte technique de départ

Nous travaillons sur un serveur distant en ssh, sans interface graphique puisque notre serveur est destiné à la production. Si ça ne vous dit rien je vous invite à vous reporter à cette documentation, ainsi qu'a cette Man Page.

Nous disposons d'un Apache2 qui fonctionne (pour vérifier ouvrez un navigateur et tapez y l'adresse http://adresseipduserveur

L'éditeur de texte que nous utilisons ici est emacs .... mais oui vi, vim ou nano sont de très bon choix, du moment que vous êtes à l'aise dessus. Si ce n'est pas le cas, commencez par les essayer et à consulter leur documentation respective, le premier contact est souvent douloureux mais il est indispensable pour travailler dans de bonnes conditions.

Nous avons 2 instances Zope :

  • la première se trouve dans /home/zope/z8080 et écoute sur le pour 8080 et elle accueillera le site http://exemple1.com ; le portail Plone a été créé à la racine de l'instance et se nomme exemple1
  • la seconde se trouve dans /home/zope/z9000 écoute sur le port 9000 et elle accueillera le site http://exemple2.com

ATTENTION : ces informations sont capitales pour colmprendre l'écriture des vhost que nous allons voir juste après


Petit rappel

Le fichier Zope.conf vous permet de déterminer le port d'écoute de votre instance, vous pouvez l'éditer, ce qui donne dans noter exemple pour l'instance 1  :

$ emacs /home/zope/z8080/etc/zope.conf

Les modules Apaches

Nous allons donc commencer par activer les modules dont Apache va avoir besoin.

$ sudo a2enmod_rewrite
$ sudo a2enmod_proxy
$ sudo a2enmod_proxy_http

On va maintenant configurer le mod Proxy :

$ sudo emacs /etc/apache2/mods-avaliable/proxy.conf

et on fait en sorte qu'il ressemble a ça :

<IfModule mod_proxy.c>
        ProxyRequests Off
        ProxyVia On
      <Proxy *>
        Order deny,allow
        Allow from votreurl.com
        Allow from localhost
      </Proxy>
</IfModule>

On sauvegarde le tout avec ctrl+x et ctrl+s pour emacs et on redémarre notre apache pour qu'il assimile la nouvelle configuration :

$ sudo apache2ctl restart

Nous allons maintenant pouvoir créer nos virtualhosts afin que nos noms de domaines pointent bien sur leur bon site respectif; Evidemment rien ne vous empêche d'avoir plusieurs sites par instances et d'indiquer correctement dans le vhost la racine de chaque domaine même au sein de la même instance.


Création des VHOST

Nous allons créer un fichier dans le /etc/apache2/sites-availiable pour chaque site en prenant soin de les nommer intelligemment. Puis les activer et enfin redémarrer notre Apache pour que les configurations soient prises en compte.

Pour le premier site :

$ sudo /etc/apache2/sites-availiable/emacs 001-exemple1.com
Comme il écoute sur le port 8080 et que le site Plone nommé exemple1 se trouve à la racine de l'instance Zope, on l'écrira comme suit :

<VirtualHost *>
  ServerAdmin vous@unmailquifonctionne.com
  ServerName exemple1.com
  ServerAlias www.exemple1.com
  RewriteEngine On
  RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/www.exemple1.com\:80/exemple1/VirtualHostRoot/$1 [L,P]
  CustomLog /var/log/apache2/exemple1.com.log combined
</VirtualHost>

On sauvegarde notre vhost.

Voilà pour notre premier site, il va maintenant falloir l'activer :
$ sudo a2ensite 001-exemple1.com
Vous pouvez vous assurer que le lien symbolique créé avec la commande a2ensite est bien en place
$ cd /etc/apache2/sites-enable && ls
vous y trouverez votre fichier de config 001-exemple1.com

Pour le second site :

$ sudo /etc/apache2/sites-availiable/emacs 002-exemple2.com
Comme il écoute sur le port 9000 et que le site Plone nommé exemple2 se trouve à la racine de l'instance Zope, on l'écrira comme suit :

<VirtualHost *>
  ServerAdmin vous@unmailquifonctionne.com
  ServerName exemple2.com
  ServerAlias www.exemple2.com
  RewriteEngine On
  RewriteRule ^/(.*) http://localhost:9000/VirtualHostBase/http/www.exemple2.com\:80/exemple2/VirtualHostRoot/$1 [L,P]
  CustomLog /var/log/apache2/exemple2.com.log combined
</VirtualHost>

On sauvegarde notre vhost.

Voilà pour notre second site, il va maintenant falloir l'activer :
$ sudo a2ensite 001-exemple2.com
Vous pouvez vous assurer que le lien symbolique créé avec la commande a2ensite est bien en place
$ cd /etc/apache2/sites-enable && ls
vous y trouverez votre fichier de config 002-exemple2.com

Et voilà, il ne vous reste plus qu'à redémarrer votre Apache
$ sudo apache2ctl restart
... Et à vérifier avec votre navigateur web préféré que vos sites http://exemple1.com et http://exemple2.com pointent correctement sur leur sites Plone respectifs.





Toonux is powered By FreeBSD, Zope & Plone and owned by Bluetouff ]-- Pilot Systems ring website

Toonux contents are copyleft under the WTFPL licence

Outils personnels