Carregando infinito - Depois da migração página adm não carrega [RESOLVIDO]

Olá, Adm uma revista OJS 3.2.1.2
Local: Painel admistrativo - Usuário: Editor Chefe
Servidor Ubuntu 22.04 rodando aapanel 8.0 - php 7.4

Sintoma:
Migrei de servidor e tive alguns problemas. O principal deles é que a página adm não carregada as fuções e nem os arquivos em pdf abriam no navegador.

Logs de erros:
Não apresentavam o problema. O problema aparecia na inspeção de elementos do chrome F12.

Problema:
Observei que havia um conflito de https que impediam o carregamento dos javascripts.

Tentei todas as soluções, editava o arquivo config-ini.php para forçar https, mudei a base url, base_url = “Revista Café com Sociologia

Porém nada deu certo. Tive que recorrer a uma solução paliativa.

1 curtida

Editei o arquivo que criava a exigência de https://

Editei lib/pkp/classes/core/PKPRequest.inc.php

Mudei:

function getProtocol() {
		if (!isset($this->_protocol)) {
			$this->_protocol = (!isset($_SERVER['HTTPS']) || strtolower_codesafe($_SERVER['HTTPS']) != 'on') ? 'http' : 'https';
			HookRegistry::call('Request::getProtocol', array(&$this->_protocol));
		}
		return $this->_protocol;
	}

Para

function getProtocol() {
    if (!isset($this->_protocol)) {
        // Força HTTPS
        $this->_protocol = 'https';
        HookRegistry::call('Request::getProtocol', array(&$this->_protocol));
    }
    return $this->_protocol;
}

Resolveu o problema. Isso ignora completamente o $_SERVER['HTTPS'] e força https .

1 curtida

@roniel ,
obrigado por compartilhar a solução adotada. No entanto, em vez de mexer no código-fonte do OJS, o melhor é corrigir a infraestrutura e a configuração.

A solução do por ti adotada força https no arquivo PKPRequest.inc.php. Funciona como paliativo, mas não é a melhor abordagem, porque pode ser perdida em atualizações e não corrige a causa real.

O problema mais provável é o OJS estar atrás de proxy/reverse proxy e não reconhecer corretamente que o acesso externo chega por HTTPS. Nesses casos, o ideal é:
configurar o proxy para enviar X-Forwarded-Proto=https;

fazer o Apache do backend reconhecer isso, por exemplo com:

SetEnvIf X-Forwarded-Proto “^https$” HTTPS=on

Também vale revisar no config.inc.php:

  • base_url e base_url[…] com a URL pública correta em https;
  • allowed_hosts, se houve mudança de domínio/subdomínio;
  • force_ssl = On só depois que o proxy estiver correto, porque senão pode gerar loop.

No entanto, é importante entender como proxy/ balanceador de carga está ajustado pra melhor entendimento de como o OJS está recebendo as requisições.

1 curtida

Você tem razão, o melhor a fazer é corrigir a estrutura. Passei vários dias tentando ajustar as configurações do OJS + aapanel + cloudflare. Depois de ter fracassado na sincronização de configurações de ssl, acabei tendo que tomar uma medida não-recomendada.

Tive que fazer esse ajuste mediante a impossibilidade de sucesso na parte da estrutura.