Ir para o conteúdo

 Voltar a Manual de In...
Tela cheia

4. Componentes de Software

28 de Maio de 2015, 10:48 , por Israel Costa - | 2 Pessoas seguindo este artigo.
Visualizado 20747 vezes

Os arquivos disponíveis para instalação do SEI são os seguintes:

SEI-Fontes-<VERSÃO>.zip
SEI-BD-MySQL-<VERSÃO>.zip
SEI-BD-SqlServer-<VERSÃO>.zip
SEI-BD-Oracle-<VERSÃO>.zip
SEI-Novidades-<VERSÃO>.pdf
SEI-Instalacao-<VERSÃO>.pdf
SEI-Atualizacao-<VERSÃO>.pdf
SEI-Web-Services-<VERSÃO>.pdf
SEI-Publicacao-<VERSÃO>.pdf
SEI-Digitalizacao-Maio-2012.pdf
SEI-Arquitetura-Março-2015.pdf

Eles serão necessários ao longo da instalação do SEI e deverão ser copiados para os respectivos servidores conforme for necessário sua utilização.
Outra dica importante é sempre certificar que o repositório do gerenciador de pacotes do OS esteja atualizado.

# yum -y update 

 4.1 MySQL Server (versão 5.*)

4.1.1 Instalar o gerenciador de banco de dados MySQL 5.*

# yum install mysql-server-5.*

4.1.2 Configure o Mysql para permite acesso remoto

Editar o arquivo de configuração do MySql localizado em /etc/my.cnf e adicionar a linha abaixo na sessão [mysqld]

# vi /etc/my.cnf

e adicionar/alterar o parâmetro conforme descrito na linha abaixo na sessão [mysqld].

bind-address=<IP_LOCAL_SERVIDOR_BD: 192.168.10.40>

4.1.3 Inicialização do banco de dados MySQL

# /usr/bin/mysql_install_db

4.1.4 Configurar a inicialização automática do serviço

# chkconfig --add mysqld
# chkconfig mysqld on
# service mysqld start

4.1.5 Validar instalação do MySQL

Verifique se o MySQL foi corretamente instalado e encontra-se em execução analisando a saída do comando abaixo.

# netstat -tln | grep 3306

Resultado esperado:

tcp    0    0 0.0.0.0:3306       0.0.0.0:*        LISTEN

Obs: Revise as regras de firewall aplicadas neste servidor (iptables, pfsense, etc.)

4.1.6 Restauração do Banco de Dados

As bases do SEI e do SIP estão disponíveis em 3 formatos: MySQL Enterprise Edition 5.5 (SEIBD-MySQL-v2.6.0.zip), Microsoft SQL Server 2008 (SEI-BD-SqlServer-v2.6.0.zip) e Oracle 11g(SEI-BD-Oracle-v2.6.0.zip).

Para os órgãos do Poder Executivo, existe uma base de dados pré-configurada, reduzindo consideravelmente todo o trabalho de implantação e parametrização do sistema para esses órgãos. Para maiores detalhes sobre essa instância do banco de dados, acesse o link Base de Dados para Poder Executivo

O formato utilizado nessa documentação será o MySQL, conforme discutido anteriormente.

4.1.7 Criar banco de dados do SEI e SIP

Conecte no MySQL localmente a partir do servidor de banco de dados

# mysql -uroot -p

4.1.8 Criar as bases de dados do SIP e SEI

mysql: create database sei; 
mysql: create database sip;

4.1.9 Descompactar scripts de criação e carga inicial do SEI e SIP

# unzip <ARQUIVOS_INSTALACAO_SEI>/SEI-BD-MySQL<VERSAO>.zip

4.1.10 Restaurar banco de dados do SIP e SEI

Obs: O formato de datas do banco deve estar no padrão “aaaa-mm-dd hh:mm:ss”.

# mysql -uroot -p sei < sei_<VERSAO>.sql
# mysql -uroot -p sip < sip_<VERSAO>.sql

4.1.11 Atualização da base de dados do SIP

Após a restauração, será necessário criar um usuário e senha para acesso e, com algum aplicativo cliente do banco (como o MySQL Workbench ou Microsoft SQL Server Management Studio), abrir a base do SIP e atualizar as tabelas de órgãos e sistemas com a sigla e descrição da instituição.

mysql: use sip;
mysql: update orgao set sigla='<SIGLA_ORGAO>', descricao='<NOME_ORGAO>' where id_orgao=0; 
mysql: update sistema set pagina_inicial='http://<IP_SERVIDOR_SIP>/sip' where sigla='SIP';
mysql: update sistema set pagina_inicial='http://<IP_SERVIDOR_SEI>/sei/inicializar.php', web_service='http://<IP_SERVIDOR_SEI>/sei/controlador_ws.php?servico=sip' where sigla='SEI';

4.1.12 Atualizar a tabela de órgãos do SEI

Abrir a base do SEI e atualizar a tabela de órgão:

mysql: use sei;
mysql: update orgao set sigla='<SIGLA_ORGAO>', descricao='<NOME_ORGAO>' where id_orgao=0;

