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.532 ]

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


Mount point



O Moint Point não necessita de instalação, pois é apenas um recurso de configuração do ZODB (Zope Object Data Base), em modo ZEO (Zope Enterprise Objects), que permite utilização de múltiplos arquivos ".fs", na mesma instância.

O ZEO com Mount Point ativado, funciona como um SGBD (Sistema Gerenciador de Banco de Dados), que gerencia acessos concorrentes, a múltiplas bases de dados em um SGBD relacional, tais como PostgreSQL, Oracle, MySQL e MSSQL Server.

No artigo: Brito: Plone 3.3.5 + buildout + mount point, destaquei onde deve ser modificado no arquivo buildout.cfg, e algumas premissas que deve ser contempladas, ou melhor tomadas por regras.

Entre as premissas, destaca-se usar algo que identifique a aplicação adequadamente, e nomes com as regras abaixo, que funcionam com louvor.
  • Letras minúsculas (caixa baixa);
  • Não utilizar caracteres especiais;
  • Não utilizar traço(-).

Vantagens

Como toda solução, há vantagens e desvantagens. A vantagem em relação à configuração sem Mount Point, está na hora de recuperar o backup de apenas uma das aplicações, que neste caso, é pontual, e bastante facilitada com o repozo, aplicação que já compõe a estrutura.

Minimiza o tempo de ociosidade dos processos PZP, pois uma instancia serve vários Plone sites.

Desvantagens

Realizar o backup individual em cada arquivo.

Configuração

Diferentemente do Plone 3, o Plone 4 possui uma gama de novos arquivos, e uma nova estrutura de configuração, e as alterações para Mount Point ZEO, deverão ser realizadas no arquivo "base.cfg".

# vim base.cfg

No trecho do [zeoserver], aproximadamente na linha 81, como segue abaixo:

[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}


Acrescenta-se a diretiva "zeo-conf-additional" ao final da sessão, para incrementar o filestorage do ZEO, como abaixo.

[zeoserver]

eggs = tempstorage

zeo-conf-additional =

path ${buildout:directory}/var/filestorage/mp001BD.fs



path ${buildout:directory}/var/filestorage/mp002BD.fs



path ${buildout:directory}/var/filestorage/mp003BD.fs


%import tempstorage

name temporary storage for sessioning


No trecho do [client1], aproximadamente na linha 129, como segue abaixo:

[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}
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}


Acrescenta-se a diretiva "zope-conf-additional" ao final da sessão, para incrementar o filestorage do ZEO, como abaixo.

[client1]

zope-conf-additional =
           
          mount-point /mp001bd
          cache-size 5000
          
              name mp001bd
              server ${buildout:zeo-address}
              storage mp001bd
              var ${buildout:directory}/var
                 
         
          
         
          mount-point /mp002bd
          cache-size 5000
           
              name mp002bd
              server ${buildout:zeo-address}
              storage mp001bd
              var ${buildout:directory}/var
                 
         
          
         
          mount-point /mp003bd
          cache-size 5000
           
              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
         


Salve feche o arquivo, e execute o buildout novamente, e a sequência seguinte:

# ./bin/buildout -v -t 30
# ./bin/buildout -v -t 30
# ./bin/plonectl stop
# ./bin/plonectl start


Agora, no navegador:
  1. Acesse: http://ip.do.serv:8101/manage
  2. Entre com o usuário e senha (admin e admin);
  3. Localize a combobox com o texto ATContentTipes tool;
  4. Nesta combobox, selecione ZODB Mount Point;
  5. Na página seguinte: Add ZODB Mount Points, selecione os Mount Points desejados e clique no botão: Create selected mount points;
  6. Com esta ação será criado um diretório na raiz do ambiente, o qual mapeia a estrutura configurada anteriormente.

Obs.: A opção restart, pode não funcionar adequadamente, por esta razão, recomendo executar o stop e start, nos passos 3 e 4.

Se por ventura não aplicar a mudança, ou demorar demasiadamente, suba uma das instancias em modo foreground:

./bin/client1 fg

Página anterior     Próxima página

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

Clonagem de Hardware Hotline em Software Livre

Explorando o wget

Comando sudo - instalação e configuração

Instalação Plone 2.5.5 com módulos customizados

Vim com corretor ortográfico em pt_BR/es_ES/en_US

Leitura recomendada

Instalação básica do Plone 3 com Buildout no Linux

Instalando um servidor Zope/Plone

Customizando o layout do plone

ZPT - Zope Pages Templates

Python - Brincando com arquivos

  
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