Manual do Administrador do Portal Modelo

Este documento detalha de forma técnica o processo de instalação, configuração e publicação do Portal Modelo 3. Ele pressupõe que o usuário tenha conhecimentos técnicos sobre o ambiente GNU/Linux e sobre o funcionamento de sistemas web.

Ambiente de Trabalho

O Portal Modelo pode ser instalado em qualquer sistema operacional GNU/Linux. Antes de instalá-lo é necessária a instalação das bibliotecas e dependências no sistema operacional e verificar se o sistema atende os requisitos mínimos para a instalação do software.

Antes de executar o instalador é preciso ter certeza de ter instalado todas as bibliotecas básicas que são requeridas. Algumas bibliotecas de desenvolvimento são necessárias para a montagem do ambiente, elas dependem de cabeçalhos (headers *.h) para a compilação. Não adianta instalá-las após rodar a instalação do Portal Modelo, pois esse procedimento não habilitará as funcionalidades correspondentes e, nesse caso, será preciso rodar novamente a instalação do portal.

Pré-requisitos para a Instalação

A seguir serão detalhadas as bibliotecas e demais dependências para a instalação do Portal Modelo 3 nas principais distribuições GNU/Linux.

Utilitários para o Sistema

As dependências básicas do sistema operacional para a compilação dos pacotes do Portal Modelo 3 são as seguintes:

  • gcc
  • g++ (gcc-c++)
  • GNU Make
  • GNU tar
  • patch
  • gunzip e bunzip2
  • posix-compliant /bin/sh
  • curl ou wget

Bibliotecas Requeridas

A instalação está baseada em nomes de pacotes do GNU/Linux Debian ou Ubuntu. Os pacotes equivalentes para sistemas baseados em RPM (Redhat, CentOS, Fedora) seguem na sub-seção 3.2.2.2 adiante.

Requerido para a Construção com o Python 2.7.x

As dependências requeridas em sistemas baseados em pacotes DEB são:

  • python-dev
  • build-essential
  • libssl-dev
  • libz-dev
  • libjpeg-dev
  • libxml2-dev
  • libxslt1-dev
  • libldap-dev
  • zlib1g-dev
  • libsasl2-dev
  • libfreetype6-dev
  • libbz2-dev
  • libreadline-dev
  • python-imaging
  • python-setuptools
  • python-docutils
  • xlhtml
  • xpdf
  • xsltproc
  • ppthtml
  • pdftohtml
  • poppler-utils
  • wv
  • unzip
  • automake
  • autoconf

Equivalentes RPM (RedHat, CentOS, Fedora)

As dependências requeridas em sistemas baseados em pacotes RPM são:

  • autoconf
  • automake
  • compat-openldap
  • curl-devel
  • cyrus-sasl-lib
  • expat-devel
  • gcc
  • gcc-c++
  • gettext-devel
  • groff
  • libtool
  • libxslt
  • openldap-devel
  • openssl-devel
  • pkgconfig
  • python-devel
  • python-setuptools
  • zlib-devel
  • make
  • bzip2-devel
  • libpng-devel
  • libtiff-devel
  • libicu-devel
  • libxml2-devel
  • libxslt-devel
  • libsasl2-modules
  • readline-devel
  • freetype-devel
  • libjpeg-devel
  • python-imaging
  • python-docutils
  • xlhtml
  • xpdf
  • poppler-utils
  • wv-devel
  • wv
  • unzip

LibXML2/LibXSLT

Alguns sistemas, normalmente os mais antigos, tem bibliotecas libxslt/libxml inadequadas para a instalação do Portal Modelo. Não há razão para instalar bibliotecas antigas.

O Portal Modelo por padrão querer a versão da libxml >= 3.2.2 e a libxslt versão 1.1.26. Neste caso, é preciso usar a opção --static-lxml para que o instalador possa compilar de forma estática essas bibliotecas.

Instalação Local e com o Usuário root

Para instalar o Portal Modelo 3 é necessário baixar a última versão do software disponível no repositório de arquivos do Interlegis, acessando: http://arquivos.interlegis.leg.br/interlegis/produtos/portalmodelo/versao3.0/

Primeiro é necessário descompactar o instalador utilizando o seguinte comando:

$ tar -xzvf PortalModelo-3.0x-UnifiedInstaller.tgz

Para qualquer uma das instalações é preciso acessar o diretório recém descompactado, com o comando:

$ cd PortalModelo-3.0x-UnifiedInstaller

Obs.: Substituir o x pela versão corrente do software.

Opções de Instalação

Usar: [sudo] install.sh [opções] standalone|zeo

  • Standalone: Instalação contendo uma única instância do Zope, ideal para instalação onde a aplicação e o ZODB fiquem no mesmo servidor (Sem o uso de replicação e nem o uso de balanceamento de carga).
  • ZEO: Instalação contendo duas instâncias do Zope, ideal para instalação onde deseja-se distribuir a carga da aplicação em N instâncias e o banco de dados ZODB separado, inclusive com o balanceamento de carga.

Instalação Local (Sem usar o root)

Se a instalação for executada sem o uso do super usuário root então a base de instalação (Python/Zope/Plone?) será feita em $HOME/PortalModelo-3.0x, onde $HOME é o diretório home do usuário que estiver rodando o comando. Porém este diretório pode ser alterado passando o diretório desejado para instalação na opção --target durante a execução do comando.

Para uma instalação básica com uma única instância do Zope pode-se executar o seguinte comando:

$ ./install.sh standalone

Para uma instalação do Portal Modelo utilizando um ZEO Cluster (1 ZEO server + 2 clients) é preciso executar o seguinte comando:

$ ./install.sh zeo

Instalação Local (Usando o root)

Se a instalação for executada utilizando o super usuário root então a base de instalação (Python/Zope/Plone?) será feita em /var/interlegis/PortalModelo-3.0.x.

Para uma instalação básica com uma única instância do Zope executar o seguinte comando:

$ sudo ./install.sh standalone

Ou sem o uso do comando sudo:

$ su; ./install.sh standalone

Para uma instalação do Portal Modelo utilizando um ZEO Cluster (1 ZEO server + 2 clients) executar o seguinte comando:

$ sudo ./install.sh zeo

Ou sem o uso do comando sudo:

$ su; ./install.sh zeo

O utilitário sudo é necessário para executar uma instalação com permissão de super usuário root. Este utilitário de segurança está incluído na maioria das recentes ferramentas de administradores Unix/Linux? e é facilmente instalado em outros sistemas operacionais. Em sistemas BSD (ou baseados nele), este utilitário pode ser instalado através da aplicação ports.

Opções Disponíveis para o Comando de Instalação

A tabela abaixo contém todas as opções disponíveis que podem ser usadas junto com o comando de instalação do Portal Modelo.

--target=pathname
Utilizado para especificar o caminho completo onde se deseja efetuar a instalação. Por padrão será instalado em /var/interlegis/PortalModelo-3.0x para usuário root, e $HOME/PortalModelo-3.0x para usuário comum.
--instance=instance-name
Usado para especificar o nome da instância que será criada. Este será o nome do diretório criado dentro da opção target. O padrão é zinstance para a instalação standalone e zeocluster para a instalação ZEO.
--clients=client-count
Usado com a instalação zeo, para poder especificar o número de clientes Zope que deseja criar. O padrão é 2 clientes.
--daemon-user=user-name
Em uma instalação como usuário root, pode-se definir um usuário existente no sistema no qual este poderá executar o processo da instância. O padrão é plone_daemon, este parâmetro é ignorado em instalações que não sejam executadas com o usuário root.
--owner=owner-user
Usado para definir o proprietário da instalação. Por padrão é plone_buildout. Este é um ID que pode executar o buildout ou fazer alterações em produtos. Ignorado em uma instalação que não seja executada com o usuário root.
--group=group-name
Define o grupo do sistema que terá permissões para executar o buildout ou efetuar alterações em produtos. Ignorado em uma instalação que não seja executada com o usuário root.
--with-python=</caminho/absoluto/para/o/python2.7>
Caso já tenha uma instalação de Python2.7 ou um virtualenv criado e que deseja-se utilizar para a instalação do Zope/Plone?, poderá ser especificado aqui. Este Python terá que ter sido criado com suporte para libz e libjpeg e incluir a biblioteca de imagens do Python (Pillow, PIL, etc).
--build-python
Caso não tenha um Python no sistema adequado para a instalação, se essa opção for utilizada o instalador irá compilar um novo Python. Nota: É requerido o acesso à internet para baixar o código fonte do Python.
--password=InstancePassword
Se não for especificado, então o sistema irá gerar uma senha randômica e informá-la ao final da instalação.
--libjpeg=<auto|yes|no>
Substitui a determinação automática de instalação da biblioteca libjpeg.
--readline=<auto|yes|no>
Opcional. Instala uma biblioteca readline local. Somente é necessário em plataformas com biblioteca ímpares como OS X Leopard, por exemplo.
--without-ssl
Opcional. Permite rodar o buildout sem a necessidade de verificar se existe uma instalação da biblioteca SSL.
--static-lxml
Força uma compilação estática das bibliotecas libxml e libxslt. É requerido o acesso à internet para o download dos componentes.

