1 Introdução

Veja a Seção 2 para informações para instalar um novo Saci.

Veja a Seção 3 para dúvidas sobre mensagens de e-mail perdidas.

Veja a Seção 4 para informações para atualizar Saci pré-existente.

Veja a Seção 5 para informações sobre como otimizar o Saci.

2 Instalação

Obtenha o SACI via código fonte

Temporariamente é necessário o envio de uma chave pública para a equipe de desenvolvimento do saci, de forma a iberar seu acesso ao código do SACI. É possível gerar uma com o comando "ssh-keygen". O código pode ser obtido com o comando git:

git clone ssh://gitolite@saci-devel.ufscar.br:5522/saci.git

Obs: o pacote .war será disponibilizado futuramente.

Instale o Java Development Kit (JDK)

  1. Baixa e instale o JDK (Java Development Kit). Pode ser a versão Oracle ou OpenJDK compatível com Java 7 ou superior.

Instale o banco de dados MySQL

Use o Mysql 5.5 ou versão mais recente.

  1. No terminal execute "sudo apt-get install mysql-server"
    1. Forneça a senha de root
  2. Crie um usuário e e um banco de dados para o Saci.

    create database NOME DO BANCO CHARACTER SET utf8 COLLATE utf8_general_ci;

    create user 'NOME DO USUARIO'@'localhost' identified by 'SENHA DO USUARIO';

    grant all on NOME DO BANCO.* to NOME DO USUARIO identified by 'SENHA DO USUARIO';

  3. Crie as tabelas que o saci usará, executando o comando abaixo na pasta do código fonte do Saci:

    mysql --default-character-set=utf8 -u NOME DO USUARIO -p NOME DO BANCO < saci/main/sql/INSTALL.sql

    Obs: será necessário fornecer a senha recém cadastrada.

  4. O usuário administrador do SACI foi criado com e-mail "saci" e senha "adminadmin"

Servidor Apache Tomcat 7

Instale a versão mais recente do Apache Tomcat 7. Versão mínima exigida: 7.0.41

  1. Acesse http://tomcat.apache.org e instale o Tomcat 7 (se preciso siga as instruções de instalação do site)
  2. tar xvzf apache-tomcat-7.0.35.tar.gz
  3. mv apache-tomcat-7.0.35 /home/x/programs/tomcat
  4. Edite o arquivo /home/x/.profile e adicione, ao final

    export CATALINA_HOME=/home/x/programs/tomcat

  5. No mesmo arquivo atualize a variável PATH

    export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

  6. Edite o arquivo $CATALINA_HOME/conf/web.xml
    1. Altere o parâmetro session-configsession-timeout de 30 para 120
  7. Edite o arquivo $CATALINA_HOME/conf/tomcat-users.xml
    1. Crie um "role" com rolename "manager"
    2. Crie um "user" com username "saci" e senha "adminadmin"
  8. Edite o arquivo $CATALINA_HOME/conf/server.xml
    1. Na seção 'Connector port="8080"' adicione ao final o atributo URIEncoding="UTF-8"
  9. Edite o arquivo $CATALINA_HOME/bin/catalina.sh
    1. Adicione logo acima do "# OS specific support. $var _must_ be set to either true or false.":

      JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

  10. Opcional: para melhorar o desempenho do servidor siga as instruções na página "APR" da documentação

Instale o Apache Maven

No momento da elaboraçao deste documento, a versão mais recente era a 3.0.4

  1. Acesse http://maven.apache.org e baixe o programa (por exemplo, apache-maven-3.0.4-bin.tar.gz)
  2. tar xvzf apache-maven-3.0.4-bin.tar.gz
  3. mv apache-maven-3.0.4 /home/x/programs/maven
  4. Edite o arquivo /home/x/.profile e adicione, ao final

    export MAVEN_HOME=/home/x/programs/maven export M2_HOME=/home/x/programs/maven

  5. No mesmo arquivo atualize a variável PATH

    export PATH=$PATH:$MAVEN_HOME/bin

Instale o ImageMagick

No momento da elaboração deste documento, a versão mais recente era a 6.6.7

A ferramenta ImageMagick, usada para manipulação de imagens via linha de comando, geralmente vem instalada na maioria das distribuições Linux (ex: Ubuntu 10.04). Para se certificar de que o executável "convert" esteja disponível na linha de comando, execute no terminal "convert -version". Caso o comando não seja encontrado:

  1. No terminal execute "sudo apt-get install imagemagick"
  2. Forneça a senha de root
    1. Tente novamente verificar o comando "convert -version"

Instale o ExifTool

No momento da elaboração deste documento, a versão mais recente era a 8.48

A ferramenta ExifTool, usada para manipulação de metadados EXIF em imagens, nem sempre vem instalada na maioria das distribuições Linux (ex: Ubuntu 10.04). Para se certificar de que o executável "exiftool" esteja disponível na linha de comando, execute no terminal "exiftool". Caso o comando não seja encontrado:

  1. No terminal execute "sudo apt-get install libimage-exiftool-perl"
  2. Forneça a senha de root
  3. Tente novamente verificar o comando "exiftool"

Pasta de dados

A pasta de dados do SACI é onde serão armazenadas todos os arquivos fornecidos ao sistema pelos usuários, tais como fotos, anexos, imagens escaneadas etc.

Essa pasta deve ser criada manualmente pelo administrador do sistema, e apenas uma vez. Futuras atualizações do sistema aproveitarão essa configuração inicial, e eventualmente serão dadas instruções para a criação de novas subpastas.

Crie a pasta de dados

Será assumido que a pasta de dados ficará no diretório /srv/saci-data.

Obs 1: pode ser qualquer localização, desde que o Apache Tomcat tenha permissão de escrita.

Obs 2: use o mesmo diretório informado na configuração saci_data_dir do arquivo saci.properties e do arquivo context.xml (veja a seção "Edite arquivo saci.properties")

  • cd /srv/
  • mkdir saci-data
  • cd saci-data
  • mkdir anexo arquivo clipping clipping/pdfs clipping/imagens clipping/videos clipping/audios destaque atendimento grafica foto foto/thumbs imagens imagens/conteudo imagens/edicao instituicao solicitacao sonora temp usuarios veiculos job job/projeto job/diagramacao pauta
  • cp src/main/webapp/resources/imagens/logo_*.png ./instituicao

Aponte o SACI para a pasta de dados

Edite o arquivo "/webapp/saci/META-INF/context.xml" e troque a linha

<Context aliases="/data=/srv/saci-data" antiJARLocking="true" path="/saci"/>

Para

<Context aliases="/data=/caminho_pasta_de_dados/saci-data" antiJARLocking="true" path="/saci"/>

Nota: também é necessário ajustar a pasta de dados no arquivo "saci.properties" conforme explicado na Seção "Edite o arquivo saci.properties".

Implante o SACI

  • Na pasta do SACI, execute "mvn clean install" (isso pode levar vários minutos)
  • Será criada uma pasta "target" e, dentro dela, um arquivo com extensão "war" (exemplo: saci.war)
  • Copie esse arquivo para a sua instalação do Tomcat (ex: $CATALINA_HOME/webapps)
  • O arquivo "war" será descompactado em uma pasta "saci.war"
  • Para testar, aponte seu navegador para http://IPDOSERVIDOR:8080/saci

Edite arquivo "saci.properties" e reinicie o Tomcat.

O arquivo é este: TOMCAT/webapps/saci/WEB-INF/classes/saci.properties.

  1. saci_db_username = USUARIO DO BANCO, CONFORME SEÇÂO ANTERIOR
  2. saci_db_password = SENHA DO BANCO, CONFORME SEÇÂO ANTERIOR
  3. saci_db_alias = TROQUE bdsaci PELO NOME DO BANCO, MANTENDO O RESTANTE
  4. saci_mail_server = SERVIDOR DA SUA EMPRESA -- RECOMENDADO: localhost

    Nota 1: é recomendado ter um servidor de e-mails independente no localhost (a máquina que hospeda o Saci) para evitar sobrerregar seu servidor de e-mails principal.

    Nota 2: o Saci não funciona com servidores com autenticação mandatória. Se precisar desse recurso ao usar um servidor externo, instale um postfix local com o perfil de "sistema satélite" e configure nele as informações de autenticação do servidor principal.

  5. saci_data_dir = PASTA DE DADOS

    Pasta onde os dados serão armazendos definida na Seção "Aponte o SACI para a pasta de dados".

  6. saci_url = Caminho (site) por onde o SACI poderá ser acessado. Exemplo: http://www.saci.ufscar.br
  7. Outras configurações podem ficar com seus valores padrão.
  8. Reinicie o Tomcat para que as alterações no saci.properties tenham efeito.

Pós instalação

  1. Insira um remetente válido na tela de instituição no seu primeiro login.
  2. Certifique-se que remetentes válidos em outros locais conforme cada castrado é feito.
  3. Altere as credenciais do usuário administrador

    E-mail: o valor padrão "saci" deve ser trocado para um e-mail válido

    Senha: escolha uma senha forte, com pelo menos 8 caracteres e composta por letras, números e caracteres especiais

    Veja a Seção 3 para detalhes.

3 Evitando perdas em e-mails.

Um problema comum em novas instalações do Saci é a falta de remetentes de e-mail válidos. Nesse caso, quando solicitações de divulgação ou atendimentos de imprensa são cadastrados com um destinatário inválido, a mensagem se perde e ninguém é notificado.

Para resolver este problema, defina apenas remetentes válidos no Saci. Caso o servidor de e-mails seja a máquina que hospeda o Saci (recomendado), certifique-se que este servidor redirecione as mensagens de erro para uma conta checada com regularidade.

Passos:

  1. Faça um levantamento dos remetentes cadastrados em: instiuição; unidades da instituição; gabaritos dos produtos que enviam e-mails de cada unidade.
  2. Envie um e-mail para esses destinatários de dentro do Saci, criando um atendimento de teste.

Se usar a própria máquina que hospeda o Saci para o envio de e-mails (recomendado), não se esqueça de:

  1. Registrar DNS do tipo MX para a máquina.
  2. Registrar DNS do tipo PTR (reverso).
  3. Registrar DNS do tipo TXT/SPF.
  4. Definir aliases (/etc/alias no caso do Postfix) redirecionando para uma conta externa checada com regularidade para todos os remetentes cadastrados.

Nota: atraso no envio de mensagens são esperados, devido a vários servidores de e-mails implementarem políticas de Greylist.

4 Atualização

Preparativos

  1. É ALTAMENTE RECOMENDÁVEL efetuar um backup da sua base de dados.
  2. É RECOMENDÁVEL efetuar um backup da sua pasta de dados antes de começar.
  3. É SUGERIDO fazer um backup dos arquivos "saci.properties" e "context.xml" para sua conveniência.

Atualização da série 3 para a série 4

  1. Atualizar o banco para a versão 3.14. Pule esse passo caso já utilize a versão 3.14. Você pode fazer esse procedicmento com o comando "git checkout 3.14". Abra o arquivo MIGRATION_MAJOR.sql e copie as linhas após a sua versão corrente para o MYSQL. Após terminar execute "git checkout master".
  2. Atualizar o banco para a versão 4.0. Abra o arquivo MIGRATION_MAJOR.sql e copie as linhas referentes a migração da versão 3.14 para a versão 4.0.
  3. Obtenha o código fonte do programa MigracaoSaciMaven e edit o arquivo migration.properties definindo as informações para conexão com o seu banco.
  4. Compile o programa MigracaoSaciMaven com o comando "mvn clean compile assembly:single" e execute.
  5. Atualizar o banco para a versão corrente: deste ponto em diante, siga a seção "Atualização na série 4".

Atualização na série 4

  1. Obtenha, compile e implante um novo Saci (veja a Seção 2 para detalhes).
  2. Ajuste o arquivo "saci.properties" (veja a Seção 2 para detalhes).
  3. Ajuste o arquivo "context.xml" (veja a Seção 2 para detalhes).
  4. Reinicie o Tomcat.
  5. Se estiver usando versão inferior a 4.0, você deve aplicar as mudanças estruturais no banco de dados que forem necessárias.
    1. Abra o arquivo MIGRATION_MAJOR.sql na pasta com o código fonte do saci (src/main/sql).
    2. Localize a linha do arquivo cuja a versão é maior que sua versão atual do Saci (você pode ver a versão do Saci logando no sistema e clicando em sobre).
    3. Copie desta linha em diante e cole em um prompt do banco de dados.
    4. Certifique-se que todos os comandos foram executados com sucesso.
    5. Obs: caso esteja migrando da penúltima para a última versão, é possível usar o arquivo MIGRATION_MINOR.sql ou MIGRATION_REVISION.sql, de acordo com o número da versão (minor pode ser usado de 3.0 para 3.1 e revision de 3.0 para 3.0.1).
  6. Se estiver usando a versão inferior a 4.0, você também deve criar as pastas manualmente. Novas pastas podem ser adicionadas, então é necessário rodar o mkdir da seção "Criando a pasta de dados" novamente.

5 Otimizações opcionais

Otimizar MySQL

O arquivo de configurações do MySQL geralmente se encontra em /etc/mysql/my.cnf. Após efetuar as alterações, lembre-se de reiniciar o servidor.

Para otimizações no uso do motor InnoDB, no item "[mysqld]" abaixo de "thread_cache_size = 8" adicione:

innodb_buffer_pool_size = 256M

innodb_file_format = barracuda

innodb_strict_mode = 1

ignore_builtin_innodb

plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so; innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so; innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so; innodb_cmpmem=ha_innodb_plugin.so; innodb_cmpmem_reset=ha_innodb_plugin.so

O valor de "innodb_buffer_pool_size" deve ser pelo menos o tamanho do banco de dados. Para que as modificações em "plugin-load" tenham o efeito esperado, a versão mínima necessária do MySQL é a 5.1.38 (recomendada 5.1.68 ou superior).

Apache Portable Runtime (APR)

APR é uma biblioteca de suporte para servidores web Apache. Quando ela é usada em conjunto ao Apache Tomcat, são observadas melhorias de desempenho significativas tanto nos tempos de início/desligamento do servidor quanto no fornecimento de páginas e acesso a disco. As intruções a seguir detalham o processo de instalação dessa biblioteca:

  • Instale a ferramenta "make" com o comando "sudo apt-get install make"
  • Acesse http://apr.apache.org/download.cgi e baixe código-fonte (atualmente o arquivo mais recente é o apr-1.4.5.tar.gz)
  • Descompacte com o comando "tar xvzf apr-1.4.5.tar.gz"
  • Na pasta descompactada, execute "sudo ./configure"
  • Execute "sudo make" para compilar a biblioteca
  • Execute "sudo make install" para instalar a biblioteca
  • Instalar o Tomcat Native
  • Caso o servidor Tomcat tenha sido instalado a partir do repositório, acesse http://tomcat.apache.org/download-native.cgi e baixe "tomcat-native-1.1.20.tar.gz". Caso o servidor tenha sido baixado diretamente no site oficial, esse arquivo se encontra em $CATALINA_HOME/bin com o nome "tomcat-native.tar.gz"
  • Descompacte com o comando "tar xzf tomcat-native.tar.gz"
  • Na pasta descompactada, acesse a subpasta "jni/native"
  • Execute "sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME" (certifique-se de que a variável "JAVA_HOME" esteja apontando para o local de instalação do JDK)
  • Execute "sudo make" para compilar a biblioteca
  • Execute "sudo make install" para instalar a biblioteca
  • Tornar bibliotecas visíveis para o sistema operacional e aplicações

    Nas configurações de perfil do computador (/etc/profile) ou do usuário que executará o Apache Tomcat (/home/USUARIO/.profile), adicione ao final as seguintes linhas:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

    export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib

  • Ativar suporte a APR no Apache Tomcat

    No arquivo de configuração do servidor ($CATALINA_HOME/conf/server.xml):

  • Altere a linha

    Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /

    para

    Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" /

  • Se algum conector possuir SSL ativado e houver conflitos com o APR, altere os parâmetros "SSLEnabled" de "true" para "false"