web-dev-qa-db-fra.com

Où est-ce que PHP stocker le journal des erreurs? (php5, Apache, fastcgi, cpanel)

Je suis sur l'hébergement partagé et ai Cpanel, Apache, PHP est géré par fastcgi. Où PHP stocke-t-il le journal des erreurs?

Existe-t-il un autre moyen de trouver le journal des erreurs dans un environnement d'hébergement partagé au lieu de devoir parcourir toute la structure du site pour rechercher les fichiers error_log?

J'ai accès au php.ini (j'utilise PHP version 5.2.16).

339
PHPLOVER

Php stocke les journaux d'erreur dans /var/log/Apache2 si php est un module Apache2. Les hôtes partagés stockent souvent des fichiers journaux dans votre sous-dossier /log du répertoire racine . Mais ... si vous avez accès à un fichier php.ini, vous pouvez procéder comme suit:

error_log = /var/log/php-scripts.log

Selon le commentaire de rinogo : Si vous utilisez cPanel, le fichier journal principal que vous recherchez probablement est stocké (par défaut) dans

/usr/local/Apache/logs/error_log

Si tout échoue, vous pouvez vérifier l'emplacement du fichier journal à l'aide de

<?php phpinfo(); ?>
274
Adam Arold

Essayez phpinfo() et vérifiez "error_log"

81
chelmertz

Linux

php --info | grep error 

Le terminal émettra l'emplacement du journal des erreurs.

Les fenêtres

php --info | findstr /r /c:"error_log"

La commande Invite affichera l'emplacement du journal des erreurs.

Pour définir l'emplacement du journal

Ouvrez votre php.ini et ajoutez la ligne suivante:

error_log = /log/myCustomLog.log

Merci @chelmertez , @Boom pour ces commentaires (commentaires sur la question) .

31
Cullub

Sur un environnement LAMP, les erreurs php sont dirigées par défaut vers ce fichier ci-dessous. 

/var/log/httpd/error_log

Tous les journaux d'accès sont sous:

/var/log/httpd/access_log
28
Allie

Comment trouver votre journal d'erreur PHP sous Linux:

eric@dev /var $ Sudo updatedb
[Sudo] password for eric:
eric@dev /var $ Sudo locate error_log

/var/log/httpd/error_log

Une autre manière équivalente:

eric@dev /home/eric $ Sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
15
Eric Leschinski

Il peut également s'agir de /var/log/Apache2/error.log si vous êtes dans le moteur de calcul Google.

Et vous pouvez voir la queue comme ça: 

tail -f /var/log/Apache2/error.log
10
Vivek

Il semble que par défaut, php ne se connecte pas errors n'importe où, la clé error_log dans php.ini est commentée dans toutes les installations que j'ai vues.

Généralement je:

  1. recherchez les fichiers php.ini. locate php.ini.
  2. Recherchez dans ces fichiers la valeur error_reporting

    Ce qui devrait être réglé sur la fusion de niveaux de log php suffisants pour vous. 

    Exemple: E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. Vérifiez la valeur error_log pour vous assurer qu’elle pointe vers un lieu réel et qu’elle n’est pas commentée.

    La valeur par défaut ne donne pas un chemin complet, mais un nom de fichier, je ne sais pas où ce chemin se résout normalement. Probablement /var/log/.

9
ThorSummoner

Vous devez utiliser le chemin absolu lorsque vous définissez error_log variable dans votre fichier php.ini, sinon les journaux des erreurs seront stockés en fonction de votre chemin relatif. 

error_log = /var/log/php.errors

Une autre solution consisterait à écrire un script simple répertoriant tous les fichiers journaux d’erreurs de l’arborescence.

9
mailo

Si vous avez construit Apache et PHP à partir du source, les journaux d'erreurs par défaut sont générés à votre ${Apache install dir}/logs/error_log c'est-à-dire généralement /usr/local/Apache2/logs/error_log. Sinon, si vous l'avez installé à partir d'un référentiel, vous le trouverez à /var/log/Apache2/error_log.Vous pouvez également définir le chemin d'accès dans votre php.ini et le vérifier en appelant phpinfo().

