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