Obs: A sigla do órgão utilizada na tabela de órgãos do SIP deve ser a mesma utilizada na tabela correspondente do SEI.

4.1.13 Criar usuários dos sistemas SEI e SIP

 mysql: CREATE USER 'sei_user'@'<MASCARA_IP_SERVIDOR_APP_SEI: 192.168.10.%>' IDENTIFIED BY '<PASSWORD_A_DEFINIR>';
 mysql: CREATE USER 'sip_user'@'<MASCARA_IP_SERVIDOR_APP_SIP: 192.168.10.%>' IDENTIFIED BY '<PASSWORD_A_DEFINIR>';

4.1.14 Liberar acesso às bases de dados

 mysql: GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'<MASCARA_IP_SERVIDOR_APP_SEI: 192.168.10.%>';
 mysql: GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'<MASCARA_IP_SERVIDOR_APP_SIP: 192.168.10.%>';

4.1.15 Testar permissões de acesso

Acessar o servidores de aplicação e teste se o acesso e máscaras foram definidas corretamente.

 # mysql -u sei_user -h <IP_SERVIDOR_BD> sei -p
 # mysql -u sip_user -h <IP_SERVIDOR_BD> sip -p

4.2 Apache Web Server (versão 2.2.*)

Todas as instalações descritas abaixo devem ser realizadas em plataforma 64 bits.

4.2.1 Instalar o servidor web Apache 2 e suas dependências

 # yum -y install httpd-2.2.*, OU
 # yum -y install httpd.x86_64 (para CentOS 6.6)

4.2.2 Instalar demais ferramentas necessárias

 # yum -y install openssl

4.2.3 Configurações adicionais do VirtualHost da aplicação

A seguintes configurações são sugestões para serem aplicadas às configurações do apache para o correto funcionamento e maior segurança ao SEI e SIP. Esse parâmetros precisão ser revisados pela equipe de infraestrutura e segurança de TI durante a implantação do sistema em ambiente de produção.

Criar o arquivo de configuração do VirtualHosts do Apache

 # vi /etc/httpd/conf.d/sei.conf


e editar o seguinte parâmetro, mudando para:

<VirtualHost *:80>

    DocumentRoot /var/www/html

    ServerAdmin admin@dominio.gov.br
    ServerName <ENDERECO_SERVIDOR_APLICACAO>

    DirectoryIndex index.php index.html
    IndexIgnore *

    HostnameLookups Off
    ServerSignature Off
    AddDefaultCharset iso-8859-1

    # Bloqueia acesso à qualquer arquivo ou diretório externo ao DocumentRoot
    <Directory />
        Order Deny,Allow
        Deny from all
        Options None
        AllowOverride None
    </Directory>

    # Configura opções padrões dos diretórios da aplicação
    <Directory /var/www/html >
        Options -ExecCGI -MultiViews -Includes -Indexes FollowSymLinks
        AllowOverride None

        Order Allow,Deny
        Allow from all
    </Directory>

    # Remove acesso direto ao arquivo de configuração do SEI
    <Directory /var/www/html/sei >
        <Files "ConfiguracaoSEI.php" >
            Order allow,deny
            Deny from all
        </Files>
    </Directory>

    # Remove acesso aos diretórios privados do SEI
    <Directory  ~ "/var/www/html/sei/(upload|ferramentas)" >
        Order allow,deny
        Deny from all
    </Directory>

    # Remove acesso direto ao arquivo de configuração do SIP
    <Directory /var/www/html/sip >
        <Files "ConfiguracaoSip.php" >
            Order allow,deny
            Deny from all
        </Files>
    </Directory>

    # Remove acesso aos diretórios privados do SIP
    <Directory /var/www/html/sip/upload >
        Order allow,deny
        Deny from all
    </Directory>

</VirtualHost>

4.2.4 Configurar a inicialização automática do serviço

 # chkconfig --add httpd
 # chkconfig httpd on
 # service httpd start

4.2.5 Validar instalação do Apache Web Server

Verifique se o Apache foi corretamente instalado e encontra-se em execução analisando a saída do comando abaixo.

 # netstat -tln | grep 80

 

Resultado esperado:

tcp        0      0 :::80                       :::*                        LISTEN

 

Obs: Revise as regras de firewall aplicadas neste servidor (iptables, pfsense, etc.)


 

4.3 Memcache (versão 3.0.*)

4.3.1 Instalar o serviço de cache Memcache e suas dependências

 
 # yum -y install memcached

4.3.2 Configurar a inicialização automática do serviço

 # chkconfig --add memcached
 # chkconfig memcached on
 # service memcached start

4.3.3 Validar instalação do Memcache

Verifique se o memcache foi corretamente instalado e encontra-se em execução analisando a saída do comando abaixo.

 # netstat -tln | grep 11211

 

Resultado esperado:

tcp     0    :::11211      :::*      LISTEN

 


 

4.4 PHP 5 (versão 5.3.*)

4.4.1 Instalar o PHP 5

# yum -y install php-5.3.*

4.4.2 Instalar dependências diversas exigidas pelas extensões do PHP

