Activation de l'affichage des erreurs en PHP via htaccess uniquement


113

Je teste un site Web en ligne.

À l'heure actuelle, les erreurs ne sont pas affichées (mais je sais qu'elles existent).

J'ai accès uniquement au .htaccessfichier.

Comment puis-je afficher toutes les erreurs à l'aide de mon .htaccessfichier?


J'ai ajouté ces lignes à mon .htaccessfichier:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

Et les pages affichent maintenant :

Erreur Interne du Serveur


j'ai fait quelques recherches sur Google, ajouté des drapeaux à mon htaccess; et mes pages ne peuvent plus s'afficher
Ogugua Belonwu

3
On dirait que vous n'avez pas le droit de remplacer ces paramètres de htaccess. Vous devrez peut-être définir AllowOverride Alldans la configuration Apache, si vous y avez accès.
kapa

Vérifiez votre journal des erreurs Apache. Il devra expliquer pourquoi vous obtenez l'erreur interne 500. Ce que vous voyez dans le navigateur est par conception inutile à des fins de diagnostic.
Marc B

Réponses:


190

.htaccess:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log

14
J'ai ajouté ces lignes à mon htaccess: php_flag display_startup_errors sur php_flag display_errors sur php_flag html_errors sur et les pages affichent une erreur de serveur interne
Ogugua Belonwu

4
Lorsque vous utilisez PHP comme module Apache, vous pouvez également modifier les paramètres de configuration en utilisant des directives dans les fichiers de configuration Apache (par exemple httpd.conf) et les fichiers .htaccess. Vous aurez besoin des privilèges «AllowOverride Options» ou «AllowOverride All» pour ce faire. php.net/manual/en/configuration.changes.php
silex

Créez le PHP_errors.log et faites-le 777 autrement, vous ne verrez probablement pas le fichier créé par apache et rempli ... au moins j'ai dû le créer.
PJunior

2
comme ogugua, j'ai aussi maintenant une erreur de serveur interne en utilisant ces lignes.
atterri

1
Si vous obtenez un 500, c'est probablement parce que vous utilisez php-fpm, pas mod_php.
mpchadwick

41
php_flag display_errors on

Pour activer l'affichage réel des erreurs.

Pour définir les types d'erreurs que vous affichez, vous devrez utiliser:

php_value error_reporting <integer>

Combiné avec les valeurs entières de cette page: http://php.net/manual/en/errorfunc.constants.php

Notez que si vous utilisez -1 pour votre entier, il affichera toutes les erreurs et sera à l'épreuve du temps quand ils ajoutent de nouveaux types d'erreurs.


17

J'ai envie d'ajouter plus de détails à la réponse existante:

# PHP error handling for development servers
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /full/path/to/file/php_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0

Donnez l'autorisation 777 ou 755 au fichier journal, puis ajoutez le code

<Files php_errors.log>
     Order allow,deny
     Deny from all
     Satisfy All
</Files>

à la fin de .htaccess. Cela protégera votre fichier journal.

Ces options conviennent à un serveur de développement. Pour un serveur de production, vous ne devez afficher aucune erreur à l'utilisateur final. Désactivez donc les indicateurs d'affichage .

Pour plus d'informations, suivez ce lien: Gestion avancée des erreurs PHP via htaccess


1
que diriez-vous de donner chmod "0644" au fichier journal des erreurs? fonctionnerait-il encore?
Andre Chenier

2

Si vous souhaitez afficher uniquement les erreurs d'exécution fatales:

php_value display_errors on
php_value error_reporting 4

2

Cela fonctionne pour moi ( référence ):

# PHP error handling for production servers
# Disable display of startup errors
php_flag display_startup_errors off

# Disable display of all other errors
php_flag display_errors off

# Disable HTML markup of errors
php_flag html_errors off

# Enable logging of errors
php_flag log_errors on

# Disable ignoring of repeat errors
php_flag ignore_repeated_errors off

# Disable ignoring of unique source errors
php_flag ignore_repeated_source off

# Enable logging of PHP memory leaks
php_flag report_memleaks on

# Preserve most recent error via php_errormsg
php_flag track_errors on

# Disable formatting of error reference links
php_value docref_root 0

# Disable formatting of error reference links
php_value docref_ext 0

# Specify path to PHP error log
php_value error_log /home/path/public_html/domain/PHP_errors.log

# Specify recording of all PHP errors
# [see footnote 3] # php_value error_reporting 999999999
php_value error_reporting -1

# Disable max error string length
php_value log_errors_max_len 0

# Protect error log by preventing public access
<Files PHP_errors.log>
 Order allow,deny
 Deny from all
 Satisfy All
</Files>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.