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

De wiki.franca.unesp.br
Ir para: navegação, pesquisa
(Created page with "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) p...")
 
Linha 1: Linha 1:
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 Dadosmysqldump -u seu_usuario_banco -p seu_banco_ojs > /tmp/ojs_prod_32.sql1.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 Temastar -czvf /tmp/public_ojs.tar.gz -C /var/www/ojs publicPasso 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 Caminhomkdir -p /usr/uploadstar -xzvf /tmp/uploads_ojs.tar.gz -C /usr/uploads2.2. Instalação do Código Limpo do OJS 3.3 e Restauração da Pasta Publiccd /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çãomysql -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.sqlPasso 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_logWHERE assoc_id IS NULLOR assoc_type IS NULLOR assoc_id = 0OR 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 InnoDBALTER 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 tabelasALTER 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 inexistentesDELETE FROM review_round_filesWHERE file_id NOT IN (SELECT file_id FROM submission_files);-- Remove registros zerados ou nulos que corrompem a chave estrangeira posteriorDELETE 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 InicialEdite 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 = Off4.2. Execução do UpgradeAcesse a pasta raiz do novo OJS e execute o comando:cd /var/www/ojs3php 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 lercd /var/www/ojs3sudo chown -R root:www-data .2. Libera escrita estritamente nas pastas de cache e uploads públicossudo chmod -R 775 cache/ public/3. Libera escrita no diretório privado de uploadssudo chown -R root:www-data /usr/uploadssudo chmod -R 775 /usr/uploads4. Limpa resíduos e caches antigos gerados no processosudo rm -rf cache/.php cache/t_compile/ cache/_db/*5.1. Ativação do SistemaRetorne ao arquivo /var/www/ojs3/config.inc.php e reative o OJS mudando a diretiva para:installed = On
+
= 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 ===
 +
<pre>
 +
mysqldump -u seu_usuario_banco -p seu_banco_ojs > /tmp/ojs_prod_32.sql
 +
</pre>
 +
 
 +
=== 1.2. Compactação do Diretório de Uploads Privados (files_dir) ===
 +
<pre>
 +
tar -czvf /tmp/uploads_ojs.tar.gz -C /usr/uploads .
 +
</pre>
 +
 
 +
=== 1.3. Compactação da Pasta Pública de Imagens e Temas ===
 +
<pre>
 +
tar -czvf /tmp/public_ojs.tar.gz -C /var/www/ojs public
 +
</pre>
 +
 
 +
== 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 ===
 +
<pre>
 +
mkdir -p /usr/uploads
 +
tar -xzvf /tmp/uploads_ojs.tar.gz -C /usr/uploads
 +
</pre>
 +
 
 +
=== 2.2. Instalação do Código Limpo do OJS 3.3 e Restauração da Pasta Public ===
 +
<pre>
 +
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/
 +
</pre>
 +
 
 +
=== 2.3. Criação e Importação do Banco de Dados de Homologação ===
 +
<pre>
 +
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
 +
</pre>
 +
 
 +
== 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:
 +
 
 +
<pre>
 +
-- =================================================================
 +
-- 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;
 +
</pre>
 +
 
 +
== 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:
 +
<pre>
 +
installed = Off
 +
</pre>
 +
 
 +
=== 4.2. Execução do Upgrade ===
 +
Acesse a pasta raiz do novo OJS e execute o comando:
 +
<pre>
 +
cd /var/www/ojs3
 +
php tools/upgrade.php upgrade
 +
</pre>
 +
* ''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:
 +
 
 +
<pre>
 +
# 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/*
 +
</pre>
 +
 
 +
=== 5.1. Ativação do Sistema ===
 +
Retorne ao arquivo `/var/www/ojs3/config.inc.php` e reative o OJS mudando a diretiva para:
 +
<pre>
 +
installed = On
 +
</pre>

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

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