Réponse :
L'erreur 500 est une erreur classique qui se produit dès que le serveur HTTP rencontre une anomalie. Si cela vous arrive, il y a principalement 2 pistes d'investigation pour en déterminer la cause.
PISTE 1 : LES FICHIERS .HTACCESS
Ces fichiers permettent d'exécuter certaines directives liées au serveur HTTP, comme la réécriture d'URL, la protection par accès, etc. Si ces fichiers sont incorrects (mauvaise syntaxe...), alors une erreur 500 est renvoyée. Vous devez donc vérifier que vous n'avez pas dans le répertoire concerné, ou un répertoire parent, un fichier .htaccess qui pourrait causer l'erreur (dans le doute, supprimez le s'il existe pour voir). Notamment, vérifiez attentivement que :
- Vos règles d'URL Rewriting sont correctes. Relisez le manuel de référence de l'URL Rewriting
- Vous n'utilisez pas de directive php_value : elles sont interdites dans le .htaccess. Voir comment personnaliser PHP
- Vous n'avez pas inséré par le biais d'un éditeur de texte déconseillé (WordPad par exemple) des caractères indésirables.
PISTE 2 : LE TEMPS MAX. D'EXECUTION PHP
Il est fixé à 30 secondes. Un script PHP n'a pas le droit de s'exécuter pendant plus de 30 secondes. Si c'est le cas, une erreur 500 sera renvoyée. Si votre script met donc une trentaine de secondes avant d'afficher l'erreur 500, vous êtes certainement dans ce cas là. Vérifiez attentivement que :
- Si vous n'avez pas touché à la programmation de votre script PHP, il s'agit sans doute du changement de comportement d'une ressource externe. Par exemple, si votre script fait établit des connexions avec un autre site Internet, et que ce site est indisponible, alors votre site lui-même risque de l'être. Vérifiez donc tout élément externe : inclusion d'une page/image distante, flux RSS, compteurs et livres d'or, etc. ; identifiez la ressource qui pose problème et supprimez la de votre page, ou modifiez votre programmation pour qu'elle tienne compte de la possibilité d'indisponibilité de la ressource
- Sinon il s'agit sans doute d'un problème de programmation. Vérifiez que vous n'avez pas fait de boucle infinie, ou de code pouvant générer un problème de programmation. Reprenez votre code ligne par ligne en commentant pas à pas des blocs de programmation afin d'identifier la ou les lignes qui posent problème.
- Certains scripts peuvent être bien programmés mais engendrer tout de même un temps d'exécution supérieur à 30 secondes. Renseignez vous alors au besoin auprès des développeurs, et essayez de trouver une solution ; par exemple si le script fait plusieurs traitements à la fois, séparez chaque traitement, et découpez le script en autant de scripts élémentaires que nécessaire, que vous lancerez séparément
- Si vous utilisez des scripts d'envois de mails en masse, utilisez notre serveur SMTP de masse
AUTRES PISTES
3) La taille de la mémoire allouée : elle est fixée à 16 Mo par script PHP. Ce cas se produit très rarement, mais il peut arriver qu'un script très gourmand ait besoin de plus de 16 Mo de RAM. Dans ce cas, tenez compte des conseils énoncés pour le temps maximum d'exécution.
4) Fonctions et librairies utilisées : si votre script PHP utilise des librairies PHP non installées, cela peut se traduire par une erreur 500. Vérifiez dans votre phpinfo() que les librairies requises sont bien installées.
5) Autres cas : si vous n'arrivez pas à déterminer le problème malgré tous ces conseils, contactez le support en précisant exactement quelle page provoque l'erreur, dans quelles conditions, quel est le programme PHP utilisé, et quelles librairies il utilise.
Partager