You are on page 1of 18

Instalacin y conguracin de Zope y productos Zope

Gregorio Robles
Grupo de Sistemas y Comunicaciones - Universidad Rey Juan Carlos grex@gsyc.escet.urjc.es

Jess M. Gonzlez Barahona


Grupo de Sistemas y Comunicaciones - Universidad Rey Juan Carlos jgb@gsyc.escet.urjc.es

Este documento explica paso a paso y de manera detallada cmo instalar Zope a partir de las fuentes, de forma que es vlido para cualquier distribucin GNU/Linux y para cualquier conguracin del sistema. Asimismo, se presenta cmo congurar a nuestra conveniencia Zope, cmo instalar productos Zope (veremos el caso de ZWiki) y cmo hacer uso de funcionalidad tan til como importar y exportar objetos en Zope. El contexto de esta gua se debe enmarcar dentro de los laboratorios docentes del Grupo de Sistemas y Comunicaciones de la Universidad Rey Juan Carlos, aunque por su carcter general casi la totalidad del documento es vlido para realizar la instalacin y conguracin de Zope en otros entornos. El tiempo necesario para leer este documento mientras se realizan las acciones de instalacin y conguracin es de aproximadamente una hora.

1. Introduccin
Zope [ZopeWeb] es un servidor de aplicaciones totalmente orientado a objetos escrito en Python. Es el proyecto estrella de la compaa Zope Corporation, que lo publica bajo los trminos de la licencia Zope Public License [ZPL], una licencia de software libre. Zope ofrece una infraestructura general sobre la que se pueden construir aplicaciones web. De esta manera, muchos conceptos y funcionalidades pueden ser reutilizadas. As, por ejemplo, la herramienta de generacin de portales, Plone, se basa en mdulos de gestin de usuarios, de seguridad o de sesiones ofrecidos por la arquitectura Zope.

Instalacin y conguracin de Zope y productos Zope Zope se encuentra precompilado y empaquetado para multitud de distribuciones GNU/Linux, as como para otros sistemas UNIX y Windows. Aunque esto pueda resultar una facilidad, en este documento se mostrar cmo instalar Zope a partir de las fuentes, debido a los siguientes motivos:

Para instalar los paquetes precompilados generalmente se requiere permisos de superusuario y en el entorno de laboratorio los alumnos carecen lgicamente de ellos La instalacin de Zope a partir de las fuentes puede resultar un ejercicio didctico y docente de gran inters para ir conociendo la arquitectura de Zope y sus elementos. La instalacin a partir de las fuentes -como se podr comprobar a continuacin- no es muy compleja.

En este documento tambin se mostrar cmo instalar productos de Zope. Los productos de Zope son elementos que aportan funcionalidad aadida a la plataforma de Zope. Suelen estar convenientemente empaquetados para ser fcilmente instalados y congurados. El producto Zope que instalaremos ser ZWiki, un sistema wiki para Zope.

2. Descargando Zope
El primer paso para instalar Zope es conseguir una copia de Zope de la pgina donde estn publicadas todas las versiones de Zope [ZopeDownload]. Durante el desarrollo de esta asignatura [TSAI] haremos uso de la versin estable 2.10.0 de Zope. Existe un chero comprimido que facilita la instalacin de las fuentes para sistemas con el ncleo Linux. Nos situaremos en nuestro directorio "home" (o en un subdirectorio creado para esta asignatura) y descargaremos la copia especicada de Zope, tal y como se muestra a continuacin:
grex@beta10:~$ pwd /home/admin/grex grex@beta10:~$ wget http://www.zope.org/Products/Zope/2.10.0/Zope-2.10.0-final.tgz --19:00:12-- http://www.zope.org/Products/Zope/2.10.0/Zope-2.10.0-final.tgz => Zope-2.10.0-final.tgz Resolviendo www.zope.org... 63.240.213.171 Conectando con www.zope.org[63.240.213.171]:80... conectado. Peticin HTTP enviada, esperando respuesta... 200 OK Longitud: 7,122,626 [application/x-compressed-tar] 100%[====================================>] 7,122,626 278.81K/s ETA 00:00