5
Abhishek

Le meilleur moyen est de regarder dans votre fichier httpd.conf et de voir quelle est la valeur par défaut. Il pourrait également être remplacé par votre hôte virtuel spécifique. Je commence par regarder /etc/httpd/conf/httpd.conf ou /etc/Apache2/httpd.conf et recherche error_log. Il peut être répertorié sous la forme/var/log/httpd/error_log ou /var/log/Apache2/error_log, mais il peut également l'être simplement logs/error_log.

Dans ce cas, il s’agit d’un chemin relatif, ce qui signifie qu’il sera sous /etc/httpd/logs/error_log. Si vous ne le trouvez toujours pas, vérifiez le bas de votre fichier httpd.conf et voyez où vos hôtes virtuels sont inclus. Cela pourrait être dans /etc/httpd/conf.d/<- en tant que "autre" ou "extra". Votre hôte virtuel pourrait alors le remplacer par ErrorLog "/ path/to/error_log".

5
Thomas Bennett

Si vous utilisez le journal php5-fpm, la valeur par défaut doit être inférieure à

/var/log/php5-fpm.log
3
mateusz.szymborski

NGINX le stocke généralement dans /var/log/nginx/error.log ou access.log .

3
DarkNeuron

Lors de la configuration de votre fichier d'erreur dans le fichier php.ini, vous pouvez utiliser un chemin absolu ou relatif. Un chemin relatif sera résolu en fonction de l'emplacement du script de génération, et vous obtiendrez un fichier journal dans chaque répertoire dans lequel vous avez des scripts. le fichier.

Voir plus ici: http://www.php.net/manual/en/ref.errorfunc.php#53025

3
anemone928

où vous le souhaitez, si vous définissez cette fonction avec votre appel de fonction:

2
cfphpflex

Recherchez dans le fichier httpd.conf ErrorLog en exécutant cat <file location> | grep ErrorLog sur la ligne de commande. Par exemple:

$ cat /etc/Apache2/httpd.conf | grep ErrorLog

Sortie:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/Apache2/error_log"

Trouvez la ligne qui commence par ErrorLog et voici votre réponse.

Remarque: pour les hôtes virtuels, vous pouvez modifier le fichier hôtes virtuels httpd-vhosts.conf afin de spécifier un emplacement de fichier journal différent.

2
jkdev
  1. vous pouvez aller dans le dossier des journaux de vérification du Gestionnaire de fichiers.
  2. vérifiez le fichier journal dans le dossier public_html.
  3. vérifier le fichier "php phpinfo ()" où se trouve le magasin de journaux.
0
Mevil Bhojani
php --info | grep error

C'est utile. commenté par sjas on question. donc je l'ai inclus comme réponse.

0
J4GD33P 51NGH

Les journaux d’erreur cPanel se trouvent dans:

/ usr/local/cpanel/logs /

/ usr/local/Apache/logs /

Par défaut, les journaux Apche sont situés à l'intérieur:

/ var/log/Apache

ou

/ var/log/Apache2

Si quelqu'un utilise un emplacement de journal personnalisé, vous pouvez le vérifier en exécutant cette commande:

cat/etc/Apache2 / conf / httpd.conf | grep ErrorLog

Si vous obtenez une erreur indiquant que le répertoire Apache2 n'existe pas, vous pouvez exécuter cette commande pour rechercher l'emplacement correct en:

où est Apache

ou

où est Apache2

0
Dewlance

Vous êtes sur l’environnement de partage et ne trouvez pas le journal des erreurs. Vérifiez toujours si cPanel a l’option Erreurs sur votre tableau de bord cPanel. Si vous ne parvenez pas à trouver le journal des erreurs, vous pouvez le trouver ici.

Dans la barre de recherche de cPanel, recherchez Erreur, les pages d’erreur apparaissant sous forme de listes de différentes pages d’erreurs http sont affichées.

Autres lieux à consulter dans un environnement partagé:/home/votre nom d'utilisateur/logs/home/votre nom d'utilisateur/public_html/error_log

0
Krishna Pariyar