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
Definições
Para fins de simplificação, ao longo deste tutorial usaremos os seguintes termos:
- A versão de instalação do saci será 4.6.0
- A geração do saci.war se dará através da interface de desenvolvimento Eclipse devidamente com JDK7 em seu build path
- $HOME: a pasta raiz do usuário no sistema operacional. Em sistemas Unix/Linux, um exemplo desse tipo de pasta seria "/home/usuarioexemplo"
- $SOURCE: a pasta onde está o código-fonte do SACI, que é necessário para a instalação do sistema
Obtenha o SACI via código fonte
Para baixar o código fonte do saci basta preencher o formulário de contato, disponível no LINK e seguir as instuções contidas no formulário.
Instale o Tomcat9
- No terminal execute "sudo apt-get install tomcat9"
- Durante o processo de instalação do tomcat será instalado o OpenJdk como dependência.
Instale o banco de dados MySQL (MariaDB)
Para a instalação foi utilizada a versão mariadb-server 10.2.37.
- No terminal execute "sudo apt-get install mariadb-server"
- 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@localhost;
- Crie as tabelas que o saci usará, executando o comando abaixo na pasta do código fonte do Saci:
Considerações: será instalada a versão 4.6.0, caso já possua uma versão instalada, utlize o manual de migração
mysql --default-character-set=utf8 -u NOME DO USUARIO -p NOME DO BANCO < $SOURCE/src/main/sql/saci-schema-v460.sql
- O usuário administrador do SACI foi criado com e-mail "saci" e senha "saci"
Instale o ImageMagick
No momento da revisão deste documento, a versão mais recente era a 6.9.10-23
A ferramenta ImageMagick, usada para manipulação de imagens via linha de comando, geralmente vem instalada na maioria das distribuições Linux (ex: Ubuntu 20.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:
- No terminal execute "sudo apt-get install imagemagick"
- Forneça a senha de root
- Tente novamente verificar o comando "convert -version"
Instale o ExifTool
No momento da revisão deste documento, a versão mais recente era a 12.30
A ferramenta ExifTool, usada para manipulação de metadados EXIF em imagens, nem sempre vem instalada na maioria das distribuições Linux (ex: Ubuntu 20.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:
- No terminal execute "sudo apt-get install libimage-exiftool-perl"
- Forneça a senha de root
- 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")
- mkdir -p /srv/saci-data
- cd /srv/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 $SOURCE/src/main/webapp/resources/imagens/logo_*.png ./instituicao
- chown tomcat.tomcat /srv/saci-data -R
Alteralção do diretório padrão de dados (opcional)
Edite o arquivo "$SOURCE/src/main/webapp/META-INF/context.xml" e "saci.properties" conforme o diretório de dados escolhido
Instale o Apache Maven
No momento da elaboraçao deste documento, a versão mais recente era a 3.6.3
- No terminal execute "sudo apt-get install maven"
Geração / compilação do pacote do saci, saci.war
Antes da geração do pacote faça as devidas alterações no arquivo saci.properties (veja a seção "Edite arquivo saci.properties")
Obs: A compilação poderá ser feita através da interface de desenvolvimento Eclipse ou outra qualquer. O importante é que o saci deverá ser compilado utilizando JDK7. A compilação pode ser feita ainda utilizando a interface de linha de comandos do maven, entretanto este deve estar configurado para utilizar JDK7. Para utilização do Maven em linha de comando é importante que seja alterado a variável de ambiente JAVA_HOME e PATH, conforme "$SOURCE/jdk7.sh", altere este arquivo conforme sua instalação JDK7, e execute source jdk7.sh (confira se o PATH e JAVA_HOME estão apontando para java 1.7) antes de executar o comando de geração de empacotamento do maven.
- Empacotamento do saci
- Na pasta do SACI, execute "mvn clean install" (isso pode levar vários minutos)
- Com a compilação do saci, deverá ser gerado o artefato "$SOURCE/target/saci-4.6.0.war"
Implantação (deploy) o SACI.WAR
- Renomeie o arquivo gerado de saci-4.6.0.war para saci.war
- Mova o arquivo saci.war para o diretório de deploy do tomcat9
- mv saci.war /var/lib/tomcat9/webapps
- Reinicie o tomcat9
Edite arquivo "saci.properties" e reinicie o Tomcat.
O arquivo é este: TOMCAT/webapps/saci/WEB-INF/classes/saci.properties.
- saci_db_username = USUARIO DO BANCO, CONFORME SEÇÃO ANTERIOR
- saci_db_password = SENHA DO BANCO, CONFORME SEÇÃO ANTERIOR
- saci_db_alias = TROQUE bdsaci PELO NOME DO BANCO, MANTENDO O RESTANTE
- 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.
- 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".
- saci_url = Caminho (site) por onde o SACI poderá ser acessado. Exemplo: http://www.saci.ufpr.br
- Outras configurações podem ficar com seus valores padrão.
- Reinicie o Tomcat para que as alterações no saci.properties tenham efeito.
Pós instalação
- Insira um remetente válido na tela de instituição no seu primeiro login.
- Certifique-se que remetentes válidos em outros locais conforme cada castrado é feito.
- 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:
- Faça um levantamento dos remetentes cadastrados em: instiuição; unidades da instituição; gabaritos dos produtos que enviam e-mails de cada unidade.
- 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:
- Registrar DNS do tipo MX para a máquina.
- Registrar DNS do tipo PTR (reverso).
- Registrar DNS do tipo TXT/SPF.
- 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
- É RECOMENDÁVEL executar o processo de instalação em servidor que não seja de produção.
- É ALTAMENTE RECOMENDÁVEL efetuar um backup da sua base de dados.
- É RECOMENDÁVEL efetuar um backup da sua pasta de dados antes de começar.
- É 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
- Obtenha a última versão do saci.war e atulize conforme orientações da sessão, veja sessão (Geração / compilação do pacote do saci, saci.war)
- Em um console SQL, execute os comandos contidos no arquivo $SOURCE/src/main/sql/MIGRATION.sql, execute-o de acordo com a versão que deseja migrar. O arquivo apresenta comentários que indicam de onde partir de acordo com a versão que se deseja migrar.
Atualização na série 4
- Obtenha, compile e implante um novo Saci (veja a Seção 2 para detalhes).
- Ajuste o arquivo "saci.properties" (veja a Seção 2 para detalhes).
- Ajuste o arquivo "context.xml" (veja a Seção 2 para detalhes).
- Reinicie o Tomcat.
- Se estiver usando versão inferior a 4.0, você deve aplicar as mudanças estruturais no banco de dados que forem necessárias.
- Abra o arquivo MIGRATION_MAJOR.sql na pasta com o código fonte do saci ($SOURCE/src/main/sql).
- 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).
- Revise os comandos, removendo ou adaptando aqueles marcados como sendo para uma instalação específica do SACI (ex: SACI@UFSCar). Não prossiga sem ter certeza do que se tratam essas customizações e como elas podem afetar sua instalação.
- Copie desta linha em diante e cole em um prompt do banco de dados.
- Certifique-se que todos os comandos foram executados com sucesso.
- 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).
- 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/.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"