19:00:39 (274.91 KB/s) - Zope-2.10.0-final.tgz guardado [7122626/7122626]

A continuacin, descomprimiremos el chero que nos acabamos de descargar. Al descomprimirlo, observaremos que nos crear un directorio (llamado Zope-2.10.0-nal) y que dentro del mismo se situarn un montn de archivos que corresponden a la lgica de Zope. En el siguiente listado del programa, hemos decidido recortar la salida del terminal por cuestiones de espacio.
grex@beta10:~$ tar xvzf Zope-2.10.0-final.tgz

Instalacin y conguracin de Zope y productos Zope


Zope-2.10.0-final/ Zope-2.10.0-final/Extensions/ Zope-2.10.0-final/Extensions/README.txt Zope-2.10.0-final/LICENSE.txt Zope-2.10.0-final/Makefile Zope-2.10.0-final/README.txt Zope-2.10.0-final/setup.py Zope-2.10.0-final/stupid_clean Zope-2.10.0-final/install Zope-2.10.0-final/z2.py Zope-2.10.0-final/zpasswd.py Zope-2.10.0-final/ZServer/ Zope-2.10.0-final/ZServer/PubCore/ Zope-2.10.0-final/ZServer/PubCore/ZEvent.py Zope-2.10.0-final/ZServer/PubCore/ZRendezvous.py ...

Debido a que las cuentas en el laboratorio docente disponen de un espacio limitado por usuario (las famosas "quotas") y que no vamos a hacer uso del chero comprimido en el futuro, lo mejor es borrarlo para as liberar espacio en disco:
grex@beta10:~$ rm -f Zope-2.10.0-final.tgz

Con esto, al nal de este punto deberamos tener en nuestro "home" un subdirectorio llamado "Zope-2.10.0-nal" donde tendremos las fuentes de Zope. En el siguiente punto, veremos cmo instalarlo y congurarlo convenientemente.

3. Instalando Zope
Dentro del directorio "Zope-2.10.0-nal" existe un script de conguracin que se invoca desde la lnea de instrucciones con "congure". Ejecutarlo produce una salida en la shell que reproducimos aqu y que comentamos a continuacin:
grex@beta10:~$ cd Zope-2.10.0-final/ grex@beta10:~$ ./configure Configuring Zope installation Testing for an acceptable Python interpreter... Python Python Python Python version version version version 2.4.4c0 2.4.4c0 2.4.4c0 2.4.4c0 found found found found at at at at /usr/bin/python /usr/bin/python2.4 /usr/bin/X11/python /usr/bin/X11/python2.4

No suitable Python version found. You should install

Instalacin y conguracin de Zope y productos Zope


Python version 2.4.3 before continuing. Versions 2.4.1 2.4.2 also work, but not as optimally.

Este mensaje nos indica que en el laboratorio contamos con la versin 2.4.4c0 de Python, pero que no es la aceptable porque la versin recomendada es la 2.4.3 (las 2.4.1 y 2.4.2 tambin funcionan, pero no ptimamente). Como esto no tiene mucho sentido, vamos a engaar a Zope. Si lo estis haciendo en una mquina vuestra, considerad instalar esta versin de python, as como el paquete Debian python-dev. Editaremos el archivo congure (con vi o con emacs, por ejemplo) y modicaremos la siguiente lnea para que quede tal y como sigue:
# Place the optimal target version number for Zope (as returned by sys.version) # below TARGET="2.4.4c0"

Una vez hecho esto, podemos ejecutar sin mayores problemas el congure. Vamos a pasarle tambin el parmetro "prex" para que lo instale en nuestro home, ya que por motivos de seguridad no tenemos permisos para hacerlo en otros lugares en el entorno de laboratorio. n la siguiente lnea, la instalacin se har en el subdirectorio zope de nuestro home.
grex@beta10:~$ ./configure --prefix=$HOME/zope Configuring Zope installation Testing for an acceptable Python interpreter... Python version 2.4.4c0 found at /usr/bin/python The optimum Python version (2.4.4c0) was found at /usr/bin/python. - Zope top-level binary directory will be /home/admin/grex/zope. - Makefile written. Next, run make.

