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).
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(); ?>
Essayez phpinfo()
et vérifiez "error_log"
php --info | grep error
Le terminal émettra l'emplacement du journal des erreurs.
php --info | findstr /r /c:"error_log"
La commande Invite affichera l'emplacement du journal des erreurs.
Ouvrez votre php.ini
et ajoutez la ligne suivante:
error_log = /log/myCustomLog.log
Merci @chelmertez , @Boom pour ces commentaires (commentaires sur la question) .
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
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
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
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:
locate php.ini
.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
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/
.
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.
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()
.
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".
Si vous utilisez le journal php5-fpm, la valeur par défaut doit être inférieure à
/var/log/php5-fpm.log
NGINX le stocke généralement dans /var/log/nginx/error.log ou access.log .
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
où vous le souhaitez, si vous définissez cette fonction avec votre appel de fonction:
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.
php --info | grep error
C'est utile. commenté par sjas on question. donc je l'ai inclus comme réponse.
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
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