Heim >Backend-Entwicklung >PHP-Problem >Wie das PHP-Fehlerprotokoll den Dateispeicherort aufzeichnet
So ermitteln Sie den Speicherort der PHP-Fehlerprotokolldatei: 1. Durch Laden des Moduls lautet der Code [Konfiguration im PHP-Programm > httpd.conf > Konfiguration in php.ini] 2. Über den [CGI/fastCGI]-Modus; Der Code lautet [ini_get("error_log")].
So finden Sie den Speicherort der PHP-Fehlerprotokolldatei:
1. Bestimmen Sie, auf welche Weise der Webserver (IIS, APACHE, NGINX usw.) PHP unterstützt. Es gibt normalerweise die folgenden zwei Möglichkeiten
2. Durch das Laden des Moduls
php程序中配置 > httpd.conf > php.ini中配置
3. Durch den CGI/fastCGI-Modus
php程序中配置 > php.ini中配置 ini_get("error_reporting"); ini_get("log_errors"); ini_get("error_log");
Ausgabe:
'22527' '1' '/usr/local/php7.2.0/var/log/php_errors.log' 如果log_errors = On
/usr/local/php7.2.0/var/log/php_errors.log Die Datei existiert nicht oder kann nicht erstellt oder geschrieben werden, dann wird das PHP-Fehlerprotokoll in die Datei geschrieben, die durch die Apache-ErrorLog-Direktive angegeben wird<code>/usr/local/php7.2.0/var/log/php_errors.log
文件不存在,或无法创建,写入,则php错误日志写到apache ErrorLog指令指定的文件
[liuchao@GD-NT-0911QAR1CF_vm1-19.32 conf.d]$ sudo ps -ef |grep httpd apache 670 2501 0 11:24 ? 00:00:00 /usr/local/httpd-2.4.20/bin/httpd -k graceful [liuchao@GD-NT-0911QAR1CF_vm1-19.32 conf.d]$ cd /usr/local/httpd-2.4.20/conf/conf.d [liuchao@GD-NT-0911QAR1CF_vm1-19.32 conf.d]$ sudo grep -anR --color '1.aspire-he-admin' ./ ./aspire_he_admin.conf:29: ServerName 1.aspire-he-admin [liuchao@GD-NT-0911QAR1CF_vm1-19.32 conf.d]$ sudo vim +29 /usr/local/httpd-2.4.20/conf/conf.d/aspire_he_admin.conf
<VirtualHost *:80> DocumentRoot "/home/d139/var/aspire-he-admin/webroot/" ServerName 1.aspire-he-admin SetEnv SERVER_ENVERONMENT_PARAM 2 DirectoryIndex index.php index.html php_value post_max_size 100M CustomLog "| /usr/sbin/cronolog /home/d139/logs/%Y-%m-%d-%H-he-admin_access.log" combined ErrorLog "| /usr/sbin/cronolog /home/d139/logs/%Y-%m-%d-%H-he-admin_error.log" </VirtualHost>
[liuchao@GD-NT-0911QAR1CF_vm1-19.32 module]$ sudo tail -f /home/d139/logs/2019-03-13-10-he-admin_error.log [Wed Mar 13 10:02:01.194757 2019] [php7:error] [pid 17673] [client 127.0.0.1:50312] PHP Fatal error: Uncaught Error: Call to undefined method VersionManage:: getDb1() in /home/d139/var/aspire-he-admin/module/VersionManage.class.php:82\nStack trace:\n#0 /home/d139/var/aspire-he-admin/webroot/api.php(37): VersionManage::getTxlVersionUpgradeStatus(Array)\n#1 {main}\n thrown in /home/d139/var/aspire-he-admin/module/VersionManage.class.php on line 82
如果php.ini中log_errors= On
,据官方的说法,那么必须指定error_log
文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors
这个指定的Off失效,错误信息还是打印了出来。将log_errors = Off
rrreeerrreeerrreee
log_errors= On
in php.ini Laut offizieller Aussage muss die Datei error_log
angegeben werden. Wenn die Datei error_log
nicht angegeben ist oder die angegebene Datei keine Schreibberechtigung hat, wird sie dennoch über den normalen Ausgabekanal ausgegeben Machen Sie das angegebene Off von display_errors
ungültig. Die Fehlermeldung wird weiterhin gedruckt. Setzen Sie einfach log_errors = Off
. 🎜Verwandte Lernempfehlungen: php-Programmierung
(Video)
Das obige ist der detaillierte Inhalt vonWie das PHP-Fehlerprotokoll den Dateispeicherort aufzeichnet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!