Passo-a-passo para instalação

Linux

É recomendado o Ubuntu por se tratar de uma distribuição Linux de fácil uso e por ter uma comunidade
grande e ativa. Contudo, resultados satisfatórios são obtidos com a utilização de outras distribuições
como Debian, CentOS e Fedora.
A maior parte dos passos de configuração descritos nesse documento se aplicam a qualquer ambiente
moderno de Linux mas alguns deles se aplicam somente ao Ubuntu.
Especificamente, esse documento é baseado no Ubuntu 12.04 LTS (Precise Pangolin) e Ubuntu 14.04
LTS (Trusty Tahr). Uma vez instalado, você deve ser capaz de seguir as instruções descritas abaixo.

Antes de iniciar as instalações, é importante que sejam atribuídas permissões de super usuário com o comando a seguir:

sudo su

MySQL

apt-get install mysql-server-5.5

 

Elasticsearch

Instalação do Java:

apt-get install openjdk-7-jre-headless software-properties-common

Instalação do Elasticsearch:

wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

Abra o arquivo /etc/apt/sources.list:

nano /etc/apt/sources.list

Adicione a seguinte linha no final do arquivo para habilitar a busca:

deb http://packages.elasticsearch.org/elasticsearch/1.7/debian stable main

Salve as alterações (CTRL + O) e depois saia (com CTRL + X)
Agora execute os seguintes comandos:

apt-get update
apt-get install elasticsearch

Configure o serviço para iniciá-lo:

update-rc.d elasticsearch defaults 95 10
/etc/init.d/elasticsearch start

 

Nginx

apt-get install nginx

O Nginx implanta um servidor padrão chamado default e você pode encontrá-lo em /etc/nginx/sites-available/default. Para instalar no AtoM você deve editar o bloco de servidor existente ou adicionar um novo. Mostraremos como fazer o último:

touch /etc/nginx/sites-available/atom
ln -sf /etc/nginx/sites-available/atom /etc/nginx/sites-enabled/atom
rm /etc/nginx/sites-enabled/default

Criamos o arquivo de configuração e fizemos um link com sites-enabled/, que é o diretório no qual o
Nginx irá procurar. Isso significa que você pode desativar um site removendo seu link simbólico de
sites-enabled/, mantendo o original sob sites-available /, no caso de você precisar reutilizá-lo no
futuro.
O que se segue é um bloco de código recomendado para configurar o AtoM. Adicione o seguinte
conteúdo em /etc/nginx/sites-enabled/atom.
Abra o arquivo:

nano /etc/nginx/sites-enabled/atom

E adicione:

upstream atom {
  server unix:/var/run/php5-fpm.atom.sock;
}

server {

  listen 80;
  root /usr/share/nginx/atom;

  # http://wiki.nginx.org/HttpCoreModule#server_name
  # _ means catch any, but it's better if you replace this with your server
  # name, e.g. archives.foobar.com
  server_name _;

  client_max_body_size 72M;

  # http://wiki.nginx.org/HttpCoreModule#try_files
  location / {
    try_files $uri /index.php?$args;
  }

  location ~ /\. {
    deny all;
    return 404;
  }

  location ~* (\.yml|\.ini|\.tmpl)$ {
    deny all;
    return 404;
  }

  location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
    return 404;
  }

  location ~* /uploads/r/(.*)/conf/ {

  }

  location ~* ^/uploads/r/(.*)$ {
    include /etc/nginx/fastcgi_params;
    set $index /index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$index;
    fastcgi_param SCRIPT_NAME $index;
    fastcgi_pass atom;
  }

  location ~ ^/private/(.*)$ {
    internal;
    alias /usr/share/nginx/atom/$1;
  }

  location ~ ^/(index|qubit_dev)\.php(/|$) {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_pass atom;
  }

  location ~* \.php$ {
    deny all;
    return 404;
  }

}

Salve o arquivo (CTRL + O) e feche o editor (CTRL + X)
Agora é preciso reiniciar o Nginx:

service nginx restart

 

PHP

O AtoM utiliza o PHP-FPM, um gerenciador de processos. O comando a seguir irá instalá-lo junto com o
restante das extensões PHP exigidas pelo AtoM:

apt-get install php5-cli php5-fpm php5-curl php5-mysql php5-xsl php5-json php5-ldap php5-readline php-apc

Agora vamos adicionar o seguinte conteúdo em /etc/php5/fpm/pool.d/atom.conf:

Abrir o arquivo:

nano /etc/php5/fpm/pool.d/atom.conf

Incluir o conteúdo:

[atom]

# The user running the application
user = www-data
group = www-data

# Use UNIX sockets if Nginx and PHP-FPM are running in the same machine
listen = /var/run/php5-fpm.atom.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0600

# The following directives should be tweaked based in your hardware resources
pm = dynamic
pm.max_children = 30
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 10
pm.max_requests = 200

chdir = /

# Some defaults for your PHP production environment
# A full list here: http://www.php.net/manual/en/ini.list.php
php_admin_value[expose_php] = off
php_admin_value[allow_url_fopen] = on
php_admin_value[memory_limit] = 512M
php_admin_value[max_execution_time] = 120
php_admin_value[post_max_size] = 72M
php_admin_value[upload_max_filesize] = 64M
php_admin_value[max_file_uploads] = 10
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[display_errors] = off
php_admin_value[display_startup_errors] = off
php_admin_value[html_errors] = off
php_admin_value[session.use_only_cookies] = 0

# APC, which is still used in PHP 5.5 for userland memory cache unless you
# are switching to something like sfMemcacheCache
php_admin_value[apc.enabled] = 1
php_admin_value[apc.shm_size] = 64M
php_admin_value[apc.num_files_hint] = 5000
php_admin_value[apc.stat] = 0

# Zend OPcache
# Only in Ubuntu 14.04 (PHP 5.5).
# Don't use this in Ubuntu 12.04, it won't work.
php_admin_value[opcache.enable] = 1
php_admin_value[opcache.enable_cli] = 0
php_admin_value[opcache.memory_consumption] = 192
php_admin_value[opcache.interned_strings_buffer] = 16
php_admin_value[opcache.max_accelerated_files] = 4000
php_admin_value[opcache.validate_timestamps] = 0
php_admin_value[opcache.fast_shutdown] = 1

# This is a good place to define some environment variables, e.g. use
# ATOM_DEBUG_IP to define a list of IP addresses with full access to the
# debug frontend or ATOM_READ_ONLY if you want AtoM to prevent
# authenticated users
env[ATOM_DEBUG_IP] = "10.10.10.10,127.0.0.1"
env[ATOM_READ_ONLY] = "off"

Salve o arquivo (CTRL + O) e feche o editor (CTRL + X)
O gerenciador de processos deve ser reiniciado:

service php5-fpm restart

Se o serviço falhar ao ser reiniciado, certifique-se de que o arquivo de configuração foi colado
corretamente. Você também pode verificar a sintaxe de execução rodando o seguinte teste:

php5-fpm --test

Se você não estiver planejando utilizar o pool padrão PHP (www), sinta-se livre para removê-lo:

rm /etc/php5/fpm/pool.d/www.conf
service php5-fpm restart

 

GEARMAN JOB SERVER

O Gearman job server é obrigatório no AtoM 2.3.

apt-get install gearman-job-server

 

Outros pacotes

A fim de gerar e encontrar ajudas PDF, AtoM requer Apache FOP 2.1. Depois de baixar e extraí-lo, verifique se você tem o executável FOP no caminho executável do seu sistema. Além disso, pode ser necessário definir a variável de ambiente FOP_HOME para o caminho da pasta que você extraiu Apache FOP, por exemplo:

sudo bash -c "\
    set -e \
    && mkdir /usr/share/fop-2.1 \
    && wget https://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-2.1-bin.tar.gz -O /tmp/fop.tar.gz \
    && tar xvzf /tmp/fop.tar.gz --strip-components 1 -C /usr/share/fop-2.1 \
    && ln -s /usr/share/fop-2.1/fop /usr/bin/fop \
    && rm /tmp/fop.tar.gz \
    && echo 'FOP_HOME=/usr/share/fop-2.1' >> /etc/environment
"

Se você deseja que o AtoM seja capaz de processar objetos digitais em formatos como JPEG ou
extrair texto a partir de seus documentos PDF, há alguns pacotes que você precisa instalar. Eles não
são obrigatórios, mas se forem encontrados no sistema, o AtoM irá utilizá-los para produzir objetos
digitais derivados de seus objetos mestres. O comando a seguir irá instalar todas as dependências
recomendadas ao mesmo tempo:

apt-get install imagemagick ghostscript poppler-utils

Instale ffmpeg a partir do Archivematica PPA, que funciona tanto para Ubuntu 12.04 e Ubuntu
14.04.

add-apt-repository ppa:archivematica/externals
apt-get update
apt-get install ffmpeg

 

Instalação do Pacote Base Arch

Nesse ponto iniciaremos a implantação do pacote customizado do AtoM. A customização já prevê
algumas alterações visuais, inclusão de relatórios, tradução para Português, dentre outras. Siga
abaixo os passos para a conclusão da instalação com sucesso:
1. Baixar o pacote do blog
Entrar no diretório home

cd /home/fiocruz

Baixar o arquivo do blog

wget http://www.blogbasearch.coc.fiocruz.br/wp-content/uploads/2017/07/pacote.tgz

2. Descompactar o pacote

tar -xvzf pacote.tgz

3. Copiar o diretório atom para a pasta /usr/share/nginx/

cp atom /usr/share/nginx/ -R

4. Dar permissão ao usuário do Nginx

chown www-data:www-data /usr/share/nginx/atom -R

5. Criar o banco atom

mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8 COLLATE utf8_unicode_ci;"

Observe que o banco de dados tem sido chamado de atom. Sinta-se livre para mudar o nome
do banco.
No caso do seu servidor MySQL não ser o mesmo que o seu servidor web, substitua
“localhost” pelo endereço do seu servidor MySQL.
Aviso
Certifique-se de que você está usando um banco de dados vazio! Não reutilize uma base de dados antiga,
a menos que ela esteja vazia. Você sempre poderá utilizar o comando DROP DATABASE e depois criá-
la novamente.
6. Verificar se o banco foi criado (recomendado)

mysql -uroot -p -e "show databases;"

7. Dar permissão ao usuário no banco
É sempre uma boa ideia criar um usuário MySQL para o AtoM a fim de manter as
coisas seguras.
Com o comando abaixo você cria um usuário chamado useratom com a senha
atom123 e as permissões necessárias para acessar o banco de dados:

mysql -uroot -p -e "GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES on atom.* TO 'useratom'@'localhost' IDENTIFIED BY 'atom123'";

8. Copiar o dump (incluído no pacote) para o banco atom criado:

mysql -uroot -p atom < /home/fiocruz/atom.sql

9. Executar o comando refresh (script incluído no pacote para limpar o cache da
aplicação e reiniciar o Nginx) :

cd /usr/share/nginx/atom
./refresh.sh

10. Verificar no navegador (através do IP da máquina, 127.0.0.1 ou localhost) se a Base foi instalada corretamente

======================================================================================================================================================================

Gearman job server

Para o Gearman funcionar é preciso que o processo permaneça em execução no servidor, assim como o Elasticsearch e o Nginx.

Para isso, acesse o AtoM:

cd /usr/share/nginx/atom

e digite o seguinte comando:

php symfony jobs:worker