Base de connaissances · PHP
Comment résoudre une erreur « 500 Internal Server Error »
Dernière mise à jour : 2025-06-08
Problème : 500 Internal Server Error
Nous avons constaté cette erreur lorsque des clients migrent des scripts vers notre serveur. Le client tente d'installer un script PHP (tel que Drupal, Magento, Moodle, WordPress, Concrete5, etc.) à partir des sources ou d'une installation LAMP précédente avec mod_php. Lors du test de l'installation sur le serveur IndicHosts, l'erreur « 500 Internal Server Error » s'affiche dans le navigateur web.
Les causes les plus courantes de ce problème sont :
- Permissions des répertoires et des fichiers
- Propriété des répertoires et des fichiers
- Directives dans .htaccess, telles que php_value ou php_flag
Raison et contexte: Comme notre serveur exécute Apache avec suPHP et n'utilise pas mod_php, les scripts PHP sont exécutés sous l'identité de « username » et non de « apache » ou « nobody ». Par conséquent, tous les fichiers et sous-répertoires de vos scripts doivent appartenir à cet utilisateur. De plus, la documentation de la plupart des scripts est axée sur les déploiements LAMP classiques (Linux, Apache, MySQL, PHP) avec mod_php. La documentation du script recommande de définir certains répertoires et fichiers avec un accès en écriture pour tous (c'est-à-dire 777 ou 666.). Souvent, les fichiers PHP, inclus dans une archive source, sont distribués avec des permissions d'exécution de 777 ou 775.
Sur les serveurs IndicHosts, vous ne devez AVOIR AUCUN fichier ni répertoire accessible en écriture par tous (avec des niveaux de permissions tels que 0777, 0666, 0770, 0660, etc.). Nos fichiers de script PHP (.php) ne doivent PAS être exécutables (avec des niveaux de permissions tels que 0755) même si la documentation officielle du script le recommande. Il s'agit d'une exigence de sécurité obligatoire pour les scripts PHP sur les serveurs d'IndicHosts.
Par conséquent, pour corriger l'erreur 500 Internal Server Error sur le serveur IndicHosts.net, vous devez procéder comme suit :
- Tous les répertoires et sous-répertoires doivent être définis sur la permission niveau de 755. Vous pouvez corriger cela en utilisant FTP ou en exécutant cette commande dans cPanel >> Terminaux et services connexes;
chmod 755 directory - Tous les fichiers du répertoire et de ses sous-répertoires doivent être définis sur la permission niveau 0644. Vous pouvez corriger cela en utilisant FTP ou en exécutant cette commande dans cPanel >> Terminaux et services connexes;
chmod 644 filename.php - Vérifiez et supprimez toute directive php_value ou php_flag dans votre .htaccess fichier. (en supprimant la ligne ou en la mettant en commentaire avec le préfixe #)
- Les fichiers et répertoires doivent appartenir en propriété à l'utilisateur auquel ils appartiennent. Si le nom d'utilisateur est ‘robert’, le propriétaire et le groupe des fichiers doivent être définis sur
robert:robert. Vous pouvez corriger cela en exécutant cette commande dans cPanel >> Terminal >> (Si le terminal n'est pas activé sur votre compte, ouvrez un ticket et demandez-nous de l'activer sur votre domaine)chown username:username directorychown username:username filename.php - Une version de PHP incorrecte affiche « HTTP Error 500 » dans Google Chrome. Il arrive que la version de PHP activée sur le domaine ne corresponde pas aux exigences du script. Vous pouvez utiliser PHP Selector ou MultiPHP Manager dans cPanel pour modifier la version de PHP. Nous proposons à nos clients des versions de PHP allant de 4.4 à 8.1 pour leur domaine.
- Un blocage par ModSecurity affiche « HTTP Error 500 » dans Google Chrome. Veuillez naviguer vers cPanel >> ModSecurity et désactiver ModSecurity sur le domaine. Si l'erreur disparaît, soulevez un ticket avec le support technique, leur demandant la règle ModSecurity qui a causé l'exception, puis contactez le développeur de script et leur demander de corriger leur script.
- Consultez la documentation du script et assurez-vous que l'environnement PHP respecte les exigences minimales du script (les extensions, options et variables PHP sont activées). Pour savoir comment configurer un environnement PHP chez IndicHosts par domaine ou par répertoire, consultez notre Article pratique de configuration de PHP. (Remarque : si vous constatez à un moment quelconque que les exigences du script entrent en conflit avec notre article de configuration disponible ici, veuillez nous contacter afin de savoir comment procéder.)
Une fois les corrections ci-dessus effectuées, actualisez l'URL du script. Si l'erreur persiste, veuillez ouvrir un ticket en indiquant les détails du script.
Astuce : le fichier error_log du répertoire du script indique l'erreur PHP exacte à l'origine de l'erreur interne du serveur 500
Tell us what you need
Compare available plans or describe your workload so we can discuss a suitable starting point.