Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Procédure

O que é uma página em branco ou um erro 500?

O erro 500 é um código de estado da página que significa Internal Server Error (erro interno do servidor). Significa que ocorreu um erro no servidor Web. Este pode ter vindo do servidor Web Apache2, do interpretador PHP, que passou o erro para o servidor Web, ou da base de dados MySQL, que passou o erro para o PHP e, por sua vez, o passou para o servidor Web. O aspeto é o seguinte:

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

No caso de outros navegadores, poderá ver apenas uma página em branco sem conteúdo:

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Para os sítios Prestashop, verá uma página de erro gerada pelo Prestashop :

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Para diagnosticar o problema, será mais prático apresentar os erros diretamente no seu sítio Web (mesmo que sejam visíveis no ficheiro error.log na pasta de registo acessível através da sua conta FTP).

Visualizar os erros de PHP

Para mostrar os erros de PHP, é necessário modificar o ficheiro php.ini do sítio em questão. No ISPConfig, clique em Sites e seleccione o site em questão:

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Em seguida, clique no separador "Opções" e adicione a seguinte linha ao campo "Definições php.ini personalizadas":

display_errors = On

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Também é aconselhável adicionar a seguinte linha para garantir que os erros são comunicados de forma a serem apresentados no ecrã (caso o script o desactive por predefinição):

error_reporting = E_ALL

Ativar o modo de depuração no seu sítio Web

Alguns CMS e estruturas como o WordPress, Prestashop, Symfony, Laravel, etc. podem ignorar o facto de display_errors estar definido como On no PHP, uma vez que têm os seus próprios sistemas de gestão de erros.

Ativar o modo de depuração no WordPress

Para ativar o modo de depuração num site baseado em WordPress, terá de modificar o ficheiro wp-config.php definindo o valor de WP_DEBUG para true e WP_DEBUG_DISPLAY para true também.

Se WP_DEBUG_DISPLAY não estiver em wp-config.php, terá de o adicionar depois de WP_DEBUG:


define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', true);

Ativar o modo de depuração no Prestashop

Para ativar o modo de depuração no Prestashop, terá de modificar o ficheiro config/defines.inc.php. Neste ficheiro, defina _PS_MODE_DEV_ como true.

define('_PS_MODE_DEV_', true);

Ativar o modo de depuração no Joomla

Para ativar o modo de depuração no Joomla, terá de modificar o ficheiro configuration.php. Neste ficheiro, defina $debug como 1 e $error_reporting como máximo.


public $debug = '1'; public $error_reporting = 'maximum';

Habilitando o modo de depuração no Laravel

Para ativar o modo de depuração no Laravel, é necessário modificar o arquivo .env definindo APP_DEBUG como true:

APP_DEBUG=true

Em seguida, você precisa excluir o cache do arquivo de configuração. Na sua consola, execute o seguinte comando:

php artisan config:clear

Entendendo os erros do PHP

O segundo passo mais importante é compreender os erros e encontrar uma solução.

Erro de análise - erro de sintaxe

Os erros "parse error" e "syntax error" são causados por uma má escrita do código PHP: falta de ponto e vírgula no fim, parêntesis que não fecham, vírgulas invertidas, etc. Terá de verificar o script no seu sítio Web.

Certas sintaxes podem também causar problemas apenas em certas versões do PHP, porque a sintaxe do PHP evolui entre várias versões. Por exemplo, a utilização de parêntesis rectos para declarar uma matriz funciona no PHP 7.2, o que não acontece no PHP 7.4.

Por conseguinte, vale a pena verificar eajustar a versão do PHP de acordo com as especificidades do seu sítio Web.

Erro fatal: chamada a uma função indefinida

Quando este erro ocorre, a função que o PHP está a tentar chamar não existe. Este problema ocorre quando os ficheiros estão em falta ou incompletos no seu sítio Web.

Erro fatal: Uncaught Error: Call to undefined function mysql_connect()

Esta mensagem de erro indica que a função mysql_connect() não existe. Esta função não existe mais no PHP 7.0 e posterior. Terá de utilizar uma versão 5.x do PHP para que o seu sítio Web funcione.

Erro fatal: cannot redeclare

Quando este erro ocorre, o mesmo nome de função foi declarado várias vezes. Este problema ocorre sobretudo quando plugins, temas, módulos, etc. utilizam o mesmo nome de função.

Erro fatal: tamanho de memória permitido esgotado

