Avaliar este artigo :
2,5/5 | 2 opinião
Este artigo foi útil para si ?
Sim
Não
Vous avez noté 0 étoile(s)
Sommaire
Procédure
Quando tenta visitar um sítio Web e vê a mensagem de erro "500 Internal Server Error", isso significa que algo correu mal com o sítio Web. O erro pode ser particularmente frustrante, uma vez que pode não lhe dar qualquer informação sobre a causa específica do erro. Este artigo mostra-lhe como depurar um erro 500 no seu sítio Web.
Uma página em branco não é necessariamente um erro 500, e vice-versa. Um erro 500 significa que ocorreu um erro durante o processamento do pedido HTTP. Pode ser um erro na execução do script associado, um problema no acesso a um recurso, etc., que faz com que o servidor Web devolva uma resposta com o código de erro 500. Uma página em branco, por outro lado, significa que o servidor Web não devolveu quaisquer corpos na sua resposta, ou mesmo nenhuma resposta.
Nalgumas situações, um erro 500 significa que o servidor Web não tem resposta a dar e, por isso, provoca uma página em branco. É possível que isto aconteça quando não foi configurada uma página de erro 500, ou também se a saída de erro foi desactivada e, por isso, o site não tem qualquer mensagem de erro a mencionar.
Alguns browsers, como o Chrome e o Internet Explorer, apresentam a sua própria página de erro 500 quando recebem o código de erro do cabeçalho HTTP sem que o servidor forneça qualquer conteúdo no corpo da resposta:
Os erros 500 estão frequentemente associados a um problema com um dos ficheiros .htaccess que actuam no URL, ou a um erro de PHP. Assim, ao ativar a visualização de erros com a opção display_errors do php.ini, deverá ver aparecerem erros de PHP em vez do erro 500.
Para determinar se tem um erro 500, tem de ver o código de erro HTTP devolvido pelo servidor Web ao seu navegador Web. Este pode ser identificado através do separador "Rede" na consola de programação do seu navegador:
A primeira coisa a fazer é verificar os ficheiros de registo associados ao pedido HTTP: o ficheiro de registo do Apache e o ficheiro de registo do PHP. Os últimos 300 eventos que lhe dizem respeito no ficheiro de registo Apache podem ser consultados a partir do ícone "Erros" na sua interface cPanel, enquanto o ficheiro de registo PHP é geralmente o ficheiro "error_log" visível ao lado do ficheiro PHP em causa:
No entanto, é possível que os erros não sejam apresentados nos registos. Isto pode ser o resultado de uma configuração que impede que os erros de PHP sejam apresentados e/ou registados. Saiba mais.
No entanto, se estiver a utilizar o WordPress, Prestashop ou Joomla, é muito possível que não sejam visíveis quaisquer alterações. Neste caso, terá deativar a apresentação de erros nos respectivos ficheiros de configuração .
A maioria dos CMS, como o WordPress, tem um sistema interno de tratamento de erros, que impede que os parâmetros PHP existentes sejam processados e actuem em função do erro encontrado. Ao ativar o modo de depuração, está a pedir a este sistema interno de gestão de erros que mostre os erros e/ou aumente a verbosidade dos ficheiros de registo.
Para ativar o modo de depuração, pode ligar-se diretamente ao"Gestor de ficheiros" acessível a partir da sua interface cPanel e editar o ficheiro de configuração associado para ativar este modo.
Se o seu site foi criado com o WordPress, pode ativar o modo de depuração a partir do ficheiro"wp-config.php" na raiz do seu alojamento web. Para o fazer, basta alterar a constante"WP_DEBUG" para"true" em vez de"false".
Se desejar, pode também adicionar a constante WP_DEBUG_LOG para registar os erros no ficheiro"wp-content/debug.log".
Deve também verificar se a constante"WP_DEBUG_DISPLAY" não está definida no seu ficheiro de configuração. Se estiver, também terá de definir este valor como verdadeiro.
O ficheiro de configuração deve ter o seguinte aspeto:
No Prestashop, pode ativar o modo de depuração indo ao ficheiro"define.inc.php" na pasta"config".
Terá de alterar a declaração "_PS_MOD_DEV_" para"true" em vez de"false". Se necessário, pode também ativar o modo"_PS_DEBUG_PROFILING_", que lhe dará mais informações.
O ficheiro de configuração deve ter o seguinte aspeto:
No Joomla, pode ativar o modo de depuração editando o ficheiro configuration.php. Neste ficheiro, é necessário alterar a variável"$debug" para 1 para o ativar. Também precisa de alterar a variável $error_reporting para"maximum" para que todos os erros sejam apresentados.
O ficheiro de configuração deve ter o seguinte aspeto:
É possível que esteja a utilizar outro CMS. Para saber como ativar o modo de depuração, pode também escrever"Nome do CMS + Depuração" no motor de busca. Isto deve levá-lo diretamente a um tutorial que explica como ativar este modo.
É relativamente fácil compreender a origem de um erro 500, uma vez que são muitas vezes os mesmos erros que se repetem.
1. O primeiro e mais comum erro é o"Parse error". Este erro indica frequentemente um problema de sintaxe (um erro na programação do seu código). O erro é definido da seguinte forma:
Se tomarmos como exemplo o ficheiro index.php do nosso sítio Wordpress, onde falta um ponto e vírgula no final da linha 17, o ficheiro Web onde se encontra o erro é o seguinte
O erro visível quando se acede ao URL será o seguinte:
2. O erro"Parse error: syntax error, unexpected end of file" indica que parece faltar algo no final do ficheiro.
Neste código, por exemplo, falta a chave que fecha a instrução if.
3. O erro " Parse Error: syntax error, unexpected (T_STRING), expecting ','or'; " deve-se frequentemente a um erro relacionado com as aspas no seu código.
Neste código, falta a barra invertida na palavra"error", como no código seguinte, para que funcione:
4. Também pode ver um"Fatal Error". Este é um dos erros mais graves que pode encontrar. Também provoca a paragem do script. É definido da seguinte forma:
Este erro indica frequentemente que uma função não foi definida, como no código seguinte:
Por conseguinte, aparece o seguinte erro: Fatal Error: Uncaught Error: Call to undefined function
Este erro deve-se frequentemente a uma das seguintes situações:
5. Poderá obter um erro"Fatal Error: cannot redeclare" indicando que a função foi definida uma segunda vez. O código poderia ter o seguinte aspeto:
É perfeitamente possível evitar este erro:
6. Pode receber o erro"Fatal Error: allowed memory size exhausted".
Isto indica que o script PHP está a utilizar demasiada RAM e excede o valor máximo autorizado em PHP.INI. Este é o valor "memory_limit". Pode alterar este valor nas fórmulas do cPanel. Se, apesar de aumentar o valor para um nível suficientemente elevado, o problema persistir, pode ser que uma operação que consome muita memória esteja a ser repetida demasiadas vezes (ou mesmo ad infinitum) no seu script PHP. Os loops infinitos também são possíveis causas deste tipo de erro.
7. O erro"Fatal Error: Maximum execution time exceeded" significa que o tempo de execução do seu script foi excedido. Você pode modificar o valor"max_execution_time" na sua configuração PHP.INI. Note, no entanto, que qualquer processo a correr durante mais de 490 segundos não é permitido nos nossos pacotes de alojamento partilhado cPanel, mas, acima de tudo, se uma página necessitar de um max_execution_time mais elevado, isso significaria também que carregaria mais lentamente, o que geralmente não é desejável. Se a página que gerou este erro processar muitos dados, aconselhamo-lo a efetuar um processamento em lote. Por exemplo, em vez de processar 1000 produtos de cada vez que a página é aberta, seria mais adequado processar lotes de 100 produtos, utilizando pedidos AJAX, por exemplo. E obterá um TTFB (Time-To-First-Byte) mais baixo.
8. O erro"Fatal error: Uncaught Error: Call to undefined function mysql_connect()" significa que o módulo"mysql" não está carregado na versão do PHP que está a utilizar. O erro ocorre quando:
Pode alterar facilmente a versão do PHP indo a"Selecionar uma versão do PHP" na sua interface cPanel.
9. O erro"Permission denied" significa que o PHP não tem direitos de acesso a um determinado ficheiro ou pasta. Este erro pode ser visto frequentemente da seguinte forma:
Warning file_put_contacts(/home/c123456/public_html/dossier/file.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20
Neste caso, é necessário verificar os chmods nos seus ficheiros e pastas. Em princípio, os chmods são os seguintes:
10. O erro"No such file or directory" indica que o PHP precisa de incluir um ficheiro que não parece estar presente no seu espaço FTP. O erro representa o seguinte:
Warning: require_once(/home/c123456/public_html/dossier/fichier.php): failed to open stream: No such file or directory in /home/c123456/public_html/index.php on line 20
Neste caso, é necessário :
11. Poderá ver o erro"Warning:session_start(): Cannot send session cookie headers already sent", o que indica que já foi gerado um fluxo e que, por conseguinte, já não é possível utilizar a função"session_start". Este erro pode ser visto da seguinte forma:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20
As 3 causas possíveis para este erro são as seguintes
Está agora em condições de saber a razão de um erro 500 ou de uma página em branco. Também pode solucionar problemas no seu sítio Web.
Não hesite em colocar quaisquer questões ou fazer quaisquer comentários que possa ter.
Avaliar este artigo :
2,5/5 | 2 opinião
Este artigo foi útil para si ?
Sim
Não
3mn leitura
Wordpress no cPanel: Como resolver o problema da página branca ou do erro 500
1mn leitura
Como ver os ficheiros de registo do Apache e do PHP no cPanel
0mn leitura
Como é que corrijo um erro 403 Forbidden no cPanel?
0mn leitura
Como é que corrijo um erro 404 no cPanel?