Skip to main content

MIGRANDO O ATOM 2.5.3 PARA 2.8.2

Para migrar para a versão 2.8.2 é necessário Ubuntu 20.04 LTS. A versão 2.5.3 está instalado no Ubuntu 18.04. Iremos aproveitar para atualizar e migrar para um novo servidor.

INSTALAR AS DEPENDÊNCIAS

MySQL

AtoM 2.8 requer MySQL 8.0 ou superior, pois usa expressões de tabela comuns. Além disso, tivemos resultados muito bons usando o Percona Server para MySQL 8.0, então não tenha medo e use-o se quiser!

sudo apt update
sudo apt install mysql-server

Por fim, vamos configurar nossos modos MySQL. O servidor MySQL pode operar em diferentes modos SQL, o que afeta a sintaxe SQL que o MySQL suporta e as verificações de validação de dados que ele executa.

Cole os seguintes valores em um novo arquivo em /etc/mysql/conf.d/mysqld.cnf e salve:

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

Agora vamos reiniciar o MySQL:

sudo systemctl restart mysql
Elasticsearch

Um servidor de busca baseado no Apache Lucene e desenvolvido em Java que trouxe ao AtoM muitos recursos avançados, desempenho e escalabilidade. Esta é provavelmente a maior mudança introduzida no AtoM 2.x e estamos satisfeitos com os resultados.

O Ubuntu não fornece um pacote, mas você pode baixá-lo diretamente do site do Elasticsearch se não conseguir baixá-lo usando o método a seguir.

Certifique-se de que o Java esteja instalado. Neste exemplo, usaremos o OpenJDK, mas a JVM da Oracle também funcionaria.

sudo apt install openjdk-11-jre-headless apt-transport-https software-properties-common

Após instalar o Java com sucesso, prossiga para instalar o Elasticsearch. Baixe e instale a chave de assinatura pública usada no repositório deles:

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

Agora adicione o repositório deles:

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

Pronto para ser instalado. Execute:

sudo apt update
sudo apt install elasticsearch

Inicie o serviço e configure-o para iniciar quando o sistema for inicializado.

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
PHP

O Ubuntu 20.04 agrupa o PHP 7.4, que é muito mais rápido do que versões mais antigas. O comando a seguir o instalará junto com o restante das extensões PHP necessárias pelo AtoM:

sudo apt install php-common php7.4-common php7.4-cli php7.4-curl php7.4-json php7.4-ldap php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml php7.4-mbstring php7.4-xsl php7.4-zip php-apcu php-apcu-bc

Se você estiver usando o Memcached como mecanismo de cache, você também precisará instalar o php-memcache:

sudo apt install php-memcache
Servidor de trabalho Gearman

O servidor de trabalho Gearman é exigido pelo AtoM a partir da versão 2.2.

sudo apt install gearman-job-server
Outros pacotes

Para gerar auxílios de busca em PDF, o AtoM requer que o Apache FOP esteja instalado. Felizmente, o Apache FOP agora pode ser instalado diretamente de pacotes do Ubuntu usando o comando abaixo.

O comando especificado abaixo usa o parâmetro --no-install-recommends: isso é intencional e garante que apenas dependências sejam instaladas e não pacotes ‘recomendados’. Se --no-install-recommends não for especificado, o openjdk-8-jre será instalado como uma dependência para um dos pacotes recomendados. Como o openjdk-8-jre-headless já foi instalado na seção de instalação do Elasticsearch acima, queremos evitar a instalação do pacote openjdk-8-jre também.

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

Certifique-se de que o comando java padrão aponta para o binário java versão 11 (ignore erros):

sudo update-java-alternatives -s java-1.11.0-openjdk-amd64

Se você quiser que o AtoM seja capaz de processar objetos digitais em formatos como JPEG ou extrair o texto de seus documentos PDF, há certos pacotes que você precisa instalar. Eles não são obrigatórios, mas se forem encontrados no sistema, o AtoM os usará para produzir derivados de objetos digitais a partir de seus objetos mestres. para mais informações sobre cada um, consulte: Requisitos: outras dependências. O seguinte instalará todas as dependências recomendadas de uma vez:

sudo apt install imagemagick ghostscript poppler-utils ffmpeg

Baixar o AtoM

Agora que instalamos e configuramos todas as dependências, estamos prontos para baixar e instalar o AtoM em si. A maneira mais segura é instalar o AtoM a partir do tarball, que você pode encontrar na seção de download. No entanto, usuários experientes podem preferir verificar o código do nosso repositório público.

As instruções a seguir pressupõem que estamos instalando o AtoM em /usr/share/nginx e que você está usando o AtoM 2.8.0.