Con el paso anterior, hemos conseguido crear un Makele, as que el siguiente paso es ejecutar "make" para compilar Zope. Lo que hace el script de instalacin es compilar los mdulos de Python especcos de Zope (algunos escritos tambin en C para optimizar la velocidad). Veremos, por tanto, en la salida estndar el resultado de mltiples compilaciones con el compilador GCC. Todo esto puede que tarde algunos minutos.
grex@beta10:~$ make (...) changing mode of /home/admin/grex/zope/Zope-2.10.0-final/... changing mode of /home/admin/grex/zope/Zope-2.10.0-final/... changing mode of /home/admin/grex/zope/Zope-2.10.0-final/... changing mode of /home/admin/grex/zope/Zope-2.10.0-final/... Zope built. Next, do make install (or make instance

Instalacin y conguracin de Zope y productos Zope


to run a Zope instance directly from the build directory).

El siguiente paso es instalar Zope. Para ello ejecutaremos "make install".


grex@beta10:~$ make install (...) changing mode of /home/admin/grex/zope/bin/zodbload.py to 755 changing mode of /home/admin/grex/zope/bin/test.py to 755 running install_data [ -f /home/admin/grex/zope/bin/python ] || ln -sfn "/usr/bin/python" /home/admin/... Zope binaries installed successfully. Now run /home/admin/grex/zope/bin/mkzopeinstance.py

Ya queda poco. Ahora toca crear una instancia de Zope. Zope puede tener varias instancias en paralelo respondiendo a peticiones de usuarios; todas correran como el mismo Zope, pero seran webs diferentes (con su propia base de datos, sus propios gestores y probablemente con sus propios dominios). Si ejecutamos la lnea indicada, nos aparecer lo siguiente (ojo, esta lnea ser ligerametne diferente en tu caso):
Please choose a directory in which youd like to install Zope "instance home" files such as database files, configuration files, etc. Directory: /home/admin/grex/zope/instancia 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: admin Password: Verify password:

El script de creacin de la instancia pedir el camino donde queramos tener la isntancia (en mi caso eleg el subdirectorio instancia dentro del directorio zope de mi home). De esta manera, bajo zope tendr la instalacin de zope y en zope/instancia todo lo relativo a la instancia de Zope que utilizar. Asimismo crear un usuario inicial para poder gestionar esa instancia. En mi caso, he elegido "admin" como nombre de usuario. Este usuario es un usuario un tanto especial, porque es el nico que no se crea mediante el interfaz web. Est pensado para crear cuentas para nuevos usuarios, as como gestionar sus permisos y modicar las contraseas. Todas estas acciones resultan muy tiles en caso de emergencia (p.ej. hemos borrado por descuido al usuario "manager" o se nos ha olvidado su contrasea), por lo que este usuario tambin recibe el nombre de usuario de emergencia. El nombre del usuario y el hash de la contrasea se guardar en un chero de nombre "inituser" en el directorio "instancia".

Instalacin y conguracin de Zope y productos Zope Veamos con mayor detenimiento el usuario por defecto que crea Zope. Le podemos cambiar el nombre y la contrasea a este usuario mediante el script "zpasswd.py" (que se puede encontrar en el directorio zope/bin - ojo, no en el de la instancia, sino en el propio de zope). La forma de utilizar este script es la siguiente:
grex@beta10:~/zope/bin$ python zpasswd.py Usage: zpasswd.py [options] filename If this program is called without command-line options, it will prompt for all necessary information. The available options are: -u / --username= Set the username to be used for the initial user or the emergency user -p / --password= Set the password -e / --encoding= Set the encryption/encoding rules.

Defaults to SHA-1. OPTIONAL

-d / --domains= Set the domain names that the user user can log in from. any. OPTIONAL. -h / --help Print this help text and exit.

Defaults to

Filename is required and should be the name of the file to store the information in (usually "inituser" or "access").

