SAVOIR LES BASSES · PHP
Comment corriger une erreur de "500 Internal Server"
Dernière mise à jour 2025-06-08
Problème: Erreur de serveur interne 500
Nous avons vu cette erreur apparaître lorsque les clients migrent des scripts vers notre serveur. Le client tente d'installer un script PHP (tels que Drupal, Magento, Moodle, WordPress, Concrete5 etc) à partir de sources ou d'une installation précédente de LAMP avec mod php. Lors de l'essai de l'installation sur le serveur IndicHosts, une erreur '500 Internal Server Error' est observée sur le navigateur Web.
Les sources communes de la question sont les suivantes:
- Autorisations de répertoire et de dossier
- Propriété du répertoire et du fichier
- Directives en .htaccess, telles que php value ou php flag
Raison & Contexte: Comme notre serveur exécute Apache avec suPHP et n'utilise pas mod php, les scripts PHP sont exécutés comme 'username' au lieu de 'apache' ou 'nobody'. Par conséquent, tous vos fichiers de script et sous-répertoires doivent être détenus par le nom d'utilisateur. En outre, la plupart des documents du script est axée sur les LAMP de base (Linux, Apache, MySQL, PHP) avec déploiements mod php. La documentation du script recommande que certains répertoires et fichiers soient mis en écriture mondiale (777 ou 666.) . Souvent, les fichiers PHP, dans le cadre d'une archive source, sont distribués avec des permissions exécutables de 777 ou 775.
Sur les serveurs IndicHosts, vous ne devriez PAS avoir de fichiers ou de répertoires mondiaux enregistrables (avec des niveaux de permission tels que 0777, 0666, 0770, 0660, etc.). Nos fichiers de script PHP (.php) ne doivent PAS être exécutables (avec des niveaux de permission 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 IndicHosts.
Par conséquent, pour corriger l'erreur de 500 Serveur Interne sur le serveur IndicHosts.net, vous devez faire ce qui suit:
- Tous les répertoires et sous-répertoires doivent être définis à la permission level of 0755. You can correct this using FTP or by running this command in cPanel >> Terminal
chmod 755 directory - Tous les fichiers du répertoire et des sous-répertoires doivent être définis à la permission level of 0644. You can correct this using FTP or by running this command in cPanel >> Terminal
chmod 644 filename.php - Vérifiez et supprimez toutes les directives php value ou php flag dans votre .htaccess dossier (en supprimant la ligne ou en la commentant avec # préfixe)
- Les fichiers et les répertoires doivent être propriété par l'utilisateur à qui ils appartiennent. Si le nom d'utilisateur est ‘robert’, les fichiers doivent être détenus et regroupés comme suit:
robert:robert. You can fix this by running this command in cPanel >> Terminal >> (If vous n'avez pas de terminal activé, augmenter un ticket et nous demander d'activer le terminal sur votre domaine)chown username:username directorychown username:username filename.php - Un faux version de PHP donne Erreur de la PTTP 500 sur Google Chrome. Parfois, la version PHP activée sur le domaine ne répond pas aux exigences du script. Vous pouvez utiliser le sélecteur PHP ou le gestionnaire MultiPHP dans cPanel pour modifier la version de PHP. Nous fournissons des versions PHP 4.4 à 8.1 pour les clients à choisir pour leur domaine.
- Le bloc ModSecurity donne Erreur de la PTTP 500 in Google Chrome. Please navigate to cPanel >> ModSecurity and disable ModSecurity on the domain. If the error goes away, raise a ticket with Technical Support, asking them for the ModSecurity rule that caused the exception, then contact the script developer and ask them to fix their script.
- Vérifiez la documentation du script et assurez-vous que l'environnement PHP répond aux Exigences minimales du script (Les extensions PHP, les options et les variables sont activées) . Pour apprendre à configurer un environnement PHP chez IndicHosts sur une base par domaine ou par répertoire, lisez notre Configuration PHP Comment-To article. (Remarque : Si vous trouvez à un moment quelconque que les exigences du script sont en conflit avec notre article de configuration ici, veuillez nous contacter pour des précisions sur la façon de procéder.)
Une fois que vous avez corrigé ce qui précède, rafraîchissez l'URL du script. Si l'erreur persiste, veuillez soulever un ticket avec les détails du script.
Astuce : le fichier error log dans le répertoire script montre l'erreur PHP exacte derrière l'erreur de 500 serveurs internes
Dites-nous ce qui doit rester debout.
A short conversation with an engineer. No quote-bot, no callback queue. We'll tell you honestly if we're not the right fit.