Internal server error récurrente

Bonjour, sur mon espace web, que j’utilise soit du php seul (sans base de données) ou du php avec mysql (drupal en l’occurrence), je me retrouve fréquemment avec des Internal Server Error. C’est souvent lors du premier chargement, après quand je navigue, ça marche, puis si je reviens plus tard (au bout d’une heure par exemple), souvent ça me le refait.
Qu’est-ce qui permettrait de se débarrasser de cela ?
Merci

Hello,

Les erreurs 500 (Internal Server Error) sont généralement liées au temps d’exécution d’un script. Il y a plusieurs années, nous avions eu de gros problèmes avec des scripts (malveillants, mais pas seulement) qui prenaient beaucoup de temps d’exécution et mettaient la plate-forme à genoux. L’infogérant a décidé de laisser au maximum 30 secondes d’exécution à chaque script: après ce temps, le processus est tué.

Cela peut être gênant dans certains cas: p.ex. il n’est plus possible d’installer SPIP avec le script d’installation, parce qu’il tourne pendant plus de 30 secondes – il faut alors uploader l’archive en FTP. Certains hébergeurs permettent d’augmenter temporairement le temps maximal d’exécution d’un script, mais la pratique de limiter ce temps d’exécution à 10 ou 30 secondes est largement répandue – un script qui tourne plus de 30 secondes, ce n’est vraiment pas normal. Il peut arriver qu’un script mette plus de temps à s’exécuter si la charge du serveur est importante: c’est pour cela qu’une même page peut s’afficher si la charge est faible, mais retourner une erreur 500 si la charge est plus importante.

Solutions?

  • Du côté des coopérateurs, il faut tenter d’alléger les pages au maximum (nous sommes en mutualisé, pas en dédié). On ne peut pas installer 50 plugins sur un CMS, chacun ajoutant quelques fractions de secondes au temps de calcul des pages: il faut faire des choix (indexation de recherche? requêtes multiples dans la base de données? Google Analytics? réseaux sociaux?). Voire choisir des CMS moins gourmands en ressources si c’est pour un site basique. Éventuellement voir s’il est possible de déplacer le site sur un serveur moins chargé (actuellement, je crois qu’il n’y a que node1-5 et node1-6, donc le choix est limité…).
  • Du côté des admins et de l’infogérant, il faut peut-être songer à augmenter les capacités des machines (processeurs, mémoire…), voire à acheter de nouveaux serveurs pour alléger les machines actuelles. Mon expérience avec des machines perso me montre que quand j’arrive à 30% de remplissage de l’espace disque, les ressources ne suivent plus…

Donc éventuellement contacter les admins depuis ton panel si c’est trop fréquent, gênant, pour envisager des solutions (ils en ont peut-être d’autres auxquelles je ne pense pas).

Coop,
Greg

Bonjour Greg. Je comprends tout cela, mais mon problème est très précis : cette arrive survient sur un site qui n’utilise pas de base de données, ni de CMS. Je n’ai qu’un script php avec un switch cas d’environ 20 cas (1 cas par page différente à afficher). Est-ce qu’un tel script serait aussi lourd à exécuter ? Ca me parait d’une simplicité enfantine pour un ordinateur de parcourir 20 cas différents en moins de 30 secondes, non ? A chaque cas, il doit aller cherche un fichier spécifique (une page), qu’il doit charger avec un require, du type :
ob_start();
require_once(“informations/fichier1.frg.html”);
$info3 = ob_get_contents();
ob_end_clean();
Est-ce que ce genre de chose est gourmande en calcul ?
Merci

Tout d’abord, par rapport à cet «épinglé», il serait plus judicieux de mettre ta question dans un nouveau fil: on la verrait mieux…

En ce qui concerne ton problème, c’est un peu vague pour pouvoir y répondre de façon adéquate. Est-ce que tu utilises bien les indications suivantes:

[quote=shahidjee]Tout d’abord, par rapport à cet «épinglé», il serait plus judicieux de mettre ta question dans un nouveau fil: on la verrait mieux…

En ce qui concerne ton problème, c’est un peu vague pour pouvoir y répondre de façon adéquate. Est-ce que tu utilises bien les indications suivantes:[/quote]

??? je ne comprends pas. J’imagine que ce message ne m’était pas destiné.
Quoi qu’il en soit il semble que le problème ne se produise plus me concernant.
Merci.