Zope, Plone y Quills en Gentoo

A consecuencia de haber visto el cms y el theme de Tomster me ha entrado la vena curiosa y me puse a instalar Zope, Plone (nuPlone) y el producto Quills que facilita la estructura de un weblog.

La curiosidad y las ganas de aprender me han llevado a conocer otra vía distinta a las que estaba acostumbrado en PHP, así que al tajo...

Instalación Zope

Zope es el servidor de aplicaciones que hace de anfitrión de Plone, ya lo habíamos instalado en otra ocasión, tanto el propio servidor como algún que otro producto (Zwiki) pero vamos a intentarlo de otra forma en Gentoo.

Antes de nada comprobamos que tenemos python-2.4 e instalamos el easy_install. En Gentoo viene en un package llamado setuptools así que lo emergemos:
# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/include/python2.4
# emerge setuptools
Ya podemos usar easy_install para componer el esqueleto de Zope:
# easy_install ZopeSkel

Otras dependencias

Tanto Zope como Plone dependen de unas librerías básicas para su correcto funcionamiento, las mínimas son elementtree y PIL (Python Imagging Library, en Gentoo se llama imagging). Las instalamos antes de continuar:
# emerge elementtree
# emerge imaging

Instalación Plone

Plone es el gestor de contenidos que corre sobre Zope y pretendemos instalar, para ello una vez tenemos el esqueleto de Zope listo hacemos lo siguiente:
# mkdir /home/plone/
# paster create -t plone3_buildout plone_r0sk
Y contestamos a todas las preguntas, usuario administrador, contraseña, puerto por defecto (8008)... Este proceso crea un directorio -plone_r0sk- con todo lo necesario para la instalación. Para finalizar ejecutamos el buildout que se encargará de bajar, compilar e instalar todo lo necesario para el Plone3:
# cd plone_r0sk
# python bootstrap.py 
# ./bin/buildout
Al acabar el buildout tendremos Zope y Plone instalados en el sistema. Para instalar otros productos debemos jugar con el archivo buildout.cfg, pero eso ya lo veremos más adelante con Quills.

Lanzando instancias

Ahora tenemos que lanzar la instancia de Zope e instanciar nuestro Plone directamente desde ZMI:
# ./bin/instance fg
Ojo:Cuidado con los permisos, puesto que la instancia no puede lanzarse como root. Si hemos hecho el buildout como root haremos un chown a un user de confianza, su a ese user y lanzamos la insance:
# chown -R r0sk:users *
# su r0sk
# ./bin/instance fg
Una vez lanzada la instance entramos al ZMI (http://miserver:8080/manage) con el usuario y contraseña que indicamos en la instalación:
Zope Management Instance
Y agregamos (add) un Plone, el id que le pongamos será el que indique la url de acceso -por ejemplo si ponemos id=r0sk la url para acceder al nuevo Plone sería la siguiente: http://miserver:8080/r0sk-
Zope Management Instance
En el combo de Extension Profiles seleccionamos NuBlog, que es el theme de Tomster que queremos probar, la apariencia será similar a ésto:
NuPlone en acción

Product Quills

Ahora vamos a instalar Quills para facilitar el uso de Plone como herramienta weblog. Para ello entramos de nuevo en el directorio plone_r0sk y editamos el buildout.cfg agregando la siguiente opción en eggs:
eggs =
    elementtree
    Products.Quills
Ejecutamos el buildout para que se baje y compile Quills y lanzamo de nuevo la instancia -parar la antigua si la teníamos funcionando-:
# ./bin/buildout
# ./bin/instance fg
Ahora, si entramos al Plone y vamos a Productos adicionales debe aparecer por alguna parte una lista de productos no instalados, entre los que se encuentra:
  • Products.Quills 1.7.0b2
  • quills.app unknown
Las seleccionamos para "instalar" y aceptamos los cambios. El resto es usar Plone, agregar un Blog, una nueva entrada de blog y publicar ambas cosas para que vaya tomando forma.

Referencias

Conclusión

Todo tiene su parte positiva, ha sido menos traumático de lo que esperaba y el resultado es bueno, en poco más de 20 minutos (corrección de errores incluida), hemos montado una plataforma gestora de todo tipo de contenidos sencilla e intuitiva.

Por otro lado, mirándolo con ojos de desarrollador y retomando este hilo, no conozco los entresijos de Zope+Plone, con lo que no puedo saber cuan eficiente se puede comportar en contextos de carga extrema. Ese desconocimiento genera excepticismo y ganas de aprender más cosas sobre zdb, almacenamiento de datos, tipos de consulta...

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.