Erro 500, lentidão no OJS e tabela VAR

Olá, pessoal! Nos últimos dias estamos enfrentando um problema no Portal de Periodicos da UFC. O sistema começa a ficar extremamente lento, sem condições de uso e com carregamento demorado de qualquer função. Geralmente, essa lentidão é seguida dessa tela de erro que indica problemas na tabela VAR e logo em seguida o site cai, apresentando o erro 500. Não conseguimos permanecer com o site no ar. Alguém aqui já passou por isso? Podem nos ajudar? Toda dica é muito bem-vinda. Obrigada.

1 curtida

@Juliana_Lima1, você chegou a verificar com o pessoal da TI responsável pela hospedagem do seu OJS?

Pelo erro exibido na imagem, há dois problemas principais: falha no acesso aos dados de sessão do PHP e falha na conexão com o banco de dados MySQL, provavelmente por conta de um problema no socket. Seria importante que a equipe técnica verificasse se o banco de dados está em funcionamento, se o arquivo config.inc.php está configurado com 127.0.0.1 (em vez de localhost) e se as permissões do diretório de sessões estão corretas. Reiniciar o serviço do Apache e do PHP também pode resolver.

Os logs de erro do servidor devem trazer mais detalhes sobre o que está acontecendo. A equipe da TI pode identificar rapidamente o problema por lá. Caso queiram compartilhar esses logs aqui, podemos ajudar a interpretar e sugerir correções mais específicas. Mas o primeiro passo é mesmo com o suporte técnico local, que tem acesso direto ao ambiente.

Olá @Juliana_Lima1.

A tela de erro que você compartilhou revela dois problemas principais que estão causando a instabilidade no portal OJS da UFC:

:warning: Erro principal:

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory

:white_check_mark: O que isso significa?

Esse erro indica que o PHP (e o OJS) não está conseguindo se conectar ao banco de dados MySQL/MariaDB. Isso pode ocorrer por alguns motivos:

  • O serviço do banco de dados está parado ou travou.
  • O caminho do socket do MySQL está incorreto ou ausente.
  • Problema de permissões no socket do MySQL (geralmente /var/run/mysqld/mysqld.sock).
  • Sobrecarga extrema do servidor, esgotando conexões ou recursos de I/O.
  • Parâmetros incorretos no config.inc.php, principalmente o host do banco de dados.

:warning: Erro de sessão:

Warning: session_start(): Failed to read session data: user
(path: /var/lib/php/sessions)

:white_check_mark: O que isso significa?

Esse alerta indica que o PHP não conseguiu ler ou gravar as sessões — o que também pode ser sintoma de:

  • Falta de espaço em disco.
  • Permissões erradas no diretório de sessões.
  • Sistema de arquivos temporários (como /var) cheio ou corrompido.
  • Lentidão ou travamento do disco.

:mag: Diagnóstico passo a passo:

1. Verificar se o banco está ativo

No servidor do OJS, rode:

sudo systemctl status mariadb
# ou
sudo systemctl status mysql

Se estiver parado, inicie:

sudo systemctl start mariadb

2. Verificar espaço em disco

Execute:

df -h

Se tmp, var, ou o disco raiz (/) estiverem 100% cheios, o PHP não consegue gravar sessões, nem o MySQL abrir tabelas corretamente.

3. Verificar permissões da pasta de sessão

Rode:

ls -ld /var/lib/php/sessions

Garanta que o dono seja www-data (ou o usuário do PHP no seu sistema) e que há permissão de leitura e escrita.

4. Verificar o caminho do socket do MySQL

No config.inc.php do OJS, veja se o host está como:

host = localhost

Se sim, o PHP vai tentar conectar via socket. Certifique-se de que o caminho do socket está correto.

Você pode mudar para usar TCP/IP colocando:

host = 127.0.0.1

Isso força a conexão via IP e evita problemas com socket ausente ou travado.

5. Limpar cache do OJS

Depois que estabilizar o banco de dados:

rm -rf cache/*.php
rm -rf cache/t_compile/*.tpl.php

:white_check_mark: Sugestão final

Esse tipo de erro é sintoma de um servidor sobrecarregado ou mal configurado. Se possível:

  • Aumente os limites de conexões do MySQL.
  • Adicione swap se estiver sem.
  • Revise os parâmetros de max_connections, wait_timeout e innodb_buffer_pool_size no MySQL.
  • Ative slow_query_log para detectar gargalos.