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 18.04 LTS (Bionic Beaver).
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

O AtoM 2.6 requer MySQL 8.0 ou superior.

Para MySQL, verifique a versão mais recente do repositório APT em sua página de downloads e baixe-a de lá ou use o wget conforme abaixo. Quando questionado sobre qual produto você deseja configurar, deixe os padrões, selecione “Ok” e continue.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
dpkg -i mysql-apt-config_0.8.15-1_all.deb

Durante a instalação, você será solicitado a definir uma senha para o usuário administrador padrão (root). Recomendamos fortemente que você use uma senha forte e anote-a em um lugar seguro, pois você precisará dela mais tarde. Além disso, será solicitado que você selecione o plug-in de autenticação padrão, que deve ser definido como “Use Legacy Authentication Method”.

apt update
apt install mysql-server
apt-get install mysql-server-5.5

Finalmente, vamos configurar o modo MySQL. O servidor MySQL pode operar em diferentes modos SQL, o que afeta a sintaxe SQL compatível com o MySQL e as verificações de validação de dados que realiza. Adicionaremos nossas configurações de modo preferidas em um novo arquivo.

Primeiro, vamos criar um novo arquivo com nossos modos SQL.

Abra o arquivo /etc/mysql/conf.d/mysqld.cnf:

nano /etc/mysql/conf.d/mysqld.cnf

Adicione a seguinte valores no arquivo:

[mysqld]
sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
optimizer_switch='block_nested_loop=off'

Salve as alterações (CTRL + O) e depois saia (com CTRL + X)
Agora reinicie o MySQL:

systemctl restart mysql

Elasticsearch

Instalação do Java:

add-apt-repository ppa:openjdk-r/ppa
apt update
apt install openjdk-8-jre-headless software-properties-common

Depois de instalar o Java com sucesso, prossiga com a instalação do Elasticsearch. Baixe e instale a chave de assinatura pública usada em seu repositório:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Adicione no repositório:

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Instalação do Elasticsearch:

apt update
apt install elasticsearch

Configure o serviço para habilitar e iniciar o elasticsearch:

systemctl enable elasticsearch
systemctl start elasticsearch

 

Nginx

apt 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-available/, 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-available/atom.
Abra o arquivo:

nano /etc/nginx/sites-available/atom

E adicione:

upstream atom {
  server unix:/run/php7.2-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 habilitar e reiniciar o Nginx:

systemctl enable nginx
systemctl reload nginx

 

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 install php7.2-cli php7.2-curl php7.2-json php7.2-ldap php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml php7.2-fpm php7.2-mbstring php7.2-xsl php7.2-zip php-apcu

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

Abrir o arquivo:

nano /etc/php/7.2/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 = /run/php7.2-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
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
php_admin_value[opcache.enable] = 1
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:

systemctl enable php7.2-fpm
systemctl start php7.2-fpm

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:

php-fpm7.2 --test

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

rm /etc/php/7.2/fpm/pool.d/www.conf
systemctl restart php7.2-fpm

 

GEARMAN JOB SERVER

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

apt 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:

apt install --no-install-recommends fop libsaxon-java

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 install imagemagick ghostscript poppler-utils ffmpeg

 

Instalação do AtoM

Agora que instalamos e configuramos todas as dependências, estamos prontos para baixar e instalar o próprio AtoM.
Siga abaixo os passos para a conclusão da instalação com sucesso:
1. Download do AtoM

wget https://storage.accesstomemory.org/releases/atom-2.6.3.tar.gz

2. Criar a pasta atom

mkdir /usr/share/nginx/atom

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

tar xzf atom-2.6.3.tar.gz -C /usr/share/nginx/atom --strip 1

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

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

5. Criar o banco atom

mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_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 atom com a senha
12345 e as permissões necessárias para acessar o banco de dados:

mysql -h localhost -u root -p -e "CREATE USER 'atom'@'localhost' IDENTIFIED BY '12345';"
mysql -h localhost -u root -p -e "GRANT ALL PRIVILEGES ON atom.* TO 'atom'@'localhost';"

8. Executar o instalador web (através do IP da máquina, 127.0.0.1 ou localhost)

Agora você deve estar pronto para executar o instalador. É uma interface da web simples que altera alguns arquivos de configuração internos de acordo com seu ambiente e adiciona as tabelas necessárias e os dados iniciais ao banco de dados criado recentemente.

Abra seu navegador e digite o URL na barra de endereço. O URL pode mudar muito dependendo da configuração do seu servidor web. O URL geralmente será algo como http: // localhost. AtoM irá redirecioná-lo para o instalador automaticamente.

O processo de instalação consiste em várias etapas em que serão solicitados detalhes de configuração, como a localização do servidor de banco de dados.

  • Database name: atom
  • Database username: atom
  • Database password: 12345
  • Database host: localhost
  • Database port: 3306
  • Search host: localhost
  • Search port: 9200
  • Search index: atom

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

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