Nginx PHP 錯誤日志輸出到log文件的設(shè)置方法

2023-06-11    分類: 網(wǎng)站建設(shè)

今天一PHP程序運行出現(xiàn)問題,想看看錯誤信息,但是Nginx環(huán)境如何查看PHP錯誤信息?常規(guī)做法是看log日志文件,但是首先要做的是能讓PHP把錯誤信息輸出到log文件里。原以為很簡單,直接在php.ini里設(shè)置下log日志文件路徑即可,但測試后發(fā)現(xiàn)這樣做是不行的。那問題在哪?

image.png

Nginx PHP 錯誤日志輸出到log文件的設(shè)置方法

通過查閱了一些相關(guān)的文章資料,原來主要根源在于php-fpm的配置文件php-fpm.conf。

php-fpm的配置文件php-fpm.conf中默認是關(guān)閉worker進程的錯誤輸出,直接把他們重定向到/dev/null,所以我們看不到php的錯誤日志。

要解決這一問題,只需設(shè)置下php-fpm.conf即可。我使用的關(guān)鍵代碼如下:

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

log_level = notice

[www]

; 下面這句不能少,記錄PHP執(zhí)行錯誤日志

catch_workers_output = yes

解釋:

1、error_log 是定義日志文件路徑

2、log_level = notice 不能少

3、catch_workers_output = yes 不能少

通過這樣設(shè)置后,php的錯誤信息就會直接寫入error_log定義的日志文件里了。

重啟php服務(wù),方法:

service php-fpm restart

試試有無效果?

上述方法無效?再按下面方法設(shè)置php.ini

網(wǎng)上不少文章說到還要設(shè)置php.ini的error_log路徑,但我測試發(fā)現(xiàn),php.ini的error_log路徑設(shè)置是沒有意義的,這就解釋了為什么一開始我只設(shè)置php.ini日志輸出路徑卻沒有效果的原因。也許是別人的php-fpm.conf設(shè)置與我不同,造成還需要設(shè)置php.ini的error_log路徑。網(wǎng)友們?nèi)绻l(fā)現(xiàn)我前面提到的設(shè)置方法不可行,那么可以再設(shè)置一下php.ini,關(guān)鍵代碼是如下三行:

log_errors = On

error_log = "/usr/local/php/var/log/php_errors.log"

error_reporting = E_ALL & ~E_NOTICE

解釋:

1、log_errors = On 不能少

2、error_log 設(shè)置日志文件路徑

3、error_reporting 的值設(shè)為 E_ALL & ~E_NOTICE

網(wǎng)站名稱:Nginx PHP 錯誤日志輸出到log文件的設(shè)置方法
分享路徑:http://www.muchs.cn/news38/264438.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)頁設(shè)計公司、網(wǎng)站內(nèi)鏈、服務(wù)器托管、響應(yīng)式網(wǎng)站自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)