CMS Plone 4.1.6 com invólucro Virtualenv + Buildout + Mount Point + BLOB Storage + Unicode UTF-8

O Plone está entre os CMS com menor índice de falhas de segurança, possui várias funcionalidades e técnicas que podem ser comparadas com outros CMS.

[ Hits: 18.563 ]

Por: Ricardo Brito do Nascimento em 06/08/2012 | Blog: http://brito.blog.incolume.com.br


Desfecho, arquivos fontes e referências



Agora, para conclusão de todo o processo, acesse a Zope Manage Interface (ZMI), em seu navegador preferido, no IP da máquina e a porta, em que o Plone foi configurado.

No exemplo deste artigo, 8101 e 8102, para as instâncias, client1 e client2, respectivamente.
  • http://iphost:8101/manage
  • http://iphost:8102/manage

Exemplo: http://192.168.0.2:8102/manage

Este artigo, pode ser lido também em meu blog: http://brito.blog.incolume.com.br, e futuramente disponibilizarei a versão em PDF.

Abraço a todos. :)

Buildout.cfg Completo

######################################################
# Base Configuration; used by both standalone and zeo,
# which extend it.
# ---------------------------------------------------

# Buildout instructions in this file are
# usually only changed by experienced developers.
#
# Beyond here there be dragons!

[buildout]
eggs-directory=../buildout-cache/eggs
download-cache=../buildout-cache/downloads

# Don't download new things unless needed to satisfy dependencies.
# Override this on the command line with the "-n" flag.
newest = false

# Pick final releases over newer development releases when it's
# possible to do so and still fulfil requirements. Note that explicit
# version specifications will override this preference.
prefer-final = true

versions = versions

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    http://dist.plone.org
    http://download.zope.org/ppix/
    http://download.zope.org/distribution/
    http://effbot.org/downloads

# unzip all eggs for easier debugging
unzip = true

# Load the DumpPickedVersions extension, which will notify
# you of versions picked by buildout that were not specifically
# pinned. 
extensions = buildout.dumppickedversions




[zopepy]
# installs a zopepy python interpreter that runs with your
# full Zope environment
recipe = zc.recipe.egg
eggs = ${buildout:eggs}
interpreter = zopepy
scripts = zopepy




[unifiedinstaller]
# This recipe installs the plonectl script and a few other convenience
# items.
# For options see http://pypi.python.org/pypi/plone.recipe.unifiedinstaller
recipe = plone.recipe.unifiedinstaller
user = ${buildout:user}
primary-port = ${buildout:http-address}
sudo-command = sudo -u admin


[repozo]
# This recipe builds the repozo script for non-zeo installations.
recipe = zc.recipe.egg
eggs = ZODB3
scripts = repozo


[backup]
# This recipe builds the backup, restore and snapshotbackup commands.
# For options see http://pypi.python.org/pypi/collective.recipe.backup
recipe = collective.recipe.backup
location = ${buildout:backups-dir}/backups
snapshotlocation = ${buildout:backups-dir}/snapshotbackups


[zeoserver]
# Use this section to install and configure a Zope
# Enterprise Objects server.
# For options see http://pypi.python.org/pypi/plone.recipe.zeoserver
recipe = plone.recipe.zeoserver
zeo-address = ${buildout:zeo-address}
# if we try to start as root, Zope will switch to the user below
effective-user = ${buildout:effective-user}
# Put the log, pid and socket files in var/zeoserver
zeo-log     = ${buildout:directory}/var/zeoserver/zeoserver.log
pid-file    = ${buildout:directory}/var/zeoserver/zeoserver.pid
socket-name = ${buildout:directory}/var/zeoserver/zeo.zdsock
blob-storage = ${buildout:directory}/var/blobstorage
# You may also control the environment variables for the zeoserver.
environment-vars = ${buildout:environment-vars}
eggs = tempstorage

zeo-conf-additional =
     
       path ${buildout:directory}/var/filestorage/mp001BD.fs
       blob-dir ${buildout:directory}/var/blobstorage/mp001bd
     

     
       path ${buildout:directory}/var/filestorage/mp002BD.fs
       blob-dir ${buildout:directory}/var/blobstorage/mp002bd
     

     
       path ${buildout:directory}/var/filestorage/mp003BD.fs
       blob-dir ${buildout:directory}/var/blobstorage/mp003bd
     

    %import tempstorage
    
       name temporary storage for sessioning
    

[chown-zeo]
# This recipe is used to set permissions for root mode installs
# For options see http://pypi.python.org/pypi/plone.recipe.command
recipe = plone.recipe.command
command =
    echo Dummy references to force this to execute after referenced parts
    echo ${backup:location} ${unifiedinstaller:sudo-command}
    chmod 600 .installed.cfg
    touch ${buildout:directory}/var/zeoserver/zeoserver.log
    find ${buildout:directory}/var -type d -exec chmod 700 {} \;
    chmod 744 ${buildout:directory}/bin/*

    chmod 755 ${buildout:directory}/bin/python
    mkdir -pm 755 ${buildout:directory}/{products,src}
    mkdir -pm 755 ${buildout:directory}/var/blobstorage/mp00{1,2,3}bd/tmp
    chown -R ${buildout:effective-user} ${buildout:directory}/var
update-command = ${chown-zeo:command}




[zopeskel]
# installs paster and Zopeskel
recipe = zc.recipe.egg
eggs =
    ZopeSkel
    Paste
    PasteDeploy
    PasteScript
    ${buildout:eggs}


[client1]
# Use this section to install and configure a Zope
# client instance.
# For options see http://pypi.python.org/pypi/plone.recipe.zope2instance
# Additional clients are a
recipe = plone.recipe.zope2instance
zeo-client = true
zeo-address = ${zeoserver:zeo-address}
# The line below sets only the initial password. It will not change an
# existing password.
user = ${buildout:user}
# if we try to start as root, Zope will switch to the user below
effective-user = ${buildout:effective-user}
http-address = ${buildout:http-address}
icp-address = ${buildout:http-address}
blob-storage = ${zeoserver:blob-storage}
shared-blob = on
# change debug-mode to "on" to run in development mode
debug-mode = ${buildout:debug-mode}
# change verbose-security to "on" for detailed security
# errors while developing
verbose-security = ${buildout:verbose-security}
deprecation-warnings = ${buildout:deprecation-warnings}
# Put the log, pid, lock files in var/client1
event-log = ${buildout:directory}/var/client1/event.log
z2-log    = ${buildout:directory}/var/client1/Z2.log
pid-file  = ${buildout:directory}/var/client1/client1.pid
lock-file = ${buildout:directory}/var/client1/client1.lock

# If you want Zope to know about any additional eggs, list them here.
# e.g. eggs = ${buildout:eggs} my.package
eggs = ${buildout:eggs}

# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml = ${buildout:zcml}
    
products = ${buildout:directory}/products

# You may also control the environment variables for the instance.
environment-vars = ${buildout:environment-vars}

zope-conf-additional =
        
         mount-point /mp001bd
         cache-size 5000
         
             blob-dir ${buildout:directory}/var/blobstorage/mp001bd
             shared-blob-dir on
             name mp001bd
             server ${buildout:zeo-address}
             storage mp001bd
             var ${buildout:directory}/var
                 
        

        
         mount-point /mp002bd
         cache-size 5000
         
             blob-dir ${buildout:directory}/var/blobstorage/mp002bd
             shared-blob-dir on
             name mp002bd
             server ${buildout:zeo-address}
             storage mp001bd
             var ${buildout:directory}/var
                 
        

        
         mount-point /mp003bd
         cache-size 5000
         
             blob-dir ${buildout:directory}/var/blobstorage/mp003bd
             shared-blob-dir on
             name mp003bd
             server ${buildout:zeo-address}
             storage mp003bd
             var ${buildout:directory}/var
                 
        

zodb-temporary-storage =
        
            
              server ${buildout:zeo-address}
              storage temp
              name zeostorage
              var ${buildout:directory}/var
            
            mount-point /temp_folder
            container-class Products.TemporaryFolder.TemporaryContainer
        

[client2]
# a copy of client1, except adjusted address and var location
<= client1
http-address = ${buildout:client2-address}
icp-address = ${buildout:client2-address}
event-log = ${buildout:directory}/var/client2/event.log
z2-log    = ${buildout:directory}/var/client2/Z2.log
pid-file  = ${buildout:directory}/var/client2/client2.pid
lock-file = ${buildout:directory}/var/client2/client2.lock

[client3]
# a copy of client1, except adjusted address and var location
<= client1
http-address = ${buildout:client3-address}
icp-address = ${buildout:client3-address}
event-log = ${buildout:directory}/var/client3/event.log
z2-log    = ${buildout:directory}/var/client3/Z2.log
pid-file  = ${buildout:directory}/var/client3/client3.pid
lock-file = ${buildout:directory}/var/client3/client3.lock

[client4]
# a copy of client1, except adjusted address and var location
<= client1
http-address = ${buildout:client4-address}
icp-address = ${buildout:client4-address}
event-log = ${buildout:directory}/var/client4/event.log
z2-log    = ${buildout:directory}/var/client4/Z2.log
pid-file  = ${buildout:directory}/var/client4/client4.pid
lock-file = ${buildout:directory}/var/client4/client4.lock

[unicode]
recipe = plone.recipe.command
update-command = ${unicode:command}
command =
   cat > ${buildout:directory}/lib/python2.6/site-packages/sitecustomize.py << EOF
   import sys
   sys.setdefaultencoding('utf-8')
   EOF


Referências


Artigos em meu Blog:

Página anterior    

Páginas do artigo
   1. Introdução - Escopo - Dependências
   2. PZP - Virtualenv - Buildout
   3. Mount point
   4. BLOB Storage
   5. Desfecho, arquivos fontes e referências
Outros artigos deste autor

Gerenciando certificados A1 fornecidos pelo ICB-Brasil no navegador Chrome sobre Linux

Instalação Plone 2.5.5 com módulos customizados

Encapsulamento de Apache com chroot

Formatando exibição de datas no Linux

Configurando Subversion

Leitura recomendada

Instalando um servidor Zope/Plone

Introdução ao Python (parte 2)

Utilizando as bibliotecas do Java usando o Jython

Solução de Intranet Vindula 1.1 - Instalação no Ubuntu 10.04 LTS

Introdução ao Python (parte 1)

  
Comentários
[1] Comentário enviado por rony_souza em 08/08/2012 - 15:56h

Muito bom o artigo, parece ser uma ótima ferramenta.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts