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: 19.089 ]

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

Instalação Plone 2.5.5 com módulos customizados

Configurando Subversion

Explorando o wget

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

Formatando exibição de datas no Linux

Leitura recomendada

Introdução ao Python (parte 1)

Criando formulários no Zope/Plone utilizando o banco de dados MySQL

wxPython, uma biblioteca GUI multi-plataforma (parte 1)

FreeBSD + Zope/Plone, uma idéia frustrante?

Gerenciando registros em banco de dados com Zope

  
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