wget https://storage.accesstomemory.org/releases/atom-2.8.2.tar.gz
sudo mkdir /usr/share/nginx/atom
sudo tar xzf atom-2.2.0.tar.gz -C /usr/share/nginx/atom --strip 1
Crie o banco de dados

Supondo que você esteja executando o MySQL no localhost, crie o banco de dados executando o seguinte comando usando a senha que você criou anteriormente:

sudo mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"

Observe que o banco de dados foi chamado de atom. Sinta-se à vontade para mudar seu nome.

Caso seu servidor MySQL não seja o mesmo que seu servidor web, substitua “localhost” pelo endereço do seu servidor MySQL.

Além disso, é sempre uma boa ideia criar um usuário MySQL específico para o AtoM para manter as coisas mais seguras. É assim que você pode criar um usuário chamado atom com senha 12345 e as permissões necessárias para o banco de dados criado acima.

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

Note que os privilégios INDEX, CREATE e ALTER são necessários somente durante o processo de instalação ou quando você estiver atualizando o AtoM para uma versão mais nova. Eles podem ser removidos do usuário quando você terminar a instalação ou você pode alterar o usuário usado pelo AtoM em config.php.

Restaurando a base do banco de dados

Importante lembrar que é necessário o dump do banco para realizar a restauração.

sudo mysql -h localhost -u root -p atom < ~/atom.sql

MIGRANDO O INDICE NO ELASTICSEARCH

CONFIGURANDO O CAMINHO DO REPOSITÓRIO

O repositório dos snapshots no SciELO é um ponto de montagem NFS. Este ponto NFS deve ser montado no novo servidor. Mas antes instale o pacote nfs-utils:

sudo yum install nfs-utils -y

Crie o diretório  do repositório:

sudo mkdir /var/lib/elasticsearch/backup-repo

Configure o /etc/fstab para persistir:

storage-scielo-251.scielo.org:/atom_es_bkp /var/lib/elasticsearch/backup-repo nfs vers=4,rsize=8192,wsize=8192,timeo=14,intr 0 0

Agora basta montar:

sudo systemctl daemon-reload
sudo mount -a
ADICIONADO O ELASTICSEARCH NA CONFIGURAÇÃO

Edite o arquivo  /etc/elasticsearch/elasticsearch.yml e adicione a linha abaixo de path.logs:

path.repo: /var/lib/elasticsearch/backup-repo

Reinicie o elasticsearch

sudo systemctl restart elasticsearch

Devemos garantir que o usuário elasticsearch seja o dono do diretório /var/lib/elasticsearch/backup-repo:

sudo chown elasticsearch. -R /var/lib/elasticsearch/backup-repo
CRIANDO O REPOSITÓRIO
curl -XPUT -H 'Content-Type: application/json' 'http://localhost:9200/_snapshot/es_backup_atom' -d '{
    "type": "fs",
    "settings": {
        "compress" : true,
        "location": "/var/lib/elasticsearch/backup-repo/es_backup_atom"
    }
 }'

Consulte o repositório:

curl -X GET "localhost:9200/_cat/snapshots/es_backup_atom?v&s=id&pretty"

image.png

RESTAURANDO O ÚLTIMO SNAPSHOT
curl -X POST "localhost:9200/_snapshot/es_backup_atom/20240920-025919/_restore?pretty"
LISTANDO OS INDICES RESTAURADOS
curl -X GET "http://localhost:9200/_cat/indices?v"

image.png

Baixar o AtoM

Agora que instalamos e configuramos todas as dependências, estamos prontos para baixar e instalar o AtoM em si. A maneira mais segura é instalar o AtoM a partir do tarball, que você pode encontrar na seção de download. No entanto, usuários experientes podem preferir verificar o código do nosso repositório público.

As instruções a seguir pressupõem que estamos instalando o AtoM em /usr/share/nginx e que você está usando o AtoM 2.8.0.

wget https://storage.accesstomemory.org/releases/atom-2.8.2.tar.gz
sudo mkdir /usr/share/nginx/atom-new
sudo tar xzf atom-2.2.0.tar.gz -C /usr/share/nginx/atom-new --strip 1
Copie seus dados antigos

Agora, vamos copiar o conteúdo dos diretórios antigos de uploads e downloads, bem como o banco de dados. Vamos primeiro mover a instalação 2.5.3 renomeando:

sudo mv /usr/share/nginx/atom /usr/share/nginx/atom-old

Vamos mover a nova versão:

sudo mv /usr/share/nginx/atom-new /usr/share/nginx/atom

Vamos copiar a pasta uploads e downloads para a nova instalação:

rsync -av /usr/share/nginx/atom-old/uploads/ /usr/share/nginx/atom/uploads/
rsync -av /usr/share/nginx/atom-old/downloads/ /usr/share/nginx/atom/downloads/