Cela n'est jamais arrivé auparavant. Habituellement, il affiche l'erreur, mais maintenant, il me donne une erreur de 500 serveur interne. Bien sûr, avant, quand il affichait l'erreur, il s'agissait de serveurs différents. Maintenant, je suis sur un nouveau serveur (j'ai la racine complète, donc si je dois le configurer quelque part dans le fichier php.ini, je peux le faire.) Ou peut-être que c'est quelque chose avec Apache?
Je l'ai accepté en transférant simplement le fichier sur mon autre serveur et en l'exécutant sur cet emplacement pour rechercher l'erreur, mais c'est devenu trop fastidieux. Y'a t'il un moyen d'arranger cela?
Vérifiez les paramètres error_reporting
, display_errors
et display_startup_errors
dans votre fichier php.ini
. Ils doivent être définis sur E_ALL
et "On"
respectivement (bien que vous ne devriez pas utiliser display_errors
sur un serveur de production, désactivez-le et utilisez plutôt log_errors
si/lorsque vous le déployez). Vous pouvez également modifier ces paramètres (à l'exception de display_startup_errors
) au tout début de votre script pour les définir au moment de l'exécution (bien que vous ne puissiez pas intercepter toutes les erreurs de cette façon):
error_reporting(E_ALL);
ini_set('display_errors', 'On');
Après cela, redémarrez le serveur.
Il est à noter que si votre erreur est due à .htaccess, par exemple un rewrite_module manquant, vous verrez toujours l'erreur de serveur interne 500.
Utilisez "php -l <nom_fichier>" (c'est un "L") à partir de la ligne de commande pour générer l'erreur de syntaxe qui pourrait provoquer PHP pour générer l'erreur d'état 500. Cela produira quelque chose comme:
Erreur d'analyse PHP: erreur de syntaxe, '}' inattendu dans <nom du fichier> à la ligne 18
Essayez de ne pas y aller
MAMP > conf > [your PHP version] > php.ini
mais
MAMP > bin > php > [your PHP version] > conf > php.ini
et le changer là-bas, cela a fonctionné pour moi ...
L'activation de l'affichage d'erreur à partir de PHP code ne fonctionne pas pour moi. Dans mon cas, en utilisant NGINX et PHP-FMP, je dépiste le fichier journal en utilisant grep . Par exemple, je connais le nom du fichier mycode.php qui provoque l'erreur 500, mais je ne sais pas quelle ligne. Depuis la console, j'utilise ceci:
/var/log/php-fpm# cat www-error.log | grep mycode.php
Et j'ai la sortie:
[04-Apr-2016 06:58:27] PHP Parse error: syntax error, unexpected ';' in /var/www/html/system/mycode.php on line 1458
Cela m'aide à trouver la ligne où j'ai la faute de frappe.
Attention à vérifier si
display_errors
ou
error_reporting
est actif (pas un commentaire) ailleurs dans le fichier ini.
Mon serveur de développement a refusé d'afficher les erreurs après la mise à niveau vers Kubuntu 16.04 - J'ai vérifié php.ini de nombreuses fois ... s'est avéré qu'il y avait un diplay_errors = off; environ 100 lignes sous ma
display_errors = on;
Alors rappelez-vous que le dernier compte!
Si tout échoue, essayez de déplacer (c'est-à-dire dans bash) tous les fichiers et répertoires "à distance" et de les rajouter un par un.
Je viens de découvrir de cette façon que mon fichier .htaccess faisait référence à un fichier .htpasswd non existant. (#idiot)