Portas

O Portal Modelo usa o servidor web do Zope que roda nas portas padrão abaixo:

  • Standalone:
    • O servidor Zope do Portal Modelo roda por padrão na porta 8180
      Editar o arquivo buildout.cfg e rodá-lo para alterar esta porta.
  • ZEO Cluster:
    • ZEO server roda na porta 8100
    • ZEO client1 roda na porta 8180
    • ZEO client2 roda na porta 8181

    • Editar o arquivo buildout.cfg e rodá-lo para alterar estas portas.

Instruções Pós-instalação

Após finalizar a instalação, o usuário será capaz de abrir no navegador a interface de administração do Portal Modelo acessando no navegador web o endereço http://localhost:8180. Se a instalação for feita em um servidor remoto, basta substituir o localhost pelo endereço IP do servidor.

Essa página oferece opções para criar um novo site Plone (ou Portal Modelo) e usar a Interface de Administração do Zope (ZMI) para controles de baixo nível. Para acessá-la é necessário usar a senha de administração fornecida durante a instalação, que também está armazenada no arquivo $HOME/InstanciaPortalModelo/adminPassword.txt.

Para alterar a senha de administrador, clique no link “Senha” no http://localhost:8080/acl_users/users/manage_users.

Nota 1: A alteração da senha do administrador é uma recomendação, devendo ser usado na nova senha uma mistura de caracteres maiúsculos, minúsculos, numéricos e especiais. Ela não será refletida no arquivo adminPassword.txt, que é gerado unicamente no ato da instalação do Portal Modelo.

Nota 2: É fortemente recomendado o uso de senhas fortes (no mínimo 10 dígitos de uma mistura de caracteres maiúsculos, minúsculos, numéricos e especiais) também para cada um dos usuários que serão criados no portal.

Criando Novos Portais

Para adicionar um novo Portal Modelo na instância de Zope, basta clicar o botão Add Plone Site que está localizado no canto superior direito da ZMI. No campo Identificador de caminho é preciso escolher o nome do portal que será acessível a partir da / (raiz) do Zope no navegador. Na opção Complementos selecionar o Portal Modelo e clicar o botão Criar site Plone. Este processo precisa ser realizado a cada vez que for necessário criar um novo Portal Modelo.

Instruções de Backup (Cópia de Segurança)

A forma mais prática de fazer backup do portal é efetuar a cópia do diretório de instalação completo, caso a instalação tenha sido efetuada utilizando o usuário do sistema então é preciso copiar o diretório $HOME/PortalModelo-3.0x, ou o diretório /var/interlegis/PortalModelo-3.0x se a instalação foi efetuada com o usuário root.

Ou ainda, caso tenha-se alterado o diretório de instalação deverá ser copiado o mesmo diretório que foi informado na opção --target do comando de instalação.

Em qualquer um dos casos acima, é necessário:

Antes necessita-se parar o Zope com o comando stop (em cada instância, se a instalação foi feita com zeo). Por exemplo, em uma instalação standalone, estando dentro do diretório zinstance rodar:

$ ./bin/plonectl stop

Fazer o backup com o seguinte comando, considerando o diretório corrente onde foi instalado o portal na home do usuário:

