Instalando con buildout

Si estas usando zc.buildout, usted puede usar la siguiente configuración dentro de buildout.cfg como punto de arranque. Este asegura que el script de consola deliverance-proxy esté instalado, lo cual es importante si usted necesita ejecutar manualmente el servidor proxy Deliverance:

[buildout]
versions = versions
parts =
   ...
   deliverance-server
   ...
[versions]
Deliverance = 0.5.0
WebOb = 0.9.8
PasteScript = 1.7.5
PasteDeploy = 1.5.0

[deliverance-server]
recipe = zc.recipe.egg
eggs =
    Deliverance
    PasteScript

Opcionalmente, en algunos sistemas operativos, en particular, Mac OS X la instalación de un «buen» paquete (Python egg) de lxml puede ser problemático, debido a una falta de coincidencia en las versiones del sistema operativo de las librerías lxml con respecto a la libxml2 y libxslt. Para resolver esto, se puede compilar un lxml estático de paquete egg usando la siguiente receta buildout:

[buildout]
versions = versions
# lxml debería estar de primero en la lista ``parts``
parts =
   lxml
   deliverance-server

[versions]
Deliverance = 0.5.0
WebOb = 0.9.8
PasteScript = 1.7.5
PasteDeploy = 1.5.0

[lxml]
recipe = z3c.recipe.staticlxml
egg = lxml

[deliverance-server]
recipe = zc.recipe.egg
eggs =
    Deliverance
    PasteScript

Entonces usted tiene que comenzar de arranque:

$ python bootstrap.py

Luego ejecute la construcción de su configuración zc.buildout, con el siguiente comando:

$ ./bin/buildout -vN

Nota

Note que el paquete lxml es una dependencia de Deliverance, usted podría necesitar instalar los paquetes de desarrollo de libxml2 y libxslt para poder construir esta configuración zc.buildout. En Debian/Ubuntu Linux usted puede ejecutar:

# sudo apt-get install build-essential python-dev libxml2-dev libxslt1-dev

Luego vuelva a ejecutar la construcción de su configuración zc.buildout como en paso anterior

Usted debería ver algo como esto:

Generated script '/home/user/deliverancedemo/bin/paster'.
Generated script '/home/user/deliverancedemo/bin/deliverance-proxy'.

Una ves instalado, usted debería buscar el script deliverance-proxy en el directorio bin.

Creando una Configuración

Luego de finalizar la intalación correctamente debe tener disponible en el script bin/paster el cual tiene disponible dos plantillas PasteScript para construir sitios con configuraciones Deliverance, para comprobar esto ejecute el siguiente comando:

$ ./bin/paster create --list-templates
Available templates:
  archetype:          A Plone project that uses Archetypes content types
  basic_buildout:     A basic buildout skeleton
  basic_namespace:    A basic Python project with a namespace package
  basic_package:      A basic setuptools-enabled package
  basic_zope:         A Zope project
  nested_namespace:   A basic Python project with a nested namespace (2 dots in name)
  paste_deploy:       A web application deployed through paste.deploy
  plone_basic:        A project for Plone products
  recipe:             A recipe project for zc.buildout
  deliverance:        Basic template for a deliverance-proxy setup
  deliverance_plone:  Plone-specific template for deliverance-proxy

Debería tener disponible la plantilla Paster deliverance y deliverance_plone la primera le permite crear una configuración básica para la instalación del servidor proxy Deliverance y la segunda permite crear una configuración especifica de Plone con un servidor proxy Deliverance.

A continuación se demostra cada creación de cada una de las plantillas Paster descritas anteriormente, con el siguiente comando:

$ ./bin/paster create -t deliverance mi-ejemplo-basico
Selected and implied templates:
  Deliverance#deliverance  Basic template for a deliverance-proxy setup

Variables:
  egg:      mi_ejemplo_basico
  package:  miejemplobasico
  project:  mi-ejemplo-basico
