Mudanças entre as edições de "Atualizacao OJS"
| 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
- 1 Tutorial de Migração e Atualização do OJS (v3.2.1.4 para v3.3.0.22)
- 1.1 Passo 1: Backup e Exportação no Servidor Antigo (OJS 3.2.1.4)
- 1.2 Passo 2: Importação e Preparação no Novo Servidor (Debian/PHP 8.1)
- 1.3 Passo 3: Saneamento Preventivo do Banco de Dados (DBeaver/MySQL)
- 1.4 Passo 4: Execução do Script de Atualização (CLI)
- 1.5 Passo 5: Ajuste Fino de Permissões no Linux (Pós-Upgrade)
- 2 Tutorial de Atualização Final: OJS 3.3.0.22 para OJS 3.5.0-5 LTS
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