[plonegov-br] Erro na criação de site no Plone

Marcelo Buess mcbuess em gmail.com
Quarta Novembro 27 18:54:00 BRST 2013


Caro DJ Roger,

Não sou nenhum "expert" em Plone e muito menos em Linux, muito pelo
contrário.

O "1.0" mencionado é uma release de instalação que o Ricardo Brito fala em
seu blog (http://brito.blog.incolume.com.br/2013/11/idg-released.html).

A versão do Plone que está instalada na máquina é a 4.3.2.

A versão do Linux-Debian é a 7.2.

Como a área de comunicação social da SAE/PR está querendo adotar o Plone
para fazer seus sites e aqui não temos NINGUÉM que conheça essa ferramenta
(muito menos Linux) e no portal da "Identidade Digital de Governo", onde
foi disponibilizado um "passo-a-passo" de como fazer a instalação
utilizando um "site modelo" não ter um passo-a-passo minucioso para leigos
(no caso das dependências do SO, do Plone, etc) optamos por fazer a
instalação seguindo o blog do Ricardo Brito que, apesar de tudo, ele é "da
casa" e está um pouco mais detalhado.

Na primeira instalação que fizemos ocorreu tudo perfeito (seguindo blog do
Brito). Alguém, da área de comunicação social, fez alguma "besteira" (que
não sabem o que foi) que o site não ficou como tínhamos deixado, ou seja,
em funcionamento. Optamos então por reinstalar tudo do zero, inclusive o SO.

Fiz um passo-a-passo (arquivo anexo) de instalação (seguindo o blog do
Brito) com todos os comandos executados (caso alguma outra pessoa daqui do
trabalho quisesse utilizar em uma outra instalação). Veja o que esquecemos
de fazer alguma coisa e, por favor, nos informe.

O nosso arquivo "buildout.cfg" está conforme abaixo:
"...
[buildout]
extends =
    buildout.cfg
#    buildout.d/autostart.cfg
    buildout.d/buildout-infra-1379941724.cfg
#    buildout.d/chameleon.cfg
    buildout.d/environment-vars.cfg
#    buildout.d/logrotate.cfg
#    buildout.d/maintenance.cfg
#    buildout.d/staticlxml.cfg
    buildout.d/settings.cfg
    buildout.d/tuning-buildout.cfg
    buildout.d/unicode.cfg
    buildout.d/zeoclients.cfg
    buildout.d/zeoserver.cfg

blobs-dir=${buildout:directory}/var/blobstorage
backups-dir=${buildout:directory}/var/backups

download-cache= cache-buildout/download
eggs-directory= cache-buildout/eggs
extends-cache = cache-buildout/extends
zope-directory= cache-buildout/zope

parts +=
    instance3
    cmds

eggs +=
    brasil.gov.portal

[hosts]
supervisor = 10.211.2.65
haproxy    = 10.211.2.65
instance   = 10.211.2.65
zeoserver  = 10.211.2.65

[ports]
haproxy     = 8020
supervisor  = 8021
zeoserver   = 8022
zeomonitor  = 8023
instance    = 8024
instance1   = 8025
instance2   = 8026
instance3   = 8027

[users]
os = plone

[cmds]
recipe = plone.recipe.command
command =
    sed -i '/127.0.0.1:/d; /instance/d; /${hosts:instance}:/d'
${buildout:directory}/etc/templates/haproxy.conf.in
    sed -i '/zope_i18n_compile_mo_files false/d'
${buildout:directory}/parts/instance1/etc/zope.conf
    sed -i '/zope_i18n_compile_mo_files false/d'
${buildout:directory}/parts/instance2/etc/zope.conf
    sed -i '/zope_i18n_compile_mo_files false/d'
${buildout:directory}/parts/instance3/etc/zope.conf
    echo "  server instance${ports:instance1}
${hosts:instance}:${ports:instance1} cookie p${ports:instance1} check
maxconn 2 rise 1" >> etc/templates/haproxy.conf.in
    echo "  server instance${ports:instance2}
${hosts:instance}:${ports:instance2} cookie p${ports:instance2} check
maxconn 2 rise 1" >> etc/templates/haproxy.conf.in
    echo "  server instance${ports:instance3}
${hosts:instance}:${ports:instance3} cookie p${ports:instance3} check
maxconn 2 rise 1" >> etc/templates/haproxy.conf.in

    chown -R ${users:os} ${buildout:directory}
#
    mkdir -pv ${buildout:backups-dir}
    chown -R ${users:os} ${buildout:backups-dir}
#
    mkdir -pv ${buildout:blobs-dir}/blobstorage_sae
    chown -R ${users:os} ${buildout:blobs-dir}/blobstorage_sae
update-command = ${cmds:command}

[supervisor]
programs =
    10 haproxy   (autostart=true  startsecs=10)
 ${buildout:directory}/bin/haproxy [ -f
${buildout:directory}/etc/haproxy.conf -db ]${users:os}
    10 zeo       (autostart=true  startsecs=10)  ${zeo:location}/bin/runzeo
 true  ${users:os}
    20 instance1 (autostart=true  startsecs=20)
 ${buildout:directory}/bin/instance1 [console]  true  ${users:os}
    20 instance2 (autostart=true  startsecs=20)
 ${buildout:directory}/bin/instance2 [console]  true  ${users:os}
    20 instance3 (autostart=true  startsecs=20)
 ${buildout:directory}/bin/instance3 [console]  true  ${users:os}
groups +=
    20 cluster zeo,instance1,instance2,instance3

[zeo]
monitor-address = ${ports:zeomonitor}
zeo-conf-additional =

    <filestorage sae_bd>
       path ${buildout:directory}/var/filestorage/sae_BD.fs
       blob-dir ${buildout:blobs-dir}/blobstorage_sae
    </filestorage>

[backup]
recipe = collective.recipe.backup
keep = 3
full = true
gzip = false
location = ${buildout:backups-dir}/backups
snapshotlocation = ${buildout:backups-dir}/snapshotbackups
additional_filestorages +=
    sae_BD

[instance]
zope-conf-additional +=

    <zodb_db sae_BD>
        mount-point /sae
        <zeoclient>
          name sae
          storage sae_bd
          cache-size 30MB
          server ${zeo:zeo-address}
          shared-blob-dir on
          blob-dir ${buildout:blobs-dir}/blobstorage_sae
          var ${buildout:directory}/var
        </zeoclient>
    </zodb_db>
#

[instance1]
<=instance
http-address = ${hosts:instance}:${ports:instance1}
icp-address = ${hosts:instance}:${ports:instance1}

[instance2]
<=instance
http-address = ${hosts:instance}:${ports:instance2}
icp-address = ${hosts:instance}:${ports:instance2}

[instance3]
<=instance
http-address = ${hosts:instance}:${ports:instance3}
icp-address = ${hosts:instance}:${ports:instance3}

..."

A instalação acaba sem nenhum erro, ou apenas com "warnings". Consigo
acessar várias páginas de administração:

- http://10.211.2.65:8020/haproxy-ping
- http://10.211.2.65:8021
- http://10.211.2.65:8023
- http://10.211.2.65:8020/haproxy-status
- http://10.211.2.65:8020/manage

Só não consigo abrir as páginas abaixo por não ter conseguido criar o site:
- http://10.211.2.65:8020/sae_idg/portal_sae
- http://10.211.2.65:8020/sae_idg/portal_sae/login_form
- http://10.211.2.65:8020/sae_idg/portal_sae/plone_control_panel

Desculpe o tamanho do e-mail.


=====================
Abraços,

Marcelo da Costa Buess
Telefone: +55 (61) 3411-4630
Celular: +55 (61) 9981-1097
Skype: marcelobuess
MsN: mcbuess em hotmail.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.interlegis.gov.br/pipermail/plonegov-br/attachments/20131127/099d74ee/attachment.htm 
-------------- Próxima Parte ----------
Após a instalação do Debiam executar os seguintes procedimentos:

1 - Instalar o programa de edição "vim" (caso não esteja instalado)
	# aptitude install vim

2 - Colocar um IP fixo na máquina
	# cd /etc/network
	# vim interfaces
	Colocar um "#" (lasanha) para comentar a linha:
	#iface eth0 inet dhcp
	Incluir as seguintes linhas no final do arquivo
		#interface eth0
		auto eth0
		iface eth0 inet static
		address 10.211.2.65
		netmask 255.255.0.0
		broadcast 10.211.255.255
		gateway 10.211.0.1

	Após a inclusão das linhas acima reativar a placa de rede com o comando
		# /etc/init.d/networking restart
	Se demorar muito reinicie a máquina com o comando
		# shutdown -r now

3 - Editar o arquivo " resolv.conf" para verificar/incluir DNS
	# vim /etc/resolv.conf
		domain presidencia.gov.br
		search presidencia.gov.br
		nameserver 10.1.2.5
		nameserver 10.1.2.20
		nameserver 10.1.2.4
		nameserver 10.1.2.135

4 - Verificar se a máquina está acessando a internet
	# cd /
	# wget -S --delete-after http://www.plone.org/
	NOTA: O "-S" indica que o comando "wget" deverá retornar os cabeçalhos de conexão

	Caso não consiga acessar a internet executar os seguintes comandos:
	# export http_proxy=http://<endereco>:<porta>
	# export https_proxy=http://<endereco>:<porta>
	# export ftp_proxy=http://<endereco>:<porta>
	Ou executar os procedimentos do passo "5" (abaixo)

5 - Editar o arquivo ".bashrc" do usuário ROOT para modificar a visualização dos comandos
	# cd /root
	# vim .bashrc
	Tecle a letra "i" para iniciar a digitação.
		 alias ls='ls --color'
		 alias ll='ls -l'
		export TMOUT=0
		export HISTSIZE=100000
		export HISTFILESIZE=200000
		export HISTCONTROL=ignoredups
		export http_proxy=http://10.1.101.101:8080
		export https_proxy=http://10.1.101.101:8080
		export ftp_proxy=http://10.1.101.101:8080
	Após terminas tecle "Esc" e ":x" para salvar/sair do arquivo
	Execute o comando abaixo para que o sistema reconheça as novas entradas
		# source .bashrc

6 - Editar o arquivo "sources.list" antes de fazer a atualização do sistema, conforme abaixo
	# 
	# deb cdrom:[Debian GNU/Linux 7.2.0 _Wheezy_ - Official amd64 DVD Binary-1 20131012-14:05]/ wheezy contrib main
	# deb cdrom:[Debian GNU/Linux 7.2.0 _Wheezy_ - Official amd64 DVD Binary-1 20131012-14:05]/ wheezy contrib main

	# Line commented out by installer because it failed to verify:
	deb http://security.debian.org/ wheezy/updates main contrib

	# Line commented out by installer because it failed to verify:
	deb-src http://security.debian.org/ wheezy/updates main contrib

	# wheezy-updates, previously known as 'volatile'
	# A network mirror was not selected during install.  The following entries
	# are provided as examples, but you should amend them as appropriate
	# for your mirror of choice.
	#
	deb http://ftp.debian.org/debian/ wheezy-updates main contrib
	deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib

	#
	# Listas baixadas do site do Ricardo Brito
	#
	deb http://debian.pop-sc.rnp.br/debian/ wheezy main
	deb-src http://debian.pop-sc.rnp.br/debian/ wheezy main

	deb http://security.debian.org/ wheezy/updates main
	deb-src http://security.debian.org/ wheezy/updates main

	# wheezy-updates, previously known as 'volatile'
	deb http://debian.pop-sc.rnp.br/debian/ wheezy-updates main
	deb-src http://debian.pop-sc.rnp.br/debian/ wheezy-updates main 

	deb http://ftp.br.debian.org/debian/ wheezy main
	deb-src http://ftp.br.debian.org/debian/ wheezy main

	deb http://security.debian.org/ wheezy/updates main
	deb-src http://security.debian.org/ wheezy/updates main

	# wheezy-updates, previously known as 'volatile'
	deb http://ftp.br.debian.org/debian/ wheezy-updates main
	deb-src http://ftp.br.debian.org/debian/ wheezy-updates main

	deb http://linorg.usp.br/debian/ wheezy main
	deb-src http://linorg.usp.br/debian/ wheezy main

	deb http://security.debian.org/ wheezy/updates main
	deb-src http://security.debian.org/ wheezy/updates main

	# wheezy-updates, previously known as 'volatile'
	deb http://linorg.usp.br/debian/ wheezy-updates main
	deb-src http://linorg.usp.br/debian/ wheezy-updates main

7 - Atualizando o Sistema Operacional
	# aptitude update && aptitude upgrade

8 - Instalando as dependências do Sistema Operacional
	# aptitude install -y autoconf automake autotools-dev build-essential bzip2 curl git html2text libbz2-1.0 libfreetype6-dev 
	# aptitude install -y libgif-dev libjpeg62-dev libjpeg-dev libldap2-dev libmemcache-dev libncurses5-dev libpcre3-dev libpng12-dev libreadline5-dev libsasl2-dev
	# aptitude install -y libssl-dev libxml2-dev libxslt1.1 libxslt1-dev lynx memcached ntpdate pdftohtml pidentd pkg-config 
	# aptitude install -y poppler-utils postgresql-8.4 postgresql-8.4-slony1 postgresql-contrib-8.4 postgresql-server-dev-8.4 ppthtml python-celementree python-cjson python-dev python-imaging 
	# aptitude install -y python-ldap python-lxml python-psycopg2 python-setuptools rsync subversion sudo unzip wget wv zlib1g-dev zlib-bin zlibc poppler-utils

	PS: Se desejar pode-se executar todos de uma só vez, colocando "aptitude install -y" mais todas dependências na mesma linha

9 - Instalando dependências do Python
	# aptitude install build-essential zlib1g-dev zlibc libncurses5-dev libsqlite0-dev libreadline-dev tk-dev

10 - Criado repositório para downloads
	# cd /
	# mkdir downloads
	# cd /downloads
	Copiado para este diretório os arquivos "Python-2.7.6.tgz" e "setuptools-0.6c11.tar.gz"

11 - Compilando e instalando o Python
	# cd /downloads
	# tar xvzf Python-2.7.6.tgz
	# cd Python-2.7.6
	# ./configure --prefix=/opt/Python-2.7.6
	# make
	# sudo make install

12 - Instalando dependências do Python
	# cd /downloads
	# tar xvfz setuptools-0.6c11.tar.gz
	# cd setuptools-0.6c11
	# sudo /opt/Python-2.7.6/bin/python2.7 setup.py install

13 - Obtendo o IDG via o comando "git"
	# git clone https://github.com/plonegovbe/brasil.gov.portal.git /opt/env-buildout/prod/8060-idg-'date +%s'
	#cd /opt/env-buildout/prod/8060-idg-1384863552
	# git checkout 1.0

14 - Obtendo o IDG via download (CASO O PASSO ACIMA TENHA DADO PROBLEMAS)
	# wget https://github.com/plonegovbr/brasil.gov.portal/archive/1.0.tar.gz
	# tar xvzf 1.0.tar.gz -C /opt/env-buildout/prod/8060-idg_1.0-`date +%s`

15 - Obtendo o arquivo de configuração do IDG
	# wget http://pastebin.com/raw.php?i=9ms4XEcs -O buildout-idg-1384106296.cfg

16 - Instalando o "VirtualENV"
	# /opt/Python-2.7.6/bin/easy_install virtualenv==1.8.4

17 - Criando a máquina virtual para o site
	1) # /opt/Python-2.7.6/bin/virtualenv-2.7 py27
	2) # git clone https://github.com/britodfbr/p431-buildout.d.git buildout.d
	3) # git clone https://github.com/britodfbr/p431-etc.git etc
	4) # mkdir -pv cache-buildout/{download,extends}
	5) # ./py27/bin/python bootstrap.py -c buildout-idg-1384106296.cfg
	6) # ./bin/buildout -Nt 20 -c buildout-idg-1384106296.cfg	(EXECUTAR O COMANDO 2 VEZES)

	PS-1: Se ocorrer algum erro na execução fazer o seguinte:
		Dentro da pasta "/opt/env-buildout/prod/8060-idg_1.0-1384865928" apagar as seguintes pastas:
			- cache-buildout
			- parts
		Criar pasta com o seguinte comando:
			- mkdir cache-buildout
		Recomeçar do passo "4)" acima
		Caso o erro continue ocorrendo proceda conforme o "PS-2"
	PS-2: Outra forma de corrigir os problemas é seguindo os passos abaixo:
		- Ao dar erro verifique qual o arquivo está dando problema, algo semelhante à:
			root em sae-plone:/opt/env-buildout/prod/8060-idg_1.0-1384865928# ./bin/buildout -Nt 20 -c buildout-idg-1384106296.cfg 
			Setting socket time out to 20 seconds
			Develop: '/opt/env-buildout/prod/8060-idg_1.0-1384865928/.'
			warning: no previously-included files matching '*.pyc' found anywhere in distribution 
			lxml: Static build requested. 
			Unused options for buildout: 'package-src' 'zope-directory' 'package-min-coverage' 'package-pep8-ignores'. 
			Updating _mr.developer. 
			Updating zeo. 
			Installing instance. 
			Getting distribution for 'lxml==2.3.6'. 
			Building lxml version 2.3.6. 
			Building without Cython. 
			ERROR: /bin/sh: 1: xslt-config: not found ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt In file included from src/lxml/lxml.etree.c:239:0: src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory compilation terminated. error: Setup script exited with error: command 'gcc' failed with exit status 1 An error occurred when trying to install lxml 2.3.6.
		- No exemplo acima o arquivo problemático é o "lxml-2.3.6.tar.gz"
		- Vá para o diretório "/opt/env-buildout/prod/8060-idg-1384963913# cd cache-buildout/download/"
		- Localize o arquivo com problemas (no caso "lxml-2.3.6.tar.gz")
		- Renomeie o arquivo para "lxml-2.3.6.tar.gz - OLD"
		- Execute novamento o comando do passo "6)"
		Estes passos deverão ser feitos até que não dê mais nenhuma mensagem de erro.

18 - Criado um usuário de serviço para o PLONE
	# useradd plone –s /sbin/nologin

19 - Ativando o serviço do PLONE
	# ./bin/supervisord
	# ./bin/supervisorctl status
	# watch ./bin/supervisorct status (ESTE COMANDO VISUALIZA OS SERVIÇOS EM TEMPO REAL)

20 - Derrubando o serviço do PLONE
	# ./bin/supervisorctl shutdown



Mais detalhes sobre a lista de discussão PloneGov-BR