# yum install openssl libxml2 curl unzip gcc java-1.7.0-openjdk

<<PENDENTE: Instalar pacote de fontes do MS Windows>>

4.4.3 Instalar extensões do PHP exigidas pelo SEI e SIP

# yum -y install php-common php-cli php-pear php-bcmath php-gd php-gmp php-imap php-intl php-ldap php-mbstring php-mysql php-odbc php-pdo php-pecl-apc php-pspell php-zlib php-snmp php-soap php-xml php-xmlrpc php-zts php-devel php-pecl-apc-devel php-pecl-memcache php-calendar php-shmop 
# pecl install uploadprogress
# echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini

4.4.4 Reconfigurar parâmetros do PHP 5

Editar arquivo de configurações php.ini

# vi /etc/php.ini

E alterar os seguintes parâmetros:

Obs: Após definir o tamanho máximo permitido para os arquivos externos adicionados ao sistema (PDFs, DOCs, planilhas,...), será necessário configurar os valores post_max_size e upload_max_filesize, sendo que post_max_size deve ser ligeiramente maior que upload_max_filesize.
Além desta configuração no php.ini, também é necessário alterar o parâmetro SEI_TAM_MB_DOC_EXTERNO na tabela de parâmetros do SEI (ver seção “Tabela de Parâmetros”);

Nome do Parâmetro Valor
post_max_size <TAMANHO_MAXIMO_POST: 100M>
upload_max_filesize <TAMANHO_MAXIMO_UPLOAD: 90M>
default_charset "iso-8859-1"
session.gc_maxlifetime 43200
short_open_tag On
default_socket_timeout 60
 

4.5 Cliente de Banco de Dados (MySQL-Client)

# yum install mysql-5.1.*

4.5.1 Alternativa: Utilização do MS SQL Server

Utilizando SQL Server com PHP em Linux: MSSQL/FreeTDS (atenção - utilizar versão 0.91), ex.:

# wget ftp://fr2.rpmfind.net/linux/epel/5/x86_64/freetds-0.91-2.el5.x86_64.rpm
# rpm -ivh freetds-0.91-2.el5.x86_64.rpm
# yum install php-mssql

Obs: A extensão também está disponível no diretório de fontes em: sei/ferramentas/freetds-0.64-1.el6.rf.x86_64.rpm


 

4.6 Instalação do SEI e SIP

O arquivo SEI-Fontes-<VERSÃO DO SISTEMA>.zip contém os fontes PHP do SEI (Sistema Eletrônico de Informações), do SIP (Sistema de Permissões) e do framework PHP. Após a descompactação copiar o conteúdo para o diretório raiz do apache (normalmente /srv/www/htdocs ou /var/www/html) que deve ficar com a estrutura de diretórios abaixo:

  • infra_php
  • infra_js
  • infra_css
  • sei
  • sip

Caso a arquitetura de servidores possua instalações em separado para o SEI e o SIP, os diretórios infra_php, infra_js e infra_css devem ser instalados em todos os servidores. O diretório sei deve ser instalado apenas nos nós de aplicação do SEI e o diretório sip apenas no servidor do SIP. Nos outros servidores que formam a arquitetura da solução (Solr, JOD Converter, etc), não é necessário instalar nenhum dos diretórios descritos acima.

Diretórios “upload”

Criar os diretórios sei/upload e sip/upload que devem ter permissão de escrita para o usuário do servidor que estiver executando a aplicação PHP (no Linux usuário do apache). Recomenda-se que seja adicionada no servidor uma rotina para excluir durante a noite todos os arquivos destes diretórios.

Uma configuração indispensável que precisa ser realizada durante a configuração do Apache é remover qualquer acesso externo à esse diretório por questões de segurança. Essa configuração é realizada no VirtualHosts do Apache e será explicada com maiores detalhes nas próximas seções

4.6.1 Descompactar Código Fonte do SEI e SIP no Apache

# unzip <ARQUIVOS_INSTALACAO_SEI>/SEI-Fontes-<VERSÃO DO SISTEMA>.zip
# mv infra_css/ infra_js/ infra_php/ sei/ sip/ /var/www/html/

4.6.2 Configurar infra_php no include_path do PHP 5

Adicione ao include_path o caminho da pasta infra_php (/var/www/html/infra_php)
Editar arquivo de configurações php.ini

 # vi /etc/php.ini

E alterar os seguintes parâmetros:

include_path = ".:/php/includes:/var/www/html/infra_php" 

Obs: Para adicionar, separe com ':' (dois pontos) cada diretório já listado. Não esquecer de descomentar include_path caso esteja comentado.

4.6.3 Criar diretórios de Upload

Criar os diretórios sei/upload e sip/upload que devem ter permissão de escrita para o usuário do servidor que estiver executando a aplicação PHP (no Linux usuário do apache). Recomenda-se que seja adicionada no servidor uma rotina para excluir durante a noite todos os arquivos destes diretórios.

 # mkdir /var/www/html/sei/upload
 # chmod 640 /var/www/html/sei/upload
 # mkdir /var/www/html/sip/upload
 # chmod 640 /var/www/html/sip/upload

