Comment faire pour activer le rapport d'erreurs dans nginx php config
J'ai essayé pendant trois jours maintenant pour activer le rapport d'erreurs dans PHP. J'ai eu pendant un certain temps, à l'aide de la fonction ini_set('afficher les erreurs' 1); function jusqu'à ce que j'ai essayé de vous connecter à une base de données; il n'a pas de travail. Maintenant, j'ai activé la fonction error_reporting, display_startup_errors, log_errors sans aucun effet sur les rapports d'erreurs. J'ai changé tous les cinq fichiers de configuration (le développement de l'ini, de la production ini, le php.fichier ini situé(s) en php/7.0/cli, php/7.0/fpm, et même l'un dans apache2 (même si je suis en cours d'exécution nginx)
Je commence à douter de mes propres capacités, toute aide est grandement appréciée.
EDIT: j'ai utilisé la fonction ini_set fonction décrite ci-dessus dans mes fichiers, et cela a fonctionné jusqu'à ce que j'ai essayé de vous connecter à une base de données. J'ai confirmé que j'ai activé les rapports d'erreur pour le php.fichier ini décrit dans la fonction phpinfo() chemin d'accès au répertoire. Aucun effet que ce soit.
ini_set('display_errors', 1); error_reporting(E_ALL);
au début de votre script, et des messages d'erreurs affichés comme ça. Si vous voulez faire que via la config, faire un phpinfo()
script, voir où quel fichier de configuration est chargé et modifier ce fichier jusqu'à ce que phpinfo()
montre les rapports d'erreurs et erreurs d'affichage que vous souhaitez avoir.Double Possible de Comment puis-je obtenir des Erreurs PHP pour l'affichage?
Vous me conduire là où j'ai commencé 😮 Merci bien, je vais continuer de chercher une réponse!
La commande que vous utilisez pour la connexion db?
Les deux
error_reporting
et display_errors
ne sont pas définies correctement si vous ne voyez pas les erreurs. Faire un test: echo HELLO; if(array_key_exists($a, $b)) echo "Hello";
Ne vous voir mises en garde? Sinon, la config est absolument pas en place correctement. Si oui, il est de votre adaptateur DB. Vous aurez à faire d'erreur de capture.OriginalL'auteur Frank | 2016-02-10
Vous devez vous connecter pour publier un commentaire.
Parce que personne en particulier a donné la réponse, je vais juste poster moi-même.
J'ai trouvé le erreur.journal fichier (qui est en effet la journalisation de toutes les erreurs sur mon serveur Nginx) dans ce répertoire:
/var/log/nginx/error.log
J'espère que cela peut aider d'autres personnes à l'aide de Nginx en tant que bien, mais je ne comprends toujours pas pourquoi l' **** les erreurs ne s'affichent pas dans le navigateur. Je pense que c'est Nginx est de nature à rendre le tout assez compliqué.
Peut-être que je devrais développer en utilisant Apache et le port dans Nginx quand j'ai plus d'expérience-juste quelques pensées pour les autres qui sont dans ce.
Hé les gars! Je voulais juste donner une mise à jour sur ce point: Depuis la mise à niveau à partir de PHP 7.0.2 <= 7.0.3, je suis maintenant en mesure de voir les erreurs que doit ont été affichées.
EDIT:Ne pas supprimer le contenu de ce fichier journal, il sera à vis de l'ensemble du rapport d'erreur. Je suis de retour pour rien maintenant. –
OriginalL'auteur Frank
Rapport D'Erreur Lui-Même
ini_set('display_errors', 1);
oudisplay_errors
Permet tout simplement de PHP pour les erreurs de sortie - utile pour le débogage, fortement recommandé de le désactiver pour les environnements de production. Il contient souvent des informations que vous n'auriez jamais veulent les utilisateurs à voir.
error_reporting(E_ALL);
ouerror_reporting
Suffit simplement de définir exactement qui les erreurs sont affichées.
Réglage de l'un ou l'autre n'aura pas de garantie que les erreurs seront affichées. Vous doit définir à la fois de voir les erreurs sur votre écran.
Que pour cette mise en place de façon permanente à l'intérieur de votre configuration PHP, la valeur par défaut pour
error_reporting
est E_ALL &~E_NOTICE & ~E_STRICT & ~de niveau e_deprecated à partir. Cela dit, cette variable ne devrait pas avoir changé. Voir ici:http://php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
Comme pour l'affichage des erreurs, voir ici:
http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors
Définir la valeur de configuration de "display_errors"
stderr
oustdout
, en fonction de votre besoin.Il suffit de changer ces variables à l'intérieur de votre
php.ini
fichier et vous serez d'or. Assurez-vous les deuxdisplay_errors
eterror_reporting
est réglé de façon satisfaisante de la valeur. Tout simplement la mise enerror_reporting
ne garantit pas que vous voir les erreurs que vous cherchez!Rapport d'erreur Fonctionne Partout Sauf Lors de la Connexion À Ma DB!
Si vous voyez des erreurs partout où vous avez besoin de sauf dans la Base de données de Connexion, vous avez juste besoin de faire une erreur de capture. Si c'est PDO, faire quelque chose comme ceci:
Simplement un extrait de mon cadre. Bien sûr, vous aurez à le modifier à votre goût, mais vous devriez être en mesure de se faire une idée générale de là. Ils clé est cette partie ici:
Je Ne Vois Toujours L'Erreur
Si vous l'avez fait à la fois de ce que je ai énumérés ici et ont encore du mal, votre problème n'a rien à voir avec l'activation de rapport d'erreur. Le code va vous montrer l'erreur avec une Connexion de Base de données elle-même, et à l'intérieur de code PHP. Vous devez avoir une toute autre question, si cela n'a pas montré une erreur, vous êtes en train de pourchasser.
Vous aurez probablement besoin d'être un peu plus explicite sur exactement ce que vous êtes en train de chasser, et ce que vous attendez de la voir.
J'ai suivi tout vos post et il ne fonctionne toujours pas. Je me demande si cela a quelque chose à voir avec moi en cours d'exécution nginx?
Si une connexion n'est pas faite, simple
error_reporting
etdisplay_errors
affiche une erreur lorsque vous essayez d'appeler une méthode PDO commeprepare()
ouexecute()
. Votre commentaire est à la limite du hors de propos car mon code fourni montrer les erreurs à ne importe la situation. Une erreur de méthode surprepare()
ouexecute()
(etc.) signifie que vous n'avez jamais fait le lien, c'est très simple. Aussi, j'ai fourni un exemple detry
etcatch
- je n'ai jamais dit qu'il devait être après la connexion. Quelle partie de//DB Stuff
indique qu'il ne peut pas être utilisé lors de la connexion?Il peut très bien être nginx. Qu'est-ce exactement ne fonctionne pas? Voyez-vous aucun erreurs? Comme si vous tapez le charabia de la sorte:
echo $fake->nothing(HELLO);
il va vous donner toute sorte d'erreurs? Cela devrait produire une erreur semblable àCall to undefined method
(oubliez l'intitulé exact). Il peut être utile de votre temps pour jeter le code en question sur un serveur Apache pour voir si elle vous donne plus d'infos à ce que l'erreur elle-même. Ce n'est pas idéal, mais qui aura au moins confirmer si c'est nginx.Merci pour les réponses rapides Nate, je l'apprécie énormément. Si j'exécute ce code: echo $undefinedvar; il ne sera pas de retour l'erreur #8: Undefined Variable comme il est censé le faire, même si j'ai clairement permis de rapport d'erreur dans le php.fichier ini décrit dans le phpinfo() page! Je peut déjà supposer qu'il va travailler sur Apache, bien que je vais essayer de toute façon.
OriginalL'auteur Nate I
Essayer:
OriginalL'auteur Mixcoatl
peut-être, il va vous aider. modifier les valeurs de paramètres
dans le fichier /etc/php/7.0/fpm/pool.d/www.conf (par exemple la valeur display_errors par défaut est désactivé)
OriginalL'auteur Igor Gro