{{tag>serveur programmation VÉTUSTE}}
----
====== Installer un serveur d'applications Zope sur Ubuntu ======
===== À propos =====
Actuellement, il existe deux « branches » majeures de Zope : la 2.9.x et la 3.x.
L'idée étant qu'à la base, Zope 3 devait être une réécriture de zéro de Zope 2 : nouveaux concepts, abandon de certaines lourdeurs de Zope 2, volonté d'être plus « pythonic », etc.
Le projet Zope 3 a commencé il y a plusieurs années déjà et est arrivé à maturité il y a un peu plus d'un an, mais sans compatibilité avec Zope 2. Or Zope 2 possède beaucoup d'extensions : CMS (Plone, CPS), produits de forum, wiki, etc.
Le développement de Zope 2 se poursuit donc et la technologie de Zope 3 est petit à petit rétro-intégrée dans Zope 2. La version 2.10.0-final est sortie le 3 octobre 2006.
Bref aujourd'hui, AMHA, il faut plus voir Zope 3 comme une sorte de laboratoire d'idées de la communauté Zope. Et Zope 2 la version de référence dans laquelle est intégré petit à petit le code de Zope 3 pour une migration en douceur de toutes les extensions déjà développées pour Zope 2.
__Le 21/12/09__
La version Zope 2.9 n'est plus maintenue, sauf pour les bugs de sécurité ([[http://zope2.zope.org/releases|Versions Zope]]).
===== Préambule =====
La présente procédure permet d'installer le serveur d'application Zope sur les distributions Ubuntu 7.04 (Feisty Fawn) et Ubuntu 7.10 (Gutsy Gibbon). Peut-être fonctionne-t-elle aussi sous Uubntu 6.06 LTS (Dapper Drake) (FIXME merci de faire un retour d'expérience ici).
La procédure fonctionne aussi pour Ubuntu 8.04.
Pour Ubuntu 9.04, voir les points qui commencent par "__Le 21/12/09__ :"
===== Installation =====
Assurez-vous d'avoir pris en compte les dépôts "Universe" dans vos sources de mises à jour. Pour notre grand confort, les [[https://wiki.ubuntu.com/MOTU|MotU]] nous ont préparé un méta-paquet qui permettra d'installer tout le nécessaire à l'aide d'un seul paquet et du jeu des inter-dépendances entre les paquets.
[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **zope** et **python-zodb**.
À la fin de l'installation en mode console, on peut voir un message apparaitre :
Zope2.10: no instances found.
__Le 21/12/09__ : Pour installer la version Zope2.12.1, télécharger le fichier [[http://pypi.python.org/packages/source/Z/Zope2/Zope2-2.12.1.tar.gz|Zope2-2.12.1.tar.gz]] sur http://pypi.python.org.
Procéder à l'installation comme précisé dans le fichier doc/INSTALL.rst, qui explique très bien comment installer cette version et comment créer une instance qui va bien.
J'ai installé la version de zope dans le répertoire /usr/lib/zope2.12.1 avec la méthode virtualenv.
Pour pouvoir connecter Zope2.12.1 à une base MySQL, voir dans le forum [[https://forum.ubuntu-fr.org/viewtopic.php?id=367104|mysqldb sous Ubuntu 9.04]]
===== Création d'une instance Zope =====
Exécuter la commande suivante pour créer une instance de Zope.
La commande vous demandera le nom d'un répertoire pour y stocker l'instance de Zope (constituée des ces données, fichiers de configuration, journaux, etc.). Personnellement, je l'ai placée dans ''/var/local/zope''. Si d'aventure un lecteur propose un endroit plus judicieux...
La commande réclame aussi un couple d'authentification utilisateur/motdepasse.
$ cd /usr/lib/zope2.10/bin
$ sudo python mkzopeinstance.py
Please choose a directory in which you'd like to install
Zope "instance home" files such as database files, configuration
files, etc.
Directory: /var/local/zope/
Please choose a username and password for the initial user.
These will be the credentials you use to initially manage
your new Zope instance.
Username: Dupont
Password: ****************
Verify password: ****************
Notre instance est alors créée comme on peut le constater :
$ cd /var/local/zope/
$ ls -l
total 40
drwxr-xr-x 2 zope zope 4096 2007-02-26 16:38 bin
drwxr-xr-x 2 zope zope 4096 2007-02-26 16:38 etc
drwxr-xr-x 2 zope zope 4096 2007-02-26 16:38 Extensions
drwxr-xr-x 2 zope zope 4096 2007-02-26 16:38 import
-rw-r--r-- 1 root staff 42 2007-02-26 16:38 inituser
drwxr-xr-x 3 zope zope 4096 2007-02-26 16:38 lib
drwxr-xr-x 2 zope zope 4096 2007-02-26 17:01 log
drwxr-xr-x 2 zope zope 4096 2007-02-26 16:38 Products
-rw-r--r-- 1 zope zope 481 2007-02-26 16:38 README.txt
drwxr-xr-x 2 zope zope 4096 2007-02-26 17:01 var
__Le 21/12/09__ : pour la version Zope2.12.1, voir le fichier doc/INSTALL.rst qui explique très bien comment créer une instance.
===== Démarrons notre instance Zope =====
Gutsy et Hardy: Afin que zope utilise python 2.4, il faut le lui spécifier en editant les fichiers ///var/local/zope/bin/runzope// et ///var/local/zope/bin/zopectl// à la ligne 2 comme ceci
PYTHON="/usr/bin/python2.4"
Pour Jaunty (Ubuntu 9.04) et Zope 2.12.1, il n'y a pas de modification à apporter, c'est python 2.6 qui est utilisé
Nous ajoutons un lien de notre instance dans le dossier //instance// de zope pour le script de démarrage
sudo ln -s /var/local/zope/ /var/lib/zope2.10/instance/.
Nous pouvons lancer Zope
sudo /etc/init.d/zope2.10 start
__Le 21/12/09__ : voir le fichier doc/INSTALL.rst qui explique plusieurs méthodes pour lancer l'instance.
===== Zope is alive! =====
Comme on peut le voir dans un navigateur, notre serveur Zope est opérationnel : [[http://localhost:9673/]]
Comme on peut le remarquer dans l'URL ci-dessus, le port par défaut est 9673 (pensez à ajuster vos [[pare-feu]]x et autres routeurs si vous travaillez sur un serveur distant).
__Le 21/12/09__ : Zope2.12.1 est sur le port 8080 par défaut [[http://localhost:8080/]]
===== Administration du serveur =====
À l'aide des identifiants d'authentification indiqués à la création de l'instance, on peut administrer le serveur à partir de l'URL suivante :
[[http://localhost:9673/manage]]
D'autres commandes sont disponibles dans ''/var/local/zope/bin''.
Des journaux sont disponibles dans ''/var/local/zope/log''.
__Le 21/12/09__ : pour Zope2.12.1
À l'aide des identifiants d'authentification indiqués à la création de l'instance, on peut administrer le serveur à partir de l'URL suivante :
[[http://localhost:8080/manage]]
Des journaux sont disponibles dans ''/mon/instance/zope/log''.
===== Apache et Zope 2 =====
__Le 21/12/09__ : je n'ai pas encore fait de test de redirection pour Zope 2.12.1 sous Ubuntu 9.04.
Nous considérons Apache 2.x installé et fonctionnel, ainsi que Zope 2.
* Activer les modules :
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
* [[:tutoriel:comment_editer_un_fichier|Éditer votre fichier]] de configuration Apache, **/etc/apache2/sites-available/default**
* Ajouter les lignes suivantes dans un vhost ou en général :
UseCanonicalName On # permet d'eviter de taper les / finaux
RewriteEngine On
RewriteRule ^/adressederedirection(.*) http://localhost:9673/VirtualHostBase/http/votreurl.com:80/VirtualHostRoot/_vh_adressederedirection/$1 [L,P]
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
Cette règle peut paraître abject, mais tous ces paramètres sont utiles à Zope pour bien nous servir. Voici quelques détails:
* **9673** est le port du serveur Zope.
* **votreurl.com** est l'adresse de votre site sans le http
* **80** est le port du serveur apache
* **_vh_adressederedirection** est propre a Zope et de renvoyer un URL correct, remplacer adressederedirection par le dossier par lequel vous voulez accéder à votre site depuis le web.
**Exemple:**
http://localhost:8080/VirtualHostBase/http/monsite.com:80/VirtualHostRoot/_vh_zope/$1
* http://monsite.com/zope mènera à notre serveur Zope.
* http://monsite.com/zope/manage à l'interface d'administration de Zope (ZMI)
* http://localhost:8080/manage à la ZMI également
Si vous passez par SSL et https vous devez p.ex. le spécifier comme ceci: https/votreurl.com:443
* Continuons la configuration, avec le proxy d'apache
* Editer le fichier ///etc/apache2/mods-available/proxy.conf//
* Tout effacer et remplacer par ceci, toujours en adaptant les valeurs.
ProxyRequests Off
ProxyVia On
Order deny,allow
Allow from votreurl.com
Allow from localhost
* Enfin, recharger la config d'apache
$ /etc/init.d/apache2 force-reload
===== Apprendre Zope =====
Voici un lien vers la [[http://www.zope.org/Documentation/ZopeBook/|documentation de Zope]]
Un tutoriel est disponible dans l'instance nouvellement créée et permet de découvrir quelques fonctionnalités de Zope dans son interface d'administration. Pour le débutant, c'est un excellent point de départ, chaudement recommandé !
{{serveur:zope2_admin_01.png|}}
===== Liens =====
* [[http://www.zope.org|Le site du projet Zope]]
* [[http://zope2.zope.org|Le nouveau site du projet Zope]]
* [[http://www.plope.com/Books/2_7Edition|Zope 2.9 Documentation]] [EN]
* [[https://www.zopera.org/|Le portail Zope francophone]]
* [[http://www.plone.org|Le site de Plone]]
----
//Contributeurs : [[:utilisateurs:tbonacco|Thomas]] ([[https://wiki.ubuntu.com/ZopeOnUbuntu|traduction originale]]), [[:utilisateurs:sunwukong|SunWukong]], [[:utilisateurs:rorist|Rorist]], senacle.//