4.6.4 Liberar permissão de execução para wkhtmltopdf

Necessário liberar permissão de execução no arquivo wkhtmltopdf para o usuário do Apache

 # chown apache:apache /var/www/html/sei/ferramentas/wkhtmltopdf-amd64

Abrir o arquivo /var/www/html/sip/ConfiguracaoSip.php e alterar as seguintes entradas:

Parâmetro Valor
SIP
URL http://[IP_SERVIDOR_APP_SIP]/sip
SessaoSIP  
SiglaOrgaoSistema '<SIGLA_ORGAO>'
URL 'http://<IP_SERVIDOR_SIP>/sip'
PaginaLogin 'http://<IP_SERVIDOR_SIP>/sip/login.php'
SipWsdl 'http://<IP_SERVIDOR_SIP>/sip/controlador_ws.php?servico=wsdl'
BancoSIP
Servidor '<IP_SERVIDOR_BD>'
Porta '3306'
Banco 'sip'
Usuario 'sip_user'
Senha '<PASSWORD_BD_SIP>'
Tipo 'MySql'
HostWebService
Sip array('<IP_SERVIDOR_APP_SIP>', '<HOSTNAME_SERVIDOR_APP_SIP>')

Obs: Maiores informações sobre os demais parâmetros do SIP podem ser encontrados em 05. Configurações do Sistema.

4.6.6 Configurar parâmetros do SEI

Abrir o arquivo /var/www/html/sei/ConfiguracaoSEI.php e alterar as seguintes entradas:

Parâmetro Valor
Sei
URL http://[IP_SERVIDOR_APP_SEI]/sei
RepositorioArquivos <diretório/compartilhamento do repositório de arquivos (vide sessão 4.6)
SessaoSEI
SiglaOrgaoSistema '<SIGLA_ORGAO>'
SiglaSistema 'SEI'
PaginaLogin 'http://<IP_SERVIDOR_SEI>/sip/login.php'
SipWsdl 'http://<IP_SERVIDOR_SEI>/sip/controlador_ws.php?servico=wsdl'
BancoSEI
Servidor '<IP_SERVIDOR_BD>'
Porta '3306'
Banco 'sei'
Usuario 'sei_user'
Senha '<PASSWORD_BD_Sei>'
Tipo 'MySql'
Pesquisa
Banco true
Solr false
HostWebService
Sip array('<IP_SERVIDOR_APP_SEI>', '<HOSTNAME_SERVIDOR_APP_SEI>')

Obs: Maiores informações sobre os demais parâmetros do SEI podem ser encontrados em 05. Configurações do Sistema.

4.6.7 Alterar permissões dos arquivos de configuração

Para facilitar futuras atualizações de versões deixar os arquivos abaixo como somente-leitura:

 # chmod -w /var/www/html/sei/ConfiguracaoSEI.php
 # chmod -w /var/www/html/sip/ConfiguracaoSip.php

4.6.8 Reiniciar o Apache

 # service httpd restart

4.6.9 Testar instalação do SEI e SIP

Após isso a aplicação já estará acessível:

 http://<IP_SERVIDOR_APP_SEI>/sei
 http://<IP_SERVIDOR_APP_SIP>/sip

Obs: Usuário e senha inicial: teste.

4.7 Agendamentos

Os sistemas possuem alguns agendamentos de tarefas para manutenção. No SEI (menu Infra/Agendamentos) as tarefas agendadas são:

  • Remoção de dados temporários de estatísticas
  • Remoção de dados temporários de auditoria
  • Remoção de arquivos do repositório relativos a documentos externos excluídos
  • Envio de comando de otimização de índices para o Solr
  • Agendamento de teste para auxílio na configuração
  • Confirmação de publicações do veículo interno

E no SIP (menu Infra/Agendamentos):

  • Remoção de dados temporários de login
  • Agendamento de teste para auxílio na configuração
  • Replicação de todos os usuários para o SEI (desativado por padrão)
  • Replicação de todas as unidades da hierarquia para o SEI (desativado por padrão)

Se necessário, os horários de execução podem ser alterados através do menu Infra/Agendamentos evitando conflito com o horário de backup;

É necessário criar agendamentos nos servidores do SEI e do SIP para execução de hora em hora dos arquivos sei/AgendamentoTarefaSEI.php esip/AgendamentoTarefaSip.php, lembrando que tal script deverá ser executado o mesmo contexto de usuário do Apache por questões de segurança. Exemplo crontab Linux:

00 * * * * /usr/bin/php -c /etc/php.ini /var/www/html/sei/AgendamentoTarefaSEI.php 2>&1 >> /root/infra_agendamento_sei.log 

00 * * * * /usr/bin/php -c /etc/php.ini /var/www/html/sip/AgendamentoTarefaSip.php 2>&1 >> /root/infra_agendamento_sip.log 

As tarefas agendadas nos sistemas podem ser visualizadas através do menu Infra/Agendamentos. É possível disparar um agendamento manualmente através da ação“Executar Agendamento”. Todos os agendamentos, quando executados, gravam um registro na tabela de logs (menu Infra/Log). Caso ocorra um erro os detalhes serão gravados no log e um email será enviado para os endereços cadastrados no parâmetro EMAIL_ADMINISTRADOR (menu Infra/Parâmetros).