Isto significa que a memória RAM máxima autorizada foi ultrapassada. Este problema ocorre quando excede o memory_limit especificado no seu sítio Web.

Os valores recomendados pré-instalados no seu pacote VPS são os seguintes:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: memory_limit=2048M (2 GB)
  • VPS L: memory_limit=4096M (4 GB)
  • VPS XL: memory_limit=6144M (6 GB)
  • VPS PRO S: limite_de_memória=7168M (7 GB)
  • VPS PRO M: memory_limit=8192M (8 GB)
  • VPS PRO L: memory_limit=9216M (9 GB)
  • VPS PRO XL: memory_limit=12288M (12 GB)

No entanto, se quiser personalizar o valor memory_limit, pode fazê-lo a partir do ISPConfig.

No separador "Opções " do seu sítio Web ISPConfig, adicione a linha memory_limit às directivas PHP.INI:

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Mais informações sobre este assunto: Como modificar o ficheiro php.ini no meu servidor VPS através do ISPConfig?

Erro fatal: Tempo máximo de execução excedido

Esta mensagem de erro está relacionada com o facto de o seu script PHP estar a demorar mais tempo a produzir um resultado do que o permitido pelos seus parâmetros php.ini.

Para ultrapassar este problema, pode aumentar o tempo máximo de execução. Ainda no separador 'Options' do seu sítio web ISPConfig, adicione a seguinte linha às directivas PHP.INI:

max_execution_time = 1800

Aqui nós definimos 1800 segundos, ou 30 minutos.

Importante: Se o tempo de execução do PHP for muito longo, o Apache2 pode não ser capaz de esperar até o final. Como resultado, o Apache2 enviará um erro 503 ao seu visitante (um erro 522 ou 524 se estiver a utilizar o CloudFlare). Por conseguinte, é importante manter este valor o mais baixo possível. Aconselhamos que o defina para 30 segundos(max_execution_time = 30), a menos que planeie efetuar operações de importação ou exportação em massa nos seus sítios.

SQLSTATE[28000] [1045] Acesso negado para o utilizador

Isto indica que o utilizador ou a palavra-passe MySQL que está a utilizar está incorreto.

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig
Exemplo de uma página de erro "Acesso negado" no Prestashop

Se estiver a utilizar o WordPress, a mensagem de erro pode ser diferente:

Erro ao estabelecer uma ligação à base de dados

Para verificar se uma combinação de utilizador/palavra-passe MySQL é funcional, sugiro que vá ao phpMyAdmin e a utilize.

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Se o phpMyAdmin também apresentar um erro como este, então o seu utilizador ou palavra-passe MySQL está incorreto. Pode então redefini-la no ISPConfig.

A ligação à base de dados não pode ser estabelecida:SQLSTATE[HY000] [2002] No such file or directory

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Esta mensagem de erro está relacionada com o facto de o seu sítio web estar a tentar ligar-se ao seu servidor MySQL usando um socket Unix em vez de uma ligação TCP.

No entanto, o socket Unix que está a tentar utilizar não está acessível ao seu nível (devido à restrição openbase_dir, por exemplo).

Para resolver este problema, é necessário forçar o seu sítio web a utilizar a ligação TCP, substituindo "localhost " por "127.0.0.1 " no parâmetro do servidor MySQL do seu sítio web.

Para o Prestashop 1.6, terá de editar o ficheiro config/settings.inc.php:

Diagnosticar e corrigir um erro 500 em um VPS com ISPConfig

Para o Prestashop 1.7, terá de editar o ficheiro app/config/parameters.php:

[...] 'database_host' => '127.0.0.1', [...]

Para um sítio WordPress, terá de editar o ficheiro wp-config.php:

[...] define('DB_HOST', '127.0.0.1'); [...]

Para um site Joomla, terá de editar o ficheiro configuration.php:

[...] public $host = '127.0.0.1'; [...]

Procedimento de vídeo para WordPress


Avaliar este artigo :

Este artigo foi útil para si ?

Article utileSim

Article non utileNão

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artigos semelhantes

2mn leitura

Como é que crio uma conta FTP no ISPConfig?

0mn leitura

Ligação SFTP

1mn leitura

Como posso ativar o SSL no meu site com o ISPConfig 3?

0mn leitura

Como é que altero a palavra-passe FTP do IspConfig?


Fazer uma pergunta à equipa do LWS e à sua comunidade