Adems de especicar el nombre de usuario y la contrasea, se pueden aadir dos opciones ms. La primera es el mtodo de encriptacin que queremos utilizar (por defecto, se har uso de SHA-1) y mediante la segunda podemos especicar una lista de dominios desde los que el usuario por defecto puede tener acceso a Zope. De esta forma, restringimos al usuario por defecto para que tenga que entrar desde un(os) dominio(s) especco(s), como por ejemplo, nicamente desde mquinas de la universidad, desde los laboratorios docentes del GSyC o desde nuestra propia casa. Existe un parmetro obligado en el script "zpasswd.py" que es el nombre de un chero donde se guarda la clave. Este chero tendr una forma similar al /etc/passwd de UNIX, aunque slo contendr un usuario, precisamente el usuario por defecto. Generalmente a este chero suele drsele dos nombres: "inituser" o "access". En el script de instalacin pudimos observar que se haca uso de "inituser" y que slo se permita el acceso de lectura y escritura al propio usuario (para evitar que nadie ms vea el nombre de usuario y la clave, aunque esta ltima se encuentre encriptada). A modo de ejemplo, mostramos cmo utilizar zpasswd.py para crear un usuario de nombre "admin" y con la contrasea "pakito". El resultado se guardar en el archivo "access" cuyo contenido pedimos que se muestre a continuacin con "more".
grex@beta10:~/zope$ python zpasswd.py -u admin -p pakito ../instancia/inituser

Instalacin y conguracin de Zope y productos Zope


grex@beta10:~/zope$ more ../instancia/inituser admin:{SHA}KnJLfhXSuJzFBuu+J2IgHrRvRZ4=

De esta sencilla manera, y aunque ocurra una catstrofe, siempre estaremos en disposicin de poder entrar en Zope con el usuario de emergencia desde nuestra cuenta en los laboratorios del GSyC.

4. Congurando el arranque y arrancando Zope


El proceso de instalacin crea un script para el arranque de Zope que se llama "runzope" y que se sita dentro del directorio bin de nuestra instancia (en mi caso, en ~/zope/instancia/bin). Reproducimos el listado de este script a continuacin:
grex@beta10:~/zope/instancia/bin$ more runzope #! /bin/sh PYTHON="/usr/bin/python" ZOPE_HOME="/home/admin/grex/zope" INSTANCE_HOME="/home/admin/grex/zope/instancia" CONFIG_FILE="/home/admin/grex/zope/instancia/etc/zope.conf" SOFTWARE_HOME="/home/admin/grex/zope/lib/python" PYTHONPATH="$SOFTWARE_HOME" export PYTHONPATH INSTANCE_HOME SOFTWARE_HOME ZOPE_RUN="$SOFTWARE_HOME/Zope2/Startup/run.py" exec "$PYTHON" "$ZOPE_RUN" -C "$CONFIG_FILE" "$@"

Se puede ver que este script es bastante simple, ya que bsicamente lo que hace es especicar dnde estn las cosas (el binario de Python, la instalacin de Zope, la instalacin de la instancia, el chero de conguracin, las bibliotecas de Python) y lanza Zope pasndoselo como parmetros. Como habremos advertido, para congurar zope, nos debemos dirigir al chero etc/zope.conf dentro de nuestra instancia. Una buena prctica para usar Zope en los laboratorios es cambiar el puerto en el que Zope escucha, ya que si otro compaero est utilizando la misma mquina puede no dejarnos arrancarlo. Yo, por ejemplo, utilizo el puerto 8001 en vez del puerto 8080 que viene por defecto:
<http-server> # valid keys are "address" and "force-connection-close" address 8001 # force-connection-close on # You can also use the WSGI interface between ZServer and ZPublisher: # use-wsgi on </http-server>

Instalacin y conguracin de Zope y productos Zope Es hora ya de lanzar nuestro Zope. Para eso, ya slo quedar cambiarnos al directorio "bin" de nuestra instancia y ejecutar lo siguiente:
grex@beta10:~/zope/bin$ ./runzope

Una vez llegados a este punto, ya estamos en disposicin de ver la pgina inicial de Zope ("Zope Quick Start"), introduciendo en la barra de localizacin de nuestro navegador web http.//localhost:8001/ si hemos instalado Zope en la mquina local o introduciendo el nombre o IP de la mquina si no es as. (Nota: date cuenta de que si has especicado un puerto diferente al arrancar, debers introducir ese nmero de puerto en vez de 8001 en la peticin web). La pgina "Zope Quick Start" contiene informacin sobre Zope, as como enlaces a sitios donde encontrar ms documentacin y ayuda. Si ves esta pgina, enhorabuena, ya tienes tu Zope en pie. Figura 1. Pgina de inicio rpido de Zope

