[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