PHP快速排查定位問題

2022-08-09 14:21:22 字數 1314 閱讀 2350

方法

一、伺服器日誌

ps aux | grep nginx  //執行命令看主程序master process,有nginx的安裝位置和配置檔案的位置

/usr/sbin/nginx -t    //獲取當前配置nginx.config 配置檔案位置

tail -f /var/log/nginx/t3.local-error.log  //檢視錯誤日誌

方法二、

phpinfo();  找到配置檔案,找到錯誤日誌,開啟報錯級別,檢視錯誤日誌;

找到display_errors = on;

error_reporting=e_all &  ~e_notice;

方法三、

跟蹤路由找到入口檔案,瀏覽器列印除錯問題;

資料庫開啟列印檢視寫入sql情況

#檢視日誌情況

show variables like '%general%';

#開啟日誌

set global general_log = 'on';

#指定日誌檔案

set global general_log_file = '/var/lib/mysql/mysql.log';

答案分析:set_error_handler() 可指定乙個**函式,錯誤發生時,會自動通過指定的**函式處理。在**函式中拋出新的異常即可。 

方法四、

####

#### 通過回溯函式定位檔案錯誤位置

#### register_shutdown_function
####

<?php

/*** 公共返回封裝

* class commonreturn

*/class commonreturn

);

<?php

class a

}class b

}class c

}$c = new c("test");

msg:test

#0  a->say(test) called at [e:\phpstudy_pro\www\project\index.php:13]

#1 b->say(test) called at [e:\phpstudy_pro\www\project\index.php:20]

#2 c->__construct(test) called at [e:\phpstudy_pro\www\project\index.php:24]

方法五、

通過xdebug 工具除錯 或 kint-php除錯工具

iOS快速定位問題

作為開發人員在除錯程式的時候,我們很想馬上知道錯誤的 在哪一行,而不想大概設定乙個斷點,逐行除錯發現最終是哪一行 出問題導致程式崩潰。可以使用下面這個辦法快速定位問題 1.unrecognized selector send to instancd 快速定位 在debug選單中breakpoints...

php 擴充套件 消失 問題排查

今晚本來要研究下swoole,但是當在cli裡面執行php指令碼的時候突然發現,swoole擴充套件不存在。當時就有點暈。昨天還好好的跑著呢今天怎麼就不能用了?就各種嘗試各種安裝發現還是沒有。前後折騰了乙個多小時。在執行的php v 突然發現 php的版本突然發現 php的版本程式設計5.3.8了,...

如何排查JVM記憶體問題並定位

今天收到測試小姐姐提的bug,在進行壓測的時,記憶體和cpu都飆高,要我分析一下。使用jdk自帶的 jvisualvm.exe 功能 在jdk的bin目錄下 如果是記憶體洩漏,堆記憶體會一直往上飆,然後會出現瘋狂gc的情況。我這裡沒有出現瘋狂gc的情況,而是有規律的gc,但每次gc的時候cpu都會飆...