Nos encontramos ya en disposicin de entrar en la interfaz de gestin de Zope (Zope Management Interface o ZMI en ingls) con el nombre de usuario y la clave del usuario de emergencia que elegimos con anterioridad. Para entrar en la ZMI, tenemos que aadir "manage" a la URL con la que hemos accedido a la pgina donde nos encontramos en estos momentos. Aparecer una ventana para introducir el nombre de usuario y la contrasea, tal y como se muestra en la siguiente captura de pantalla:

Instalacin y conguracin de Zope y productos Zope Figura 2. Entrando en la ZMI (peticin de nombre de usuario y contrasea)

... y una vez introducidos los datos correctamente, veremos la ZMI. La ZMI est congurada por defecto para aparecer en tres marcos diferentes (aunque esto se puede cambiar desde las preferencias del usuario). En el marco superior se encuentra informacin referente al usuario con el que realizamos la conexin, el de la izquierda muestra el rbol de objetos dentro de Zope y el de la derecha el contenido de la carpeta o vista actual que estemos visualizando. Figura 3. La interfaz de gestin de Zope (ZMI)

Instalacin y conguracin de Zope y productos Zope La primera tarea que debemos realizar dentro de la ZMI es aadir un usuario con permisos de gestor ("manager") para ver cmo aadir nuevos usuarios al sistema. El usuario con permisos de gestor (a menos de que se especique lo contrario) puede crear cualquier tipo de objeto y realizar todas las acciones en Zope. De la carpeta raz ("Root Folder") cuelga una carpeta especial denominada "acl_users" donde se listarn todos los usuarios registrados. Veremos que existe una opcin para aadir nuevos usuarios mediante el botn "Add", que nos llevar al siguiente formulario: Figura 4. Aadiendo un usuario con el rol de gestor

Los campos a rellenar se corresponden con los que podamos pasar al script zpasswd.py para la creacin del usuario por defecto, con la aadidura de que en este caso es importante asignar el rol de "manager" al usuario que vayamos a crear. Figura 5. Listado de usuarios en acl_users del directorio raz de Zope

Una vez hecho esto, tendremos dos usuarios. Ya que con el usuario por defecto no podemos hacer muchas ms cosas, lo ms indicado en este momento es salir de la sesin (para eso en el marco superior elegiremos dentro del men desplegable la opcin "Logout") y volveremos a entrar con el usuario recin creado.

10

Instalacin y conguracin de Zope y productos Zope Como curiosidad cabe comentar que aunque cambiemos la contrasea del usuario por defecto en la ZMI, la que ser siendo vlida es la que est guardada en el chero "inituser" en el sistema de cheros.

5. Directorios y cheros importantes de Zope


Dentro del sistema de cheros, podemos encontrar la forma en que la instancia de Zope tiene organizados sus cheros y directorios ms importantes. Conocer su localizacin nos ser de gran ayuda para instalar nuevos productos Zope o importar objetos de otros sitios, as como para conocer ms a fondo la estructura de Zope. Los siguientes comentarios se basan en [Rubert2002]:

var/Data.fs: Este chero binario conforma la base de datos Zope donde se almacena cualquier informacin relativa al Zope. Es un chero que se volver ms y ms grande con el tiempo, ya que no slo guarda el estado nal de los objetos, sino tambin todos sus estados intermedios en aras de posibilitar la accin de deshacer ("Undo"). Puede comprimirse, borrando los estados anteriores a una fecha dada desde el apartado de gestin de la base de datos que se encuentra dentro del Panel de Control de la ZMI. A partir de Zope 2.7, existe la posibilidad de tener la base de datos orientada a objetos en varios cheros. Products: Directorio donde residen los productos de Zope, tanto los que forman parte de la distribucin, como aqullos que vayamos instalando por nuestra propia cuenta. En los siguientes apartados instalaremos unos cuantos productos de Zope y lo haremos en este directorio. import: Directorio donde ubicaremos los cheros a partir de los cuales importaremos objetos o nuestros desarrollos Zope, exportados desde otra ZODB. Ms adelante, en este documento veremos cmo hacerlo con ms detenimiento. Extensions: Directorio donde pondremos aquellos scripts de Python externos a Zope, para poder llamarlos luego desde dentro de Zope. Los scripts externos se utilizan en Zope cuando se requiere velocidad de ejecucin, acceder al sistema de cheros local o esquivar las restricciones que impone Zope a la ejecucin. bin: Directorio donde reside el ejecutable para lanzar nuestra instancia Zope. lib: Conjunto de bibliotecas de Python y Zope. log: Directorio con los logs de Zope. Hay dos cheros diferentes: en event.log se guardarn los eventos de Zope y servir para ver si el proceso de arranque y de instalacin de nuevos productos no ha tenido problemas, mientras que en Z2.log se guardan las peticiones HTTP que recibe el servidor. El formato de Z2.log es idntico al utilizado por Apache, as que puede ser utilizado como entrada para programas que generan informes y estadsticas de acceso como por ejemplo webalizer.

6. Instalar productos Zope


Los productos Zope son extensiones a Zope realizadas por Zope Corporation o por terceras partes. En la actualidad existen ms de mil productos Zope de toda ndole, desde gestores de contenidos a productos de internacionalizacin pasando por completas aplicaciones de comercio electrnico. En este apartado

11

Instalacin y conguracin de Zope y productos Zope veremos cmo se instalan los productos Zope una vez que tengamos ya un servidor Zope instalado y funcionando en nuestra mquina.

6.1. ZWiki
ZWiki es un sistema wiki que permite la elaboracin rpida y colaborativa de contenidos dentro de un sistema Zope. La licencia de ZWiki es la licencia [GPL]. Para instalar ZWiki, lo primero que tenemos que hacer es situarnos en el subdirectorio "Products" dentro de nuestro sistema de archivos local donde hayamos instalado Zope. En "Products" encontraremos una serie de subdirectorios; cada uno de ellos es un producto Zope. Los que existen por ahora son los productos Zope que vienen por defecto con las fuentes de Zope. Nosotros nos vamos a encargar ahora de aadir a estos productos el producto ZWiki. Para ello descargaremos la ltima versin de ZWiki y la descomprimiremos, tal y como se muestra en la siguiente secuencia de instrucciones:
grex@beta10:~/zope/instancia$ pwd /home/admin/grex/zope/instancia grex@beta10:~/zope/instancia$ cd Products/ grex@beta10:~/zope/instancia/Products$ ls README.txt grex@beta10:~/zope/instancia/Products$ wget http://zwiki.org/releases/ZWiki-0.58.0.tgz --18:29:00-- http://zwiki.org/releases/ZWiki-0.58.0.tgz => ZWiki-0.58.0.tgz Resolviendo zwiki.org... tar xvzf 66.179.181.88 Connecting to zwiki.org|66.179.181.88|:80... conectado. Peticin HTTP enviada, esperando respuesta... Z200 OK Longitud: 614,841 (600K) [application/x-tar] 100%[====================================>] 614,841 163.78K/s ETA 00:00

18:29:08 (151.68 KB/s) - ZWiki-0.58.0.tgz saved [614841/614841] grex@beta10:~/zope/instancia/Products$ tar xvzf ZWiki-0.58.0.tgz ZWiki/ ZWiki/Extensions/ ZWiki/Extensions/Install.py ZWiki/Extensions/README ZWiki/Extensions/__init__.py ZWiki/Extensions/fixprops.py ...

Al descomprimir se crear un subdirectorio llamado "ZWiki" que contendr un gran nmero de cheros y subdirectorios (que obviamos en este documento debido a su longitud). Borramos el archivo

12

