Tradução da Instalação do AtoM (ICA-AtoM) do site da Artefactual versão 2.3 com Ubuntu 16.04
Tradução da Instalação do AtoM (ICA-AtoM) do site da Artefactual - Versão 2.3 com Ubuntu 16.04
Documento original no Google Drive: https://docs.google.com/document/d/1mMyAqcsBwbORC2AvNWEPutmZyHOQW4yWh0vme3KsZqk/pub
Linux - Ubuntu 16.04 LTS (Xenial Xerus)
Muitos dos passos de configuração descritos neste documento são aplicáveis à qualquer ambiente moderno do Linux, contanto, alguns deles só serão aplicados ao Ubuntu e provavelmente à qualquer distribuição baseada em Ubuntu.
Este documento é baseado em Ubuntu 16.04 LTS (Xenial Xerus). Uma vez que você o tenha instalado, você deve seguir as instruções descritas a baixo. Particularmente, nós usaremos pacotes do Ubuntu que podem ser encontrados nos repositórios main e universe.
Importante: Por favor verifique se você revisou os requisitos antes de prosseguir.
Instalando as dependências.
- MYSQL
Nós recomendamos o uso do MySQL 5.6 que é muito mais rápido que seus antecessores. Também experenciamos resultados muitos bons usando Percona Server ou MariaDB, então não fique com medo e os use se quiser!
Vamos instalar o MySQL usando apt install:
sudo apt install percona-server-server-5.6
Durante a instalação, você será requisitado a adicionar uma senha para o administrador padrão (user). Recomendamos que você use uma senha forte e que a salve, pois vai precisar dela mais tarde.
- ELASTICSEARCH
Um relativamente novo servidor de pesquisa baseado em Apache Lucene e desenvolvido no Java que trouxe ao AtoM muitos aspectos, performances e escalabilidade avançados. Isto é provavelmente a maior mudança introduzida no AtoM 2.x e estamos satisfeitos com os resultados.
Ubuntu não disponibiliza um pacote, mas você pode baixar diretamente do site do Elasticsearch se não conseguir a partir dos seguintes métodos.
Primeiro, certifique-se de que o Java está instalado. Neste exemplo usaremos OpenJDK, mas o JVM da Oracle também deve funcionar.
sudo apt install openjdk-8-jre-headless
Após a instalação do Java, prossiga para a instalação do Elasticsearch. Faça o download e instale a chave de acesso publica do repositorio deles:
wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
Agora adicione o repositorio do Elasticsearch:
sudo add-apt-repository "deb http://packages.elasticsearch.org/elasticsearch/1.7/debian stable main"
Pronto para ser instalado. Execute:
sudo apt update
sudo apt install elasticsearch
sudo apt install elasticsearch
Inicie o serviço e configure-o para iniciar juntamente ao sistema.
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl start elasticsearch
- WEB SERVER
Existem vários servidores capazes de funcionar bem com PHP. O Apache é, provavelmente, o mais popular, nós gostamos dele, mas descobrimos que o Nginx se adapta melhor a ambientes de recursos limitados enquanto ele também se mantém melhor e mais previsivel abaixo de cargas pesadas. Você está livre para tentar usar outras soluções, mas a seguinte documentação focará apenas em Nginx.
Nginx
No ubuntu, a instalação do Nginx é simples:
O Nginx implanta um servidor padrão (também conhecido como VirtuaHost pelos usuários do Apache) chamado default que pode ser encontrado em /etc/nginx/sites-available/default. Para instalar o AtoM você pode editar o bloco de servidor existente ou adicionar um novo. Nós iremos lhe mostrar como fazer o ultimo.
sudo touch /etc/nginx/sites-available/atom
sudo ln -sf /etc/nginx/sites-available/atom /etc/nginx/sites-enabled/atom
sudo rm /etc/nginx/sites-enabled/default
sudo ln -sf /etc/nginx/sites-available/atom /etc/nginx/sites-enabled/atom
sudo rm /etc/nginx/sites-enabled/default
Agora nós criamos o arquivo de configuraçãos e o conectamos a partir de sites-enabled/ que é o diretório que o Nginx procurará. Isto significa que você pode desabilitar um site removendo seu symlink do diretório sites-enabled/ enquanto armazena o original em sites-available/ caso você queira reutilizá-lo no futuro. Você pode fazer isso com o servidor padrão do Nginx.
A seguir temos o bloqueador padrão de servidor para AtoM. Coloque os seguintes conteúdos em /etc/nginx/sites-enabled/atom.
upstream atom {
server unix:/run/php7.0-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;
}
}
server unix:/run/php7.0-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;
}
}
Agora você precisa habilitar e recarregar o Nginx:
sudo systemctl enable nginx
sudo systemctl reload nginx
sudo systemctl reload nginx
- PHP
O Ubuntu 16.04 empacota o PHP 7.0 que é muito mais rápido que suas versões anteriores.
Nossa maneira favorita de implantar o AtoM é utilizando o PHP-FPM, um gerenciador de processos que estabiliza melhor que outras soluções como o FastCGI. O comando seguinte o instalará juntamente com o resto das extensões exigidas pelo AtoM:
sudo apt install php7.0-cli php7.0-curl php7.0-json php7.0-ldap php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml php7.0-fpm php7.0-mbstring php7.0-mcrypt php7.0-xsl php7.0-zip php-memcache php-apcu
Nós também precisamos de php-apcu-bc, que não está disponível por enquanto para o Ubuntu 16.04. Vamos instalá-lo manualmente por enquanto:
sudo apt install php-dev
sudo pecl install apcu_bc-beta
echo "extension=apc.so" >> /etc/php/7.0/mods-available/apcu-bc.ini
ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/fpm/conf.d/30-apcu-bc.ini
ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/cli/conf.d/30-apcu-bc.ini
sudo systemctl restart php7.0-fpm
sudo pecl install apcu_bc-beta
echo "extension=apc.so" >> /etc/php/7.0/mods-available/apcu-bc.ini
ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/fpm/conf.d/30-apcu-bc.ini
ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/cli/conf.d/30-apcu-bc.ini
sudo systemctl restart php7.0-fpm
Vamos adicionar uma nova PHP pool para AtoM adicionando os seguintes conteúdos em um novo arquivo chamado /etc/php/7.0/fpm/pool.d/atom.conf:
[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.0-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"
; 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.0-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"
O gerenciador do processo precisa ser habilitado e reinicializado:
sudo systemctl enable php7.0-fpm
sudo systemctl start php7.0-fpm
sudo systemctl start php7.0-fpm
Se o serviço falhar ao inicializar, cheque se o arquivo de configuração foi colado corretamente. Você pode também testar se o syntax está funcionando:
sudo php-fpm7.0 --test
Se você não planeja usar o PHP pool padrão (www), sinta-se livre para remove-lo:
sudo rm /etc/php/7.0/fpm/pool.d/www.conf
sudo systemctl restart php7.0-fpm
sudo systemctl restart php7.0-fpm
- GERMAN JOB SERVER
O German Job Server é exigido pelo AtoM a partir da versão 2.2.
sudo apt install gearman-job-server
- OTHER PACKAGES
Para gerar instrumentos de pesquisa PDF, o AtoM exige o Apache FOP 2.1. Após fazer o download e descompacta-lo, certifique-se que você tem o arquivo executável fop no caminho de execução do seu sistema.
Além disso, você talvez precise definir a variável ambiental FOP_HOME para o caminho da pasta que você extraiu o Apache FOP. O seguinte é um comando único e irá definir tudo para você automaticamente:
sudo -u root 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
"
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ê quer que o AtoM seja capaz de processar objetos digitais em formatos como JPEG ou extrair o texto dos seus documentos em PDF, existem certos pacotes que você precisa instalar. Eles não são obrigatórios mas se forem encontrados no sistema, o AtoM irá usa-los para produzir objetos digitais derivados dos seus objetos principais. Para mais informações, visite: Requirements: other dependencies. O seguinte instala-rá todas as dependências recomendadas de uma vez.
sudo apt install imagemagick ghostscript poppler-utils ffmpeg
- DOWNLOAD AtoM
Agora que instalamos e configuramos todas as dependências, estamos prontos para fazer o download e instalar o AtoM em si. A maneira mais segura é instalando o AtoM a partir do tarball, que você pode encontrar na seção de downloads. Entretanto, usuários experientes talvez prefiram analizar o código do nosso repositório público.
As seguintes instruções assumem que nós estamos instalando AtoM abaixo de /usr/share/nginx e que estamos usando AtoM 2.3.0.
Opção 1: Fazendo o download do Tarball
wget https://storage.accesstomemory.org/releases/atom-2.3.0.tar.gz
sudo mkdir /usr/share/nginx/atom
sudo tar xzf atom-2.3.0.tar.gz -C /usr/share/nginx/atom --strip 1
sudo mkdir /usr/share/nginx/atom
sudo tar xzf atom-2.3.0.tar.gz -C /usr/share/nginx/atom --strip 1
Por favor, perceba que o tarball talvez não esteja disponível ainda se esta versão ainda está em desenvolvimento. Neste caso, você pode tentar alternar para o método de instalação citado abaixo.
Opção 2: Confira o código do nosso repositório GIT.
Instale o git:
sudo apt install git
sudo mkdir /usr/share/nginx/atom
sudo git clone -b stable/2.3.x http://github.com/artefactual/atom.git /usr/share/nginx/atom
cd /usr/share/nginx/atom
sudo git clone -b stable/2.3.x http://github.com/artefactual/atom.git /usr/share/nginx/atom
cd /usr/share/nginx/atom
Se você não está interessado em fazer o download de toda a história do git, você pode também reduzi-lo a um específico numero de revisões, por exemplo: apenas uma versão:
git clone --depth 1 http://github.com/artefactual/atom.git /usr/share/nginx/atom
Uma vez que você clonou o código do nosso repositório git, você precisa-rá compilar os arquivos CSS:
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt install nodejs make
sudo npm install -g "less@<2.0.0"
sudo make -C /usr/share/nginx/atom/plugins/arDominionPlugin
sudo apt install nodejs make
sudo npm install -g "less@<2.0.0"
sudo make -C /usr/share/nginx/atom/plugins/arDominionPlugin
- FILESYSTEM PERMISSIONS
Por padrão, Nginx executa como um usuário www-data. Existem alguns diretórios abaixo de AtoM que precisam ser escritos pelo servidor da web. A maneira mais fácil de garantir isto, é atualizando o dono do diretório do AtoM e seu conteúdo executando:
sudo chown -R www-data:www-data /usr/share/nginx/atom
Se você está implantando o AtoM em um ambiente compartilhado, nós recomendamos que você preste atenção nas permissões definidas para os “outros”. O seguinte é um exemplo de como limpar todos os pedaços de modo para os outros:
sudo chmod o= /usr/share/nginx/atom
- CREATE THE DATABASE
Assumindo que você está executando o MySQL em um localhost, por favor, crie a base de dados executando o seguinte comando, usando a senha que você criou mais cedo:
mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
Perceba que a base de dados foi chamada de atom. Sinta-se livre para alterar este nome.
Se o seu servidor do MySQL não for o mesmo que o seu servidor da web, troque o “localhost” com o endereço do seu servidor MySQL.
AVISO:
Tenha certeza que você está usando uma base de dados vazia! Não re-utilize uma base de dados antiga a menos que ela esteja vazia. Você sempre pode derruba-la usando o comando DROP DATABASE e então cria-la novamente.
Além disso, é sempre uma boa ideia criar um usuário MySQL específico para que o AtoM mantenha as coisas mais seguras. É assim que você pode criar um usuário chamado atom com senha 12345 e as permições necessárias para a base de dados criadas acima.
mysql -h localhost -u root -p -e "GRANT INDEX, CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON atom.* TO 'atom'@'localhost' IDENTIFIED BY '12345';"
Note que os privilégios de INDEX, CREATE e ALTER são somente necessários durante a instalação ou quando você atualiza o AtoM para uma nova versão. Eles podem ser removidos do usuário uma vez que você terminar a instalação ou você pode alterar o usuário utilizado pelo AtoM a partir de config.php.
- RUN THE WEB INSTALLER
Você agora deve estar preparado para executar o instalador. É uma interface simples na web que altera algumas configurações internas de acordo ao seu ambiente adicionando as mesas e os dados iniciais necessários à base de dados recentemente criada.
Abra o seu navegador e digite a URL na barra de endereços. A URL pode mudar muito dependendo da configuração do seu servidor. A URL será, normalmente, algo como http://localhost. O AtoM te redirecionará para o instalador automaticamente.
O processo de instalação consiste em um número de passos nos quais você será questionado sobre alguns detalhes de configuração, como a localização do servidor da sua base de dados. Se você seguiu este documento ao pé da letra, é assim que você deve preencher os seguintes campos:
- Database name: atom
- Database username: atom
- Database password: 12345
- Database host: localhost
- Database port: 3306
- Search host: localhost
- Search port: 9200
- Search index: atom
Com certeza, alguns desses campos aparentarão bem diferente se você estiver executando o AtoM de uma maneira distribuida, na qual os seus serviços de MySQL ou Elasticsearch estão sendo executados em máquinas distintas.
O outros campos podem ser completados como necessário:
- Site title
- Site description
- Site base URL
- Username
- E-mail address
- Password
Dica: Você pode mudar o título do site, a descrição e a URL de base mais tarde, através de Admin > Settings > Site information. Veja: Site information para mais informações. O nome de usuário, email e senha também podem ser alterados por um administrador após a instalação, através da interface de usuário - veja: Edite um usuário existente.
Can't connect to the server (Failed to connect to localhost port 9200: Connection refused).
ResponderExcluirEu tivesse esse problema, como resolver?