Em ambos os sistemas serão configurados agendamentos de teste. As únicas operações realizadas por estes agendamentos são a gravação de um registro no log e o envio de um email para os administradores. Após o funcionamento automático destes agendamentos (programados para executar de hora em hora) eles podem ser desativados através da ação “Desativar Agendamento” (menu Infra/Agendamentos no SEI e SIP).

4.8 Configuração de Acesso aos Web Services

A comunicação entre o SEI e o SIP ocorre via Web Services. Como estes sistemas costumam estar disponíveis na Web, existe uma configuração que permite especificar quais máquinas possuem permissão para chamar os serviços. Essa configuração é feita através da chave HostWebService existente nos arquivos ConfiguracaoSEI.php eConfiguracaoSip.php.

Cada sub-chave de HostWebService representa um conjunto de serviços disponíveis e pode conter mais de um valor, pois, muitas vezes, a máquina de origem (requisitante do serviço) é identificada no PHP pelo IP, outras vezes pelo nome da máquina. Já ocorreram casos em que a identificação ocorria de forma alternada: em uma chamada era o IP e na próxima o nome da máquina. Esta resolução de nome é diretamente influenciada pela configuração do ambiente de rede.

A configuração dos valores para as sub-chaves pode ser feita utilizando o caractere curinga “*”,

exemplos:

'HostWebService' => array(
'Replicacao' => array('10.100.10.5'), //sistema de RH ou deixar vazio ''
'Pesquisa' => array('*'), //qualquer máquina, NÃO RECOMENDADO colocar nós do SEI
'Autenticacao' => array('10.100.200.*', 'no*.trf4.jus.br') //IPs e nós do SEI)

Será processado apenas um curinga por valor cadastrado, por exemplo, o valor “*.100.50.*” não é válido. Se uma máquina tentar chamar um serviço e não estiver autorizada então um erro de “Acesso Negado” será lançado e gravado na tabela de logs informando qual máquina tentou acesso (menu Infra/Log).


 

4.9 Servidor NFS - Repositório de Arquivos (Opcional)

Este componente da infraestrutura é opcional, sendo utilizado como estratégia de compartilhamento dos arquivos entre diversos servidores web em uma infraestrutura de balanceamento de carga. Outras estratégias também podem ser utilizadas para prover acesso aos documentos externos do SEI, como criar um ponto de montagem em cada um dos servidores web referenciando um determinado volume em um storage.

Obs: Instalação descrita a seguir deve ser aplicada no servidor de arquivos NFS

4.9.1 Instalação do serviço de compartilhamento de arquivos NFS

 # yum -y install nfs-utils nfs-utils-lib

4.9.2 Configuração da inicialização automática dos serviços

 # chkconfig --add rpcbind
 # chkconfig rpcbind on 
 # service rpcbind start

 # chkconfig --add nfs
 # chkconfig nfs on 
 # service nfs start

4.9.3 Criar diretório de compartilhamento de arquivos

 # mkdir /var/nfs
 # chmod 777 /var/nfs

4.9.4 Exportar diretório de compartilhamento

Editar arquivo de exports do nfs

 # vi /etc/exports

E adicionar o conteúdo abaixo

 /var/nfs <FAIXA_IP_COM_ACESSO: 192.168.10.20/32>(rw,sync,no_subtree_check)

4.9.5 Atualizar compartilhamento NFS

 # exportfs -a

4.9.6 Reiniciar serviço NFS

 # /etc/init.d/nfs restart

Cliente NFS - Montagem de Volume de Arquivos Compartilhados (Opcional)

Este componente da infraestrutura é opcional, sendo utilizado como estratégia de compartilhamento dos arquivos entre diversos servidores web em uma infraestrutura de balanceamento de carga. Outras estratégias também podem ser utilizadas para prover acesso aos documentos externos do SEI como criar um ponto de montagem em cada um dos servidores web referenciando um determinado volume em um storage.

Obs: Instalação descrita a seguir deve ser aplicada nos servidor web Apache integrantes do balanceamento de carga

4.9.7 Instalação dos utilitários do NFS

# yum -y install nfs-utils nfs-utils-lib

4.9.8 Criar diretório para montagem do compartilhamento

# mkdir -p /mnt/nfs

4.8.9 Montar compartilhamento de arquivos

# mount <IP_SERVIDOR_NFS: 192.168.10.50>:/var/nfs /mnt/nfs

4.9.10 Verificar a correto funcionamento do compartilhamento

Verifique se o compartilhamento é listado na saída do comando anterior

# df -h 
# touch /mnt/nfs/test.txt

4.9.11 Adicionar mapeamento no arquivo fstab

 # vi /etc/fstab

Adicionar linha abaixo no arquivo

<FAIXA DE IP COM PERSMISSÃO DE ACESSO: 192.168.10.50>:/var/nfs /mnt/nfs  nfs defauls 0 0

   

4.10 Apache Solr (versão 4.0)

A instalação deste mecanismo de indexação é altamente recomendada mas não obrigatória.
Somente a pesquisa utilizando o Solr possibilitará a busca no conteúdo de documentos externos (pdf, doc, xls,...). Se o mecanismo não for instalado a chave Pesquisa/Solr deve ficar com o valor false no arquivo sei/ConfiguracaoSEI.php.

Obs 1: Nos passos seguintes, serão utilizados as seguintes referências para instalação:

  • <DIR_INSTALACAO_SEI>: diretório de instalação dos arquivos infra_php, sei e sip
  • <DIR_INSTALACAO_SOLR>: diretório de instalação do Solr
  • <DIR_INDICES_SOLR>: diretório de armazenamento dos índices do Solr

Obs 2: O pacote de instalação do Solr vem com o servidor web Jetty embarcado que será utilizado nesta instalação, entretanto é possível a utilização do Tomcat 6, conforme descrito na documentação oficial localizada em http://wiki.apache.org/solr/SolrTomcat.

Obs 3: Por questões didáticas, será utilizado as configurações de exemplo do Solr, por isso, esta instalação não é recomendado para um ambiente de produção. Maiores detalhes podem ser obtidos na documentação oficial do Apache Solr localizado em http://lucene.apache.org/solr/

Obs 4: Repositorios com todas as versões do Solr: http://archive.apache.org/dist/lucene/solr/

4.10.1 Instalar Java VM

# yum -y install java-1.7.0-openjdk-devel

4.10.2 Obter Apache Solr 4.0

Nos passos seguintes, o diretório de instalação do Solr passa a ser referenciado como <DIR_INSTALACAO_SOLR>, neste exemplo localizado em /opt/solr/solr-4.0.0

# mkdir /opt/solr && cd /opt/solr
# wget http://archive.apache.org/dist/lucene/solr/4.0.0/apache-solr-4.0.0.tgz
# tar xfvz apache-solr-4.0.0.tgz

4.10.3 Criar usuário de serviço Solr

# useradd -d <DIR_INSTALACAO_SOLR>/example/ -s /bin/bash solr

4.10.4 Criar pasta para logs do solr

# mkdir /var/log/solr 
# chown solr:solr -R /var/log/solr 

4.10.5 Configurar os parâmetros padrões de inicialização do jetty

# vi /etc/default/jetty

Adicione o conteúdo abaixo, informando corretamente o diretório de localização do Solr:

 JAVA_OPTIONS="-Dsolr.solr.home=<DIR_INSTALACAO_SOLR>/example/solr $JAVA_OPTIONS" 
 JETTY_HOME=<DIR_INSTALACAO_SOLR>/example
 JETTY_USER=solr

4.10.6 Configurar os script de inicialização do solr

Criar o arquivo de configuração padrão

 # wget -q -O /etc/init.d/solr https://raw.githubusercontent.com/eclipse/jetty.project/jetty-7/jetty-distribution/src/main/resources/bin/jetty.sh 
 # chmod +x /etc/init.d/solr

4.10.7 Configurar a inicialização automática do Solr

 # chkconfig --add solr
 # chkconfig solr on
 # service solr start

Neste ponto já será possível visualizar os índices no Solr acessando a URL http://[servidor_solr]:8080/solr

 

4.10.8 Criar diretório de armazenamento de índices

Necessário criar um diretório específico para armazenamento dos índices do Solr <DIR_INDICES_SOLR>.

 # mkdir <DIR_INDICES_SOLR>
 # mkdir <DIR_INDICES_SOLR>/sei-protocolos && ln -s <DIR_INDICES_SOLR>/sei-protocolos  <DIR_INSTALACAO_SOLR>/example/solr/
 # mkdir <DIR_INDICES_SOLR>/sei-bases-conhecimento && ln -s <DIR_INDICES_SOLR>/sei-bases-conhecimento  <DIR_INSTALACAO_SOLR>/example/solr/
 # mkdir <DIR_INDICES_SOLR>/sei-publicacoes && ln -s <DIR_INDICES_SOLR>/sei-publicacoes  <DIR_INSTALACAO_SOLR>/example/solr/

4.10.9 Copiar o conjunto de configurações padrão do Solr para os diretórios de índices:

 # cp -R <DIR_INSTALACAO_SOLR>/example/solr/collection1/conf <DIR_INDICES_SOLR>/sei-protocolos/
 # cp -R <DIR_INSTALACAO_SOLR>/example/solr/collection1/conf <DIR_INDICES_SOLR>/sei-bases-conhecimento/
 # cp -R <DIR_INSTALACAO_SOLR>/example/solr/collection1/conf <DIR_INDICES_SOLR>/sei-publicacoes/

4.10.10 Remover arquivos schema.xml e solrconfig.xml das cópias:

 # rm <DIR_INDICES_SOLR>/sei-protocolos/conf/schema.xml
 # rm <DIR_INDICES_SOLR>/sei-bases-conhecimento/conf/schema.xml
 # rm <DIR_INDICES_SOLR>/sei-publicacoes/conf/schema.xml
 # rm <DIR_INDICES_SOLR>/sei-protocolos/conf/solrconfig.xml
 # rm <DIR_INDICES_SOLR>/sei-bases-conhecimento/conf/solrconfig.xml
 # rm <DIR_INDICES_SOLR>/sei-publicacoes/conf/solrconfig.xml

4.10.11 Configurar Solr com índices do SEI

Dentro do diretório de fontes do SEI existe um diretório solr com os novos arquivos XML de configuração para os índices.
Esse arquivo deve ser obtido dentro do diretório de instalação do SEI (<DIR_INSTALACAO_SEI>) definido previamente.

 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-protocolos-schema.xml <DIR_INDICES_SOLR>/sei-protocolos/conf
 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-bases-conhecimento-schema.xml <DIR_INDICES_SOLR>/sei-bases-conhecimento/conf
 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-publicacoes-schema.xml <DIR_INDICES_SOLR>/sei-publicacoes/conf
 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-protocolos-config.xml <DIR_INDICES_SOLR>/sei-protocolos/conf
 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-bases-conhecimento-config.xml <DIR_INDICES_SOLR>/sei-bases-conhecimento/conf
 # cp <DIR_INSTALACAO_SEI>/sei/solr/xml/sei-publicacoes-config.xml <DIR_INDICES_SOLR>/sei-publicacoes/conf

4.10.12 Criar diretório de conteúdo para os índices:

 # mkdir <DIR_INDICES_SOLR>/sei-protocolos/conteudo
 # mkdir <DIR_INDICES_SOLR>/sei-bases-conhecimento/conteudo
 # mkdir <DIR_INDICES_SOLR>/sei-publicacoes/conteudo

4.10.13 Configurar links simbólicos para os índices

Criar atalhos dentro dos diretórios de índices para os diretórios contrib, lib e dist que estão localizados em <DIR_INSTALACAO_SOLR>:

 # cd <DIR_INDICES_SOLR>/sei-protocolos
 # ln -s <DIR_INSTALACAO_SOLR>/contrib/ contrib
 # ln -s <DIR_INSTALACAO_SOLR>/dist/ dist
 # ln -s <DIR_INSTALACAO_SOLR>/example/lib/ lib

 # cd <DIR_INDICES_SOLR>/sei-bases-conhecimento
 # ln -s <DIR_INSTALACAO_SOLR>/contrib/ contrib
 # ln -s <DIR_INSTALACAO_SOLR>/dist/ dist
 # ln -s <DIR_INSTALACAO_SOLR>/example/lib/ lib

 # cd <DIR_INDICES_SOLR>/sei-publicacoes
 # ln -s <DIR_INSTALACAO_SOLR>/contrib/ contrib
 # ln -s <DIR_INSTALACAO_SOLR>/dist/ dist
 # ln -s <DIR_INSTALACAO_SOLR>/example/lib/ lib

4.10.14 Faça usuário Solr dono das pastas do solr

 # chown solr:solr -R <DIR_INSTALACAO_SOLR>
 # chown solr:solr -R <DIR_INDICES_SOLR>

4.10.15 Criar os índices do SEI no Solr

Usando um navegador criar os índices no Solr (executar os 4 comandos em sequência):
Obs: Não esquecer de substituir o valor <DIR_INDICES_SOLR> das URLs pelo diretório correspondente.

http://<SERVIDOR_SOLR>/solr/admin/cores?action=CREATE&name=seiprotocolos&instanceDir=<DIR_INDICES_SOLR>/sei-protocolos&config=sei-protocolosconfig.xml&schema=sei-protocolos-schema.xml&dataDir=<DIR_INDICES_SOLR>/sei-protocolos/conteudo
http://<SERVIDOR_SOLR>/solr/admin/cores?action=CREATE&name=sei-basesconhecimento&instanceDir=<DIR_INDICES_SOLR>/sei-bases-conhecimento&config=sei-bases-conhecimentoconfig.xml&schema=sei-bases-conhecimento-schema.xml&dataDir=<DIR_INDICES_SOLR>/sei-basesconhecimento/conteudo
http://<SERVIDOR_SOLR>/solr/admin/cores?action=CREATE&name=seipublicacoes&instanceDir=<DIR_INDICES_SOLR>/sei-publicacoes&config=sei-publicacoesconfig.xml&schema=sei-publicacoes-schema.xml&dataDir=<DIR_INDICES_SOLR>/sei-publicacoes/conteudo
http://<SERVIDOR_SOLR>/solr/admin/cores?action=RELOAD

4.10.16 Configurar a utilização do Solr nas configurações do SEI

Configurar as chaves de pesquisa no arquivo <DIR_INSTALACAO_SEI>/sei/ConfiguracaoSEI.php para ativar o uso do Solr, lembrando de informar corretamente a localização do servidor do Apache Solr.

'Pesquisa' => array('Banco' => false,
            'Solr' => true,
            'SqlServerFullTextSearch' => false),

'Solr' => array('Servidor' => 'http://<SERVIDOR_SOLR>/solr',
         'CoreProtocolos' => 'sei-protocolos',
        'CoreBasesConhecimento' => 'sei-bases-conhecimento',
        'CorePublicacoes' => 'sei-publicacoes'),

4.10.17 Configurações Finais

  • Disparar a indexação de protocolos acessando o menu “Desenvolvimento/Indexação” e clicando no botão “Gerar Indexação Completa de Processos e Documentos”
  • Disparar a indexação de publicações acessando o menu “Desenvolvimento/Indexação” e clicando no botão “Gerar Indexação Publicações”;

4.10.18 Comandos auxiliares

Caso, seja preciso reindexar todos os dados do SEI, será necessário limpar antes os índices usando os comandos abaixo:

 http://<SERVIDOR_SOLR>/solr/seiprotocolos/update?stream.body=<delete><query>*:*</query></delete>&commit=true
 http://<SERVIDOR_SOLR>/solr/sei-basesconhecimento/update?stream.body=<delete><query>*:*</query></delete>&commit=true
 http://<SERVIDOR_SOLR>/solr/seipublicacoes/update?stream.body=<delete><query>*:*</query></delete>&commit=true 

 

4.11 JOD Converter

4.11.1 Instalação do Java JDK 1.7

# yum -y install java-1.7.0-openjdk-devel

4.11.2 Instalação do LibreOffice

# yum -y install libreoffice libreoffice-headless

4.11.3 Configurar inicialização automática do LibreOffice headless

# cd /etc/init.d && vi libreoffice-headless

Adicionar o conteúdo abaixo

#!/bin/bash
# libreoffice.org  headless server script
#
# chkconfig: 2345 80 30
# description: headless libreoffice server script
# processname: libreoffice
# 
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
# Modified by Manuel Vega Ulloa
OOo_HOME=/usr/bin
SOFFICE_PATH=$OOo_HOME/soffice
PIDFILE=/var/run/libreoffice-server.pid
set -e
case "$1" in
    start)
    if [ -f $PIDFILE ]; then
      echo "LibreOffice headless server has already started." 
      sleep 5
      exit
    fi
      echo "Starting LibreOffice headless server" 
      $SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
      PID=`ps ax | grep "soffice.bin --headless"| grep -v grep|cut -d \  -f 1`
      echo $PID> $PIDFILE
    ;;
    stop)
    if [ -f $PIDFILE ]; then
      echo "Stopping LibreOffice headless server." 
      kill `cat $PIDFILE`
      rm -f $PIDFILE
      exit
    fi
      echo "LibreOffice headless server is not running." 
      exit
    ;;
    *)
    echo "Usage: $0 {start|stop}" 
    exit 1