Instalacin y conguracin de Zope y productos Zope comprimido para ahorrar espacio. Para que la instalacin del producto se pueda considerar completa slo har falta reiniciar Zope tal y como hemos vista antes con runzope (que est en zope/instancia/bin). Al reiniciar (si miramos el log de eventos en log/event.log) podremos reconocer uno nuevo en el que se nos indica que se ha detectado un nuevo producto Zope en el disco. Zope realizar entonces una serie de tareas para ver si puede instalar debidamente el producto. Para ver si de verdad ha ocurrido as, tendremos que echar un vistazo al Panel de Control que se encuentra en la ZMI. El Panel de Control permite gestionar nuestro sitio Zope a travs de un interfaz web. Adems de informacin sobre la instalacin actual y los lugares donde estn los archivos y directorios ms importantes dentro del sistema de cheros, podemos reiniciar y apagar Zope mediante dos botones en dicho panel. Los enlaces a continuacin nos llevarn a secciones especcas para la gestin de otros elementos, a saber: la base de datos, las versiones, los productos, la informacin de depuracin y el gestor de cerrojos de WebDAV. Figura 6. Panel de Control

Como no poda ser de otra manera, nosotros ahora mismo estamos interesados en la parte correspondiente a la gestin de productos dentro del Panel de Control. En esta seccin nos aparecer un listado de todos los productos que hay instalados en la actualidad en Zope. Al nal de la lista -ya que es por orden alfabtico- debera aparecer una entrada con el producto "ZWiki", siendo el smbolo que le precede un icono con una especie de caja azul (en caso contrario, ha habido un error en la instalacin). Si es as, hemos instalado ZWiki de manera correcta.

13

Instalacin y conguracin de Zope y productos Zope Figura 7. Panel de Control: Productos instalados

Una de las consecuencias de haber instalado el producto ZWiki de manera correcta es que podremos aadir sitios ZWiki y pginas ZWiki desde el men desplegable de nuestro sitio Zope. Prueba a aadir un sitio ZWiki desde ah para ver qu facil es tener un sitio ZWiki en Zope. Por supuesto, se puede tener sin problemas muchos ZWikis diferentes dentro del mismo Zope (siempre, claro, que les asignemos un identicador diferente al crearlos, ya que ste debe ser nico). En estos casos, hablamos de diferentes instancias de ZWiki dentro de nuestro sistema Zope.

14

Instalacin y conguracin de Zope y productos Zope Figura 8. Panel de Control: Productos instalados

7. Exportando e importando objetos


Zope nos ofrece la posibilidad de importar/exportar objetos de/a otros sistemas Zope de manera sencilla a travs de la ZMI. As, por ejemplo, muchos de los ejemplos que veremos en prcticas se publicarn en cheros con extensin .zexp, que no sern otra cosa que un objeto carpeta que incluye los objetos ejemplo empaquetado. Por supuesto, cuando exportamos una carpeta todos sus contenidos estn incluidos. Exportar objetos es muy fcil. Simplemente se ha de elegir los objetos a exportar (en la captura de pantalla mostrada a continuacin se trata de dos carpetas) y pulsar sobre el botn "Export/Import". Figura 9. Exportando objetos. Por ejemplo, dos carpetas

Eso nos llevar a la siguiente pantalla. Debemos especicar un identicador a los objetos a exportar (el chero que Zope crear llevar de nombre el identicador ms la extensin zexp) y especicar si

15

Instalacin y conguracin de Zope y productos Zope queremos guardarlo en el servidor o en nuestra mquina local. Si elegimos lo primero, Zope automticamente guardara el chero el directorio var (si es que tiene los permisos para acceder all), mientras que para el segundo caso podremos elegir la localizacin en el sistema de cheros de la mquina donde estemos ejecutando el cliente web. Figura 10. Interfaz para importar/exportar objeto

Para importar objetos, se han de colocar los archivos a importar (generalmente archivos con extensin zexp) en el directorio import. Dentro de la ZMI, iremos a la localizacin donde queremos importar los objetos y pulsaremos sobre el botn de "Export/Import". Nos volver a aparecer la gura anterior, aunque en este caso nos detendremos en la parte inferior, donde deberemos especicar el nombre del chero a importar. Asimismo tenemos la opcin de especicar que los objetos importados pasen a ser de nuestra propiedad o mantener la informacin sobre su propiedad. Pulsando sobre el botn de "Import", Zope importar los objetos a la base de datos orientada a objetos y podremos hacer uso de ellos.