Enter host (The host/port to serve on) ['localhost:8000']: localhost:5000
Enter proxy_url (The main site to connect/proxy to) ['http://localhost:8080']: localhost:8000
Enter proxy_rewrite_links (Rewrite links from sub_host?) ['n']: y
Enter password (The password for the deliverance admin console) ['']: secret
Enter theme_url (A URL to pull the initial theme from (optional)) ['']:
Creating template deliverance
Creating directory ./mi-ejemplo-basico
  Recursing into etc
    Creating ./mi-ejemplo-basico/etc/
    Copying deliv-users.htpasswd_tmpl to ./mi-ejemplo-basico/etc/deliv-users.htpasswd
    Copying deliverance.xml_tmpl to ./mi-ejemplo-basico/etc/deliverance.xml
    Recursing into supervisor.d
      Creating ./mi-ejemplo-basico/etc/supervisor.d/
      Copying deliverance.conf_tmpl to ./mi-ejemplo-basico/etc/supervisor.d/deliverance.conf
    Copying supervisord.conf_tmpl to ./mi-ejemplo-basico/etc/supervisord.conf
Creating ./mi-ejemplo-basico/theme
Creating ./mi-ejemplo-basico/theme/theme.html
Creating ./mi-ejemplo-basico/theme/style.css

En el caso que requiera aplicar configuraciones Deliverance con sitios web Plone, para hacer esto ejecute el siguiente comando:

$ ./bin/paster create -t deliverance_plone mi-ejemplo-plone
Selected and implied templates:
  Deliverance#deliverance        Basic template for a deliverance-proxy setup
  Deliverance#deliverance_plone  Plone-specific template for deliverance-proxy

Variables:
  egg:      mi_ejemplo_plone
  package:  miejemploplone
  project:  mi-ejemplo-plone
Enter site_name (The name of your Plone site (no /'s)) ['']: Plone
Enter host (The host/port to serve on) ['localhost:8000']: localhost:5000
Enter proxy_url (The main site to connect/proxy to) ['http://localhost:8080']:
Enter proxy_rewrite_links (Rewrite links from sub_host?) ['n']: y
Enter password (The password for the deliverance admin console) ['']: secret
Enter theme_url (A URL to pull the initial theme from (optional)) ['']:
Creating template deliverance
Creating directory ./mi-ejemplo-plone
  Recursing into etc
    Creating ./mi-ejemplo-plone/etc/
    Copying deliv-users.htpasswd_tmpl to ./mi-ejemplo-plone/etc/deliv-users.htpasswd
    Copying deliverance.xml_tmpl to ./mi-ejemplo-plone/etc/deliverance.xml
    Recursing into supervisor.d
      Creating ./mi-ejemplo-plone/etc/supervisor.d/
      Copying deliverance.conf_tmpl to ./mi-ejemplo-plone/etc/supervisor.d/deliverance.conf
    Copying supervisord.conf_tmpl to ./mi-ejemplo-plone/etc/supervisord.conf
Creating ./mi-ejemplo-plone/theme
Creating ./mi-ejemplo-plone/theme/theme.html
Creating ./mi-ejemplo-plone/theme/style.css
Creating template deliverance_plone
  Recursing into etc
Replace 1601 bytes with 2062 bytes (3/49 lines changed; 9 lines added)
    Copying deliverance.xml_tmpl to ./mi-ejemplo-plone/etc/deliverance.xml

Usted debe iniciar la instancia Zope, con el siguiente comando:

$ ./bin/instance start

Y para finzalizar, sin importar la plantilla usada para crear la configuración, igualmente debe ejecutar manualmente el servidor proxy Deliverance, puede hacerlo ejecutando el siguiente comando:

$ ./bin/deliverance-proxy ./etc/deliverance.xml
To see logging, visit http://localhost:5000/.deliverance/login
    after login go to http://localhost:5000/?deliv_log
serving on http://localhost:5000

Como puede ver le esta indicando que Deliverance esta siendo servido por la dirección URL http://localhost:5000/ aplicando su estilo y tema HTML al contenido como se define en la archivo deliverance.xml

Para acceder a la consola depuración de iniciar sesión por la dirección URL http://localhost:5000/.deliverance/login y luego acceder a la dirección URL http://localhost:5000/?deliv_log