8
votes

Réglage display_errors = 0 et log_errors = 1 sans php.ini

Pour des raisons de mon contrôle, je ne peux pas définir display_errors = 0 et log_errors = 1 dans php.ini sur mon serveur de production. Je sais que je peux définir error_rporting (0); pour supprimer complètement tous les messages d'erreur, mais cela impacte à la fois les erreurs de journal et les erreurs affichées. J'espérais qu'il y aurait un équivalent à définir display_errors = 0 et log_errors = 1 au moment de l'exécution. Est-ce possible? Merci.


2 commentaires

Vous voudrez probablement le faire dans un .htaccess. Les directives sont donc en vigueur avant que le script ne commence même à analyser. Cela gardera aussi des erreurs fatales.


Cela ne peut être fait que sur Apache comme module.


3 Réponses :


15
votes

Les deux sont les deux php_ini_all , donc Vous pouvez simplement utiliser ini_set au moment de l'exécution. xxx

voir http://php.net/manual /en/ini.list.php


2 commentaires

Ce qui signifie que cela n'aurait besoin d'être défini qu'une seule fois pour cette session et non sur chaque page?


@Keybored Non, cela signifie qu'il est défini lorsque ces deux lignes de code sont exécutées, puis il reste actif pendant que le script est actif, par exemple. pour cette demande unique. n'a rien à voir avec des sessions.



4
votes

Essayez ceci:

ini_set('display_errors', 0);
ini_set('log_errors', 1);


0 commentaires

0
votes

Si vous utilisez PHP en tant que module et que vous ne pouvez pas utiliser la directive principale PHP.ini ni annulé php.ini sur le dossier souhaité, vous ne pourrez pas l'activer sur le fichier PHP, vous pouvez essayer d'utiliser des habitabilité. < / p>

En haut du dossier contenant votre application, mettez un fichier .htaccess avec: php_flag display_errors 0

devrait s'appliquer uniquement à l'affichage de la sortie PHP et non aux journaux.

Quoi qu'il en soit, la solution fournie à propos de INI_SET () ne s'appliquera qu'aux pages qui le contiennent. Remarque: Si vous avez Inclus, la valeur Display_Error fonctionnera lors de l'analyse. Mais si vous y accédez, cela ne fonctionnera pas directement.


0 commentaires