8. Problemas y Soluciones
A continuacin se exponen una serie de problemas con los que nos hemos ido encontrando en el transcurso de la asignatura [TSAI] al instalar Zope en el laboratorio. Adjuntamos las soluciones -algunas no muy ortodoxas- por si pueden ser de provecho.

16

Instalacin y conguracin de Zope y productos Zope

8.1. unknown locale


Parece que en Debian, al arrancar Zope se produce este error de manera ocasional:
unknown locale: es_ES@euro ValueError: unknown locale: es_ES@euro

Este error se debe a un fallo en conguracin de la localizacin en Debian, ya que Zope no reconoce la nueva conguracin del teclado de la que hacemos uso en Espaa. La solucin, un poco chapucera pero efectiva, a este problema es editar el chero donde salta el error e inhibirle ese comportamiento, de manera que se ejecute sin ms. Para eso, nos debemos dirigir a lib/locale.py, que es el chero donde nos da el error y situarnos en la lnea 272 (en vi eso se hace con :272). El cdigo ha de quedar entonces como sigue:
if . in code: return code.split(.)[:2] elif code == es_ES@euro: return None, None elif code == C: return None, None else: raise ValueError, unknown locale: %s % localename return l

Ntese que hemos aadido dos lneas (la tercera y la cuarta) y que estamos tratando con cdigo en Python, por lo que habr que tener en cuanta el sangriado. Una vez salvado, Zope debera arrancar sin problemas.

8.2. nohup
Si arrancamos Zope, an cuando lo hagamos correr en "background" una vez que salgamos de nuestra cuenta, nuestra sesin termina y con ella todos los procesos que tengamos corriendo. Esto puede ser molesto si queremos que Zope est arriba todo el tiempo. Una buena solucin es hacer uso de la instruccin de la lnea de instrucciones "nohup". "nohup" permite desconectarnos sin terminar los procesos que est llevando a cabo. Su uso es muy simple, ya que simplemente se ha de anteceder a la instruccin que queramos que se siga ejecutando. As, en nuestro caso, deberamos introducir:
grex@beta10:~/zope/instancia nohup ./runzope nohup: appending output to nohup.out

Ntese que "nohup" guarda todo lo que generalmente se imprime por la salida estndar en un chero llamado "nohup.out".

17

Instalacin y conguracin de Zope y productos Zope

9. Resumen y Conclusiones
En este documento hemos visto cmo instalar Zope y productos Zope a partir de las fuentes que se pueden obtener desde Internet. Asimismo, se han mostrado algunos conceptos interesantes con los que cuenta Zope como exportar/importar objetos o la gestin de productos va web. Por ltimo, hemos tratado de documentar algunos de los problemas ms comunes con los que nos hemos ido encontrando.

Bibliografa
[CMFWeb] CMF Web Site, http://cmf.zope.org . [CMFDownload] CMF Releases Download Page, http://cmf.zope.org/download/ . [GPL] GNU General Public License (GPL) Version 2.0, http://www.gnu.org/copyleft/gpl.html . [HispaZope] HispaZope, http://www.hispazope.org . [Localizer] Localizer, http://www.j-david.net/software/localizer/ . [Rubert2002] David Rubert, Introduccin a Zope + Apache + BDs relacionales, http://www.aditel.org/jornadas/02/ponencias/zope . [TranslationService] TranslationService, http://www.zope.org/Members/efge/TranslationService . [TSAI] Tecnologas de Servicios y Aplicaciones para Internet, http://www.clarolineserver.com/urjc/EXPETSAI/ . [ZopeBook] Amos Latteier y Michel Pelletier, The Zope Book, http://www.zope.org/Documentation/Books/ZopeBook/ . [ZopeDownload] Zope Releases Download Page, http://zope.org/Products/ . [ZopeWeb] Zope Project Web Site, http://www.zope.org . [ZPL] Zope Public License (ZPL) Version 2.0, http://www.zope.org/Resources/ZPL . [ZWikiWeb] ZWiki Web Site, http://zwiki.org/FrontPage .

18

You might also like