$ tar -zcvf PortalModelo-backup.tgz $HOME/PortalModelo-3.0x

É possível efetuar um backup sem que seja necessário parar o serviço do Zope. Para isso é necessário editar o arquivo buildout.cfg e adicionar um novo produto, o trecho de código abaixo deve ser adicionado logo após o parâmetro parts, localizado na seção [buildout].

parts =
     …
     backup
     backup-diario

[backup]
recipe = collective.recipe.backup

[backup-diario]
recipe = z3c.recipe.usercrontab
times = 0 3 * * 0-6
command = ${buildout:directory}/bin/backup

A utilização do trecho acima, irá agendar no crontab do sistema operacional uma linha para a execução do script bin/backup que estará localizado dentro do diretório da instância (ex. $HOME/PortalModelo-3.0x/zinstance/bin/backup).

Nota: Os trechos de configuração acima devem ser utilizados apenas se estiver executando uma instalação standalone, quando executada a instalação zeo estes itens de manutenção já são instalados automaticamente no servidor.

Desinstalando o Portal Modelo

É necessário primariamente parar o Plone com o comando:

$ ./plonectl stop

Remover o diretório de instalação $HOME/PortalModelo-3.0x ou /var/interlegis/PortalModelo-3.0x se a instalação foi efetuada com o usuário root. Ou no caso de ter sido alterado o local de instalação, deve ser removido o mesmo caminho que foi informado durante a instalação na opção --target. Ex.:

$ rm -rf $HOME/PortalModelo-3.0x

Executar o comando crontab -r para limpar o crontab do servidor. Só fazer isso caso tenha certeza de que não tenha adicionado nada manualmente no serviço de cron do servidor, caso contrário, é sugerido que seja editado diretamente o cron do sistema operacional com o comando:

$ sudo crontab -e

Publicando o Portal Modelo na Web

O Zope já vem com um servidor web próprio. Apesar disso, não é aconselhável publicá-lo diretamente na web por razões de performance e falta de cache (camada de aceleração). Para a publicação do Portal Modelo na web, é fortemente recomendado o uso de um servidor web na frente do portal, servindo como um proxy reverso, com a opção de cache habilitada. A seguir estão descritas duas opções de configuração com o servidor web Apache e com o Nginx.

Apache

Antes de configurar o servidor Apache é necessário habilitar os módulos rewrite e proxy, o que pode ser feito com os seguintes comandos:

$ sudo a2enmode rewrite
$ sudo a2enmode proxy

Estando o servidor Apache instalado e com os módulos habilitados, deverá ser criado um arquivo no diretório /etc/apache2/sites-available onde o nome desse arquivo seja o endereço do portal, nesse exemplo será usado o nome exemplo.leg.br.conf.

O conteúdo do arquivo exemplo.leg.br.conf deverá ser algo como:

<VirtualHost *:80>
    ServerName exemplo.leg.br
    RewriteEngine on
    RewriteRule ^/(.*) http://localhost:8180/VirtualHostBase/http/exemplo.leg.br:80/portal/VirtualHostRoot/$1 [L,P]
    <Directory />
        AllowOverride None
        Order Allow,Deny
        Allow from all
    </Directory>
</VirtualHost>

É preciso alterar também o arquivo proxy.conf, na seção <Proxy *> alterar para que fique como a seguinte configuração:

<Proxy *>
    AddDefaultCharset off
    Order allow,deny
    Allow from all
</Proxy>

O último passo é habilitar a configuração do site no Apache e reiniciar o serviço, o que pode ser feito com os seguintes comandos:

$ sudo a2ensite exemplo.leg.br
$ sudo service apache2 restart

Nginx

Estando com o servidor Nginx já instalado e devidamente configurado, é preciso apenas editar o arquivo de configuração do Nginx e adicionar a seguinte regra:

server {
    server_name exemplo.leg.br;
    listen 80;
    location / {
    rewrite ^/(.*)$ /VirtualHostBase/http/exemplo.leg.br:80/portal/VirtualHostRoot/$1 break;
    proxy_pass http://127.0.0.1:8180;
    }
}

Voltar para o ProjetoPortalModelo

Última modificação 5 anos atrás Última modificação em 13/02/2015 19:38:52
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.