esac
exit 0

4.11.4 Configure o script no chkconfig

 # chmod +x libreoffice-headless
 # chkconfig --add libreoffice-headless
 # chkconfig libreoffice-headless on 
 # service libreoffice-headless start

4.11.5 Instalar JODConverter

O arquivo de instalação do JODConveter está localizado na pasta <DIR_INSTALACAO_SEI>/sei/ferramentas. Copie o arquivo JODConverter para a pasta /opt do servidor onde será configurado o JOD.

 # scp <USUARIO>@<SERVIDORJOD>:<DIR_INSTALACAO_SEI>/sei/ferramentas/jodconverter-tomcat-2.2.2.zip /opt

 

Descompacte os arquivos de instalação no diretório /opt

 # unzip /opt/jodconverter-tomcat-2.2.2.zip

4.11.6 Configurar a inicialização automática do JODConverter-Tomcat

Entre no diretório /etc/init.d e crie um arquivo vazio "tomcat":

 # cd /etc/init.d && vi tomcat 

Adicione o seguinte conteúdo no script de inicialização do tomcat

#!/bin/bash  
#ss description: Tomcat Start Stop Restart  
# processname: tomcat  
# chkconfig: 234 20 80  
#JAVA_HOME=/usr/java/jdk1.7.0_05  
#export JAVA_HOME  
#PATH=$JAVA_HOME/bin:$PATH  
#export PATH  
CATALINA_HOME=/opt/jodconverter-tomcat-2.2.2

case $1 in  
start)  
    sh $CATALINA_HOME/bin/startup.sh  
;;   
stop)     
    sh $CATALINA_HOME/bin/shutdown.sh  
;;   
restart)  
    sh $CATALINA_HOME/bin/shutdown.sh  
    sh $CATALINA_HOME/bin/startup.sh  
;;   
esac      
exit 0  

4.11.6 Configure o script no chkconfig

 # chmod +x /etc/init.d/tomcat
 # chkconfig --add tomcat
 # chkconfig tomcat on 
 # service tomcat start

4.11.7 Configuração da localização do servidor JODConverter no SEI

 # vi /var/www/html/sei/ConfiguracaoSEI.php

4.11.8 Alterar o seguinte parâmetro com a localização do servidor JODConveter

 'JODConverter' => array('Servidor' => 'http://<SERVIDOR_JOD_CONVERTER>/converter/service'),

<-- Menu

<-- Voltar                                                     Próximo --> 


Essa comunidade não possui posts nesse blog