首頁  >  文章  >  後端開發  >  PHP錯誤日誌如何記錄檔案位置

PHP錯誤日誌如何記錄檔案位置

coldplay.xixi
coldplay.xixi原創
2020-08-10 10:25:462837瀏覽

PHP錯誤日誌記錄檔案位置的方法:1、透過模組載入的方式,程式碼為【php程式中設定> httpd.conf > php.ini中配置】;2、透過【CGI/ fastCGI】模式,程式碼為【ini_get("error_log")】。

PHP錯誤日誌如何記錄檔案位置

PHP錯誤日誌記錄檔案位置的方法:

1、確定web伺服器( IIS, APACHE, NGINX等等) 以哪一種方式支援PHP,通常是有下面2種方式

    PHP錯誤日誌如何記錄檔案位置

2、透過模組載入的方式

php程序中配置 > httpd.conf > php.ini中配置

3、透過CGI /fastCGI 模式

php程序中配置 > php.ini中配置    
ini_get("error_reporting");
ini_get("log_errors");
ini_get("error_log");

輸出:

'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檔案不存在,或無法創建,寫入,則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就行了。

相關學習推薦:php程式設計(影片)

#

以上是PHP錯誤日誌如何記錄檔案位置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn