PHP ne pas afficher les erreurs, même si display_errors = on
J'ai un Ubuntu serveur exécutant Apache2 avec PHP 5. Dans le php.ini j'ai mis error_reporting = E_ALL | E_STRICT
et error_reporting = E_ALL | E_STRICT
, mais PHP n'est pas encore l'affichage de messages d'erreur. Je suis également à l'aide d'hôtes virtuels de Apache.
Aussi, ce qui est le plus strict rapport d'erreur PHP5.3 a à offrir? Je veux mon code pour que jusqu'à la date et à l'avenir que possible.
- Assurez-vous de vérifier la
error_log
fichier, la plupart des erreurs sont enregistrées.
Vous devez vous connecter pour publier un commentaire.
Vous devez également vous assurer que vous avez votre
php.ini
fichier inclure l'ensemble suivant d'erreurs ou aller seulement pour le journal qui est défini par défaut ou spécifié dans le virtual host configuration.La
php.ini
fichier de réglages de base pour tous PHP sur votre serveur, cependant ceux-ci peuvent facilement être remplacée et l'altération de n'importe quel endroit dans le code PHP et de l'effet tout de suite de ce changement. Une bonne façon est d'ajouter ladisplay_errors
directive à votrephp.ini
fichier. Si vous ne voyez pas une erreur, mais on est connecté, insérer en haut du fichier à l'origine de l'erreur:Si cela fonctionne alors quelque chose de plus tôt dans votre code est la désactivation de l'affichage du message d'erreur.
display_errors
estOn
.J'ai eu le même problème et enfin résolu. Mon erreur est que j'ai essayé de changer /etc/php5/cli/php.ini, mais ensuite j'ai trouvé un autre php.ini ici: /etc/php5/apache2/php.ini, changé display_errors = on, redémarré le serveur web et cela a fonctionné!
Peut-être il serait utile pour quelqu'un de distrait comme moi.
J'ai eu le même problème sur mon serveur virtuel avec Parallels Plesk Panel 10.4.4. La solution a été (grâce à Zappa pour l'idée) réglage de la fonction error_reporting valeur 32767 au lieu de E_ALL.
Dans Plesk:
Maison > Abonnements > (Sélectionner un domaine) > Personnaliser > Paramètres > error_reporting - Saisir la valeur 32767
Bien que c'est vieux post...
j'ai eu la même situation que m'a donné des maux de tête.
Enfin, j'ai pensé que j'étais, y compris les sous pages index.php avec "@include ..."
"@" permet de masquer toutes les erreurs, même si display_errors est SUR
Lorsque vous mettez à jour la configuration du php.fichier ini, vous devrez peut-être redémarrer apache. Essayez d'exécuter
apachectl restart
ouapache2ctl restart
, ou quelque chose comme ça.Aussi, dans vous fichier ini, assurez-vous d'avoir
display_errors = on
, mais uniquement dans un environnement de développement, jamais dans une machine de production.Aussi, les plus strictes de rapport d'erreur est exactement ce que vous avez cité,
E_ALL | E_STRICT
. Vous pouvez trouver plus d'informations sur les niveaux d'erreur à le php docs.var/log/apache2/error.log
.Vérifier la
error_reporting
drapeau, doit êtreE_ALL
, mais dans certaines version de parallels Plesk panel, il y a des citations ("E_ALL"
) au lieu de (E_ALL
)J'ai résolu ce problème de supprimer les guillemets (
"
) dansphp.ini
de:
à ceci:
Veux juste ajouter un autre écueil ici au cas où quelqu'un trouve cette question avec un problème similaire à la mienne.
Lorsque vous utilisez google Chrome (Ou Chromium) et PHP déclenche une erreur dans le code PHP qui est situé à l'intérieur d'un attribut HTML puis Chrome supprime l'ensemble de l'élément HTML de sorte que vous ne pouvez pas voir l'erreur PHP dans votre navigateur.
Voici un exemple:
Lors de l'appel de ce code dans Chrome, vous obtenez seulement un document HTML avec le départ
<p>
tag. Le reste est manquant. Aucun message d'erreur et aucun autre code HTML après cette<p>
. C'est pas un problème PHP. Lorsque vous ouvrez cette page dans Firefox, puis vous pouvez voir le message d'erreur (Lors de l'affichage du code HTML). C'est donc un Chrome question.Ne sais pas si il y a une solution quelque part. Lorsque cela se produit pour vous, alors vous avez à test de la page dans Firefox ou consultez le journal des erreurs d'Apache.
J'ai eu le même problème, mais j'ai utilisé
ini_set('display_errors', '1');
à l'intérieur de l'défectueux script lui-même de sorte qu'il se déclenche jamais sur fatal /les erreurs de syntaxe. Enfin je l'ai résolu en ajoutant ceci à mon .htaccess:display_errors.php:
Que je n'étais pas forcé de changer la
php.ini
, l'utiliser pour certains sous-dossiers et pourrait facilement le désactiver.Je sais que ce fil est vieux, mais je viens de résoudre un problème similaire avec mon serveur Ubuntu et je pensais que je voudrais ajouter une note ici pour aider les autres que ce thread était en première page de Google pour le sujet de PHP ne pas afficher les erreurs.
J'ai essayé plusieurs paramètres de configuration pour le niveau de valeur en php.ini. De E_ALL | E_STRICT à E_ALL & E_NOTICE et aucune n'a fonctionné. Je n'allais pas les erreurs de syntaxe affiché dans le navigateur (ce qui est plutôt gênant sur un serveur de développement). Après la modification de la error_reporting à "E_ALL" tout a commencé à travailler. Pas sûr si c'est une Ubuntu Oneric spécifique de la question, mais après le redémarrage d'Apache erreurs a commencé à montrer dans les pages HTML, le serveur était en service. Semble les options supplémentaires confusion choses et de tous les rapports d'erreur s'arrête. HTH la somone d'autre.
J'ai juste connu ce même problème et il s'est avéré que mon problème n'était pas dans le php.les fichiers ini, mais simplement, que j'étais démarrer le serveur apache en tant qu'utilisateur normal. Dès que j'ai fait un "sudo /etc/init.d/apache2 restart", mes erreurs ont été présentés.
Assurez-vous que le php.ini que vous modifiez est sur le /etc/php5/apache2 dossier, sinon ça n'aura aucun effet...
J'ai eu le même problème avec Apache et PHP 5.5.
Dans
php.ini
, j'ai eu les lignes suivantes:au lieu de suivantes:
(le
=
signe est manquant)display_errors
pasdisplay_error
Si ce fil est vieux, mais encore, je sens que je devrais poster une bonne réponse à partir de cette stackoverflow répondre.
Ce sûr qu'il m'a sauvé après des heures à essayer d'obtenir des choses à travailler. J'espère que cela aide quelqu'un.
Lors de l'exécution de PHP sur windows avec l'ISS il y a quelques paramètres de configuration de l'ISS qui doivent être fixés pour éviter générique par défaut pages illustré.
1) Double-cliquez sur FastCGISettings, cliquez sur PHP, puis sur Modifier. Ensemble StandardErrorMode à ReturnStdErrLn500.
StandardErrorMode
2) Allez voir le site, double-cliquez sur les Pages d'Erreur, cliquez sur le 500 d'état, cliquez sur Modifier les Paramètres de Fonction, Changement des Réponses d'Erreur Détaillé des Erreurs, cliquez sur ok
Modifier les Réponses d'Erreur Détaillé des Erreurs
J'ai rencontré le problème. J'ai enfin trouvé la solution. J'utilise UBUNTU 16.04 LTS.
1) Ouvrez le
/ect/php/7.0/apache2/php.ini
fichier (sous la/etc/php
que l'on peut avoir différentes version de PHP, maisapache2/php.ini
sera sous la version d'un fichier), trouverERROR HANDLING AND LOGGING
section et définissez la valeur suivante{display_error = On, error_reporting = E_ALL}
.REMARQUE - en Vertu de la
QUICK REFERENCE
section on peut trouver ces valeurs directives mais ne changent pas, il suffit de changer dans la Section j'ai dit.2) Redémarrer le serveur web Apache
sudo systemctl restart apache2