Mudanças entre as edições de "Atualizacao OJS"

De wiki.franca.unesp.br
Ir para: navegação, pesquisa
Linha 120: Linha 120:
 
=== 5.1. Ativação do Sistema ===
 
=== 5.1. Ativação do Sistema ===
 
Retorne ao arquivo `/var/www/ojs3/config.inc.php` e reative o OJS mudando a diretiva para:
 
Retorne ao arquivo `/var/www/ojs3/config.inc.php` e reative o OJS mudando a diretiva para:
 +
<pre>
 +
installed = On
 +
</pre>
 +
 +
 +
 +
 +
= Tutorial de Atualização Final: OJS 3.3.0.22 para OJS 3.5.0-5 LTS =
 +
 +
Este guia orienta a etapa final de atualização do Open Journal Systems (OJS) para a versão mais recente com suporte de longo prazo (LTS), fechando permanentemente as vulnerabilidades contra bots.
 +
 +
== Passo 1: Preparação do Pacote OJS 3.5 LTS ==
 +
 +
Acesse o terminal do novo servidor e faça o download do pacote limpo da versão mais recente diretamente do repositório do PKP.
 +
 +
=== 1.1. Download e Extração do OJS 3.5 ===
 +
<pre>
 +
cd /tmp
 +
wget https://sfu.ca
 +
tar -xzvf ojs-3.5.0-5.tar.gz
 +
</pre>
 +
 +
=== 1.2. Criação do Novo Diretório da Aplicação ===
 +
Para manter o ambiente organizado, criaremos uma pasta temporária para a nova versão e depois substituiremos a antiga.
 +
<pre>
 +
mv /tmp/ojs-3.5.0-5 /var/www/ojs35
 +
</pre>
 +
 +
== Passo 2: Migração dos Arquivos Públicos e Configurações ==
 +
 +
O OJS 3.5 exige o reaproveitamento da pasta pública e do diretório de uploads que já foram saneados na etapa anterior.
 +
 +
=== 2.1. Cópia da Pasta Public e Configuração ===
 +
<pre>
 +
cp -R /var/www/ojs3/public /var/www/ojs35/
 +
cp /var/www/ojs3/config.inc.php /var/www/ojs35/
 +
</pre>
 +
 +
=== 2.2. Ajuste de Parâmetros no config.inc.php ===
 +
Edite o arquivo `/var/www/ojs35/config.inc.php` para desativar o sistema temporariamente e conferir os caminhos:
 +
* Altere: <pre>installed = Off</pre>
 +
* Garanta que o caminho dos arquivos está correto: <pre>files_dir = /usr/uploads</pre>
 +
 +
== Passo 3: Execução do Script de Upgrade Final (CLI) ==
 +
 +
Ao contrário da migração anterior, a atualização do 3.3 para o 3.5 é focada em novos recursos e otimizações, levando poucos minutos.
 +
 +
=== 3.1. Execução do Comando ===
 +
Acesse a pasta da nova versão e execute o interpretador de atualização:
 +
<pre>
 +
cd /var/www/ojs35
 +
php tools/upgrade.php upgrade
 +
</pre>
 +
* ''Nota: Aguarde a exibição da mensagem de sucesso: "Successfully upgraded to version 3.5.0.5".''
 +
 +
== Passo 4: Substituição do Diretório de Produção e Permissões ==
 +
 +
Com o upgrade concluído com sucesso, vamos alternar as pastas para que a versão 3.5 assuma o caminho definitivo `/var/www/ojs3`.
 +
 +
=== 4.1. Substituição de Pastas ===
 +
<pre>
 +
cd /var/www
 +
mv ojs3 ojs3_antigo_33
 +
mv ojs35 ojs3
 +
</pre>
 +
 +
=== 4.2. Aplicação de Permissões Estritas Antibots ===
 +
Execute os comandos de proteção no diretório definitivo do OJS:
 +
<pre>
 +
cd /var/www/ojs3
 +
sudo chown -R root:www-data .
 +
sudo chmod -R 775 cache/ public/
 +
 +
# Permissão no diretório de uploads externo
 +
sudo chown -R root:www-data /usr/uploads
 +
sudo chmod -R 775 /usr/uploads
 +
 +
# Limpeza profunda de caches da versão anterior
 +
sudo rm -rf cache/*.php cache/t_compile/* cache/_db/*
 +
</pre>
 +
 +
=== 4.3. Reativação do Sistema ===
 +
Abra o arquivo `/var/www/ojs3/config.inc.php` e altere a seguinte diretiva para restabelecer o acesso público:
 
<pre>
 
<pre>
 
installed = On
 
installed = On
 
</pre>
 
</pre>

Edição das 16h52min de 15 de julho de 2026

Índice

Tutorial de Migração e Atualização do OJS (v3.2.1.4 para v3.3.0.22)

Este guia documenta o processo de migração de ambiente e atualização do Open Journal Systems (OJS) para corrigir inconsistências estruturais e eliminar vulnerabilidades de segurança exploradas por bots.

Passo 1: Backup e Exportação no Servidor Antigo (OJS 3.2.1.4)

Acesse o servidor de produção antigo via terminal SSH e execute os comandos abaixo para exportar o banco de dados e compactar os arquivos de mídias e submissões.

1.1. Exportação do Banco de Dados

mysqldump -u seu_usuario_banco -p seu_banco_ojs > /tmp/ojs_prod_32.sql

1.2. Compactação do Diretório de Uploads Privados (files_dir)

tar -czvf /tmp/uploads_ojs.tar.gz -C /usr/uploads .

1.3. Compactação da Pasta Pública de Imagens e Temas

tar -czvf /tmp/public_ojs.tar.gz -C /var/www/ojs public

Passo 2: Importação e Preparação no Novo Servidor (Debian/PHP 8.1)

Envie os arquivos gerados no `/tmp` do servidor antigo para o `/tmp` do novo servidor. Em seguida, prepare a estrutura do OJS 3.3.0.22 limpo.

2.1. Restauração dos Uploads Privados no Novo Caminho

mkdir -p /usr/uploads
tar -xzvf /tmp/uploads_ojs.tar.gz -C /usr/uploads

2.2. Instalação do Código Limpo do OJS 3.3 e Restauração da Pasta Public

cd /var/www/
# (Assumindo que você já baixou e extraiu o OJS 3.3 em /var/www/ojs3)
tar -xzvf /tmp/public_ojs.tar.gz -C /var/www/ojs3/

2.3. Criação e Importação do Banco de Dados de Homologação

mysql -u root -p -e "CREATE DATABASE ojs3_teste CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -u root -p ojs3_teste < /tmp/ojs_prod_32.sql

Passo 3: Saneamento Preventivo do Banco de Dados (DBeaver/MySQL)

Antes de iniciar a atualização, é obrigatório corrigir as inconsistências de dados e estruturas antigas que travam o atualizador do OJS. Abra o seu gerenciador de banco de dados (ex: DBeaver), conecte-se à base `ojs3_teste` e execute o bloco SQL abaixo integralmente:

-- =================================================================
-- CORREÇÃO 1: TABELA EMAIL_LOG (Erro de truncamento de dados)
-- =================================================================
DELETE FROM email_log 
WHERE assoc_id IS NULL 
   OR assoc_type IS NULL 
   OR assoc_id = 0 
   OR assoc_type = 0;

DELETE FROM email_log WHERE NOT assoc_id REGEXP '^[0-9]+\$';

-- =================================================================
-- CORREÇÃO 2: TABELA REVIEW_ROUND_FILES (Erro 150 / Chave Estrangeira)
-- =================================================================
-- Força as duas tabelas a usarem o mesmo motor InnoDB
ALTER TABLE submission_files ENGINE=InnoDB;
ALTER TABLE review_round_files ENGINE=InnoDB;

-- Iguala perfeitamente o tipo de dado da coluna de ligação nas duas tabelas
ALTER TABLE submission_files MODIFY file_id BIGINT NOT NULL;
ALTER TABLE review_round_files MODIFY file_id BIGINT NOT NULL;

-- Remove registros órfãos de revisões que apontam para arquivos inexistentes
DELETE FROM review_round_files 
WHERE file_id NOT IN (SELECT file_id FROM submission_files);

-- Remove registros zerados ou nulos que corrompem a chave estrangeira posterior
DELETE FROM review_round_files WHERE file_id IS NULL OR file_id = 0;

Passo 4: Execução do Script de Atualização (CLI)

Com os dados limpos, prepare o arquivo de configuração e dispare o interpretador de atualização do OJS via linha de comando.

4.1. Configuração Inicial

Edite o arquivo `/var/www/ojs3/config.inc.php` com as credenciais do banco `ojs3_teste`, aponte o `files_dir = /usr/uploads` e ajuste temporariamente a diretiva de instalação:

installed = Off

4.2. Execução do Upgrade

Acesse a pasta raiz do novo OJS e execute o comando:

cd /var/www/ojs3
php tools/upgrade.php upgrade
  • Nota: O processo realizará a migração pesada OJSv3_3_0UpgradeMigration. É normal o script levar entre 45 minutos e 2 horas processando as tabelas e arquivos em segundo plano. Aguarde a mensagem final: "Successfully upgraded to version 3.3.0.22".

Passo 5: Ajuste Fino de Permissões no Linux (Pós-Upgrade)

Para resolver erros de escrita de templates (`Smarty: unable to write file`) e garantir a segurança do ambiente contra injeções de arquivos por bots, aplique as permissões estritas no Debian:

# 1. Garante que o root é dono do código e o grupo www-data (Apache) possa ler
cd /var/www/ojs3
sudo chown -R root:www-data .

# 2. Libera escrita estritamente nas pastas de cache e uploads públicos
sudo chmod -R 775 cache/ public/

# 3. Libera escrita no diretório privado de uploads
sudo chown -R root:www-data /usr/uploads
sudo chmod -R 775 /usr/uploads

# 4. Limpa resíduos e caches antigos gerados no processo
sudo rm -rf cache/*.php cache/t_compile/* cache/_db/*

5.1. Ativação do Sistema

Retorne ao arquivo `/var/www/ojs3/config.inc.php` e reative o OJS mudando a diretiva para:

installed = On



Tutorial de Atualização Final: OJS 3.3.0.22 para OJS 3.5.0-5 LTS

Este guia orienta a etapa final de atualização do Open Journal Systems (OJS) para a versão mais recente com suporte de longo prazo (LTS), fechando permanentemente as vulnerabilidades contra bots.

Passo 1: Preparação do Pacote OJS 3.5 LTS

Acesse o terminal do novo servidor e faça o download do pacote limpo da versão mais recente diretamente do repositório do PKP.

1.1. Download e Extração do OJS 3.5

cd /tmp
wget https://sfu.ca
tar -xzvf ojs-3.5.0-5.tar.gz

1.2. Criação do Novo Diretório da Aplicação

Para manter o ambiente organizado, criaremos uma pasta temporária para a nova versão e depois substituiremos a antiga.

mv /tmp/ojs-3.5.0-5 /var/www/ojs35

Passo 2: Migração dos Arquivos Públicos e Configurações

O OJS 3.5 exige o reaproveitamento da pasta pública e do diretório de uploads que já foram saneados na etapa anterior.

2.1. Cópia da Pasta Public e Configuração

cp -R /var/www/ojs3/public /var/www/ojs35/
cp /var/www/ojs3/config.inc.php /var/www/ojs35/

2.2. Ajuste de Parâmetros no config.inc.php

Edite o arquivo `/var/www/ojs35/config.inc.php` para desativar o sistema temporariamente e conferir os caminhos:

  • Altere:
    installed = Off
  • Garanta que o caminho dos arquivos está correto:
    files_dir = /usr/uploads

Passo 3: Execução do Script de Upgrade Final (CLI)

Ao contrário da migração anterior, a atualização do 3.3 para o 3.5 é focada em novos recursos e otimizações, levando poucos minutos.

3.1. Execução do Comando

Acesse a pasta da nova versão e execute o interpretador de atualização:

cd /var/www/ojs35
php tools/upgrade.php upgrade
  • Nota: Aguarde a exibição da mensagem de sucesso: "Successfully upgraded to version 3.5.0.5".

Passo 4: Substituição do Diretório de Produção e Permissões

Com o upgrade concluído com sucesso, vamos alternar as pastas para que a versão 3.5 assuma o caminho definitivo `/var/www/ojs3`.

4.1. Substituição de Pastas

cd /var/www
mv ojs3 ojs3_antigo_33
mv ojs35 ojs3

4.2. Aplicação de Permissões Estritas Antibots

Execute os comandos de proteção no diretório definitivo do OJS:

cd /var/www/ojs3
sudo chown -R root:www-data .
sudo chmod -R 775 cache/ public/

# Permissão no diretório de uploads externo
sudo chown -R root:www-data /usr/uploads
sudo chmod -R 775 /usr/uploads

# Limpeza profunda de caches da versão anterior
sudo rm -rf cache/*.php cache/t_compile/* cache/_db/*

4.3. Reativação do Sistema

Abra o arquivo `/var/www/ojs3/config.inc.php` e altere a seguinte diretiva para restabelecer o acesso público:

installed = On