亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP的錯誤處理方式(開發和上線)

2020-03-22 17:42:16
字體:
來源:轉載
供稿:網友
  • 對于PHP開發者來說,一旦某個產品投入使用,應該立即將 display_errors選項關閉,以免因為這些錯誤所透露的路徑、數據庫連接、數據表等信息而遭到黑客攻擊。但是,任何一個產品在投入使用后,都難 免會有錯誤出現,那么如何記錄一些對開發者有用的錯誤報告呢?我們可以在單獨的文本文件中將錯誤報告作為日志記錄。錯誤日志的記錄,可以幫助開發人員或者 管理人員查看系統是否存在問題。 如果需要將程序中的錯誤報告寫入錯誤日志中,只要在PHP的配置文件中,將配置指令log_errors開啟即可。錯誤 報告默認就會記錄到Web服務器的日志文件里,例如記錄到html' target='_blank'>Apache服務器的錯誤日志文件error.log中。當然也可以記錄錯誤日志到指定的文件中 或發送給系統syslog,分別介紹如下:

    1、使用指定的文件記錄錯誤報告日志

    使 用指定的文件記錄錯誤報告日志使用指定的文件記錄錯誤報告日志使用指定的文件記錄錯誤報告日志 如果使用自己指定的文件記錄錯誤日志,一定要確保將這個文 件存放在文檔根目錄之外,以減少遭到攻擊的可能。并且該文件一定要讓PHP腳本的執行用戶(Web服務器進程所有者)具有寫權限。假設在Linux操作系 統中,將/usr/local/目錄下的error.log文件作為錯誤日志文件,并設置Web服務器進程用戶具有寫的權限。然后在PHP的配置文件中, 將error_log指令的值設置為這個錯誤日志文件的絕對路徑。

    需要將php.ini中的配置指令做如下修改:

    1. error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤

    2. display_errors = Off ;不顯示滿足上條 指令所定義規則的所有錯誤報告

    3. log_errors = On ;決定日志語句記錄的位置

    4. log_errors_max_len = 1024 ;設置每個日志項的最大長度

    5. error_log = /usr/local/error.log ;指定產生的 錯誤報告寫入的日志文件位置

    PHP 的配置文件按上面的方式設置完成以后,并重新啟動Web服務器。這樣,在執行PHP的任何腳本文件時,所產生的所有錯誤報告都不會在瀏覽器中顯示,而會記 錄在自己指定的錯誤日志/usr/local/error.log中。此外,不僅可以記錄滿足error_reporting所定義規則的所有錯誤,而且 還可以使用PHP中的error_log()函數,送出一個用戶自定義的錯誤信息。

    該函數的原型如下所示:

    1. bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )

    此 函數會送出錯誤信息到Web服務器的錯誤日志文件、某個TCP服務器或到指定文件中。該函數執行成功則返回TRUE,失敗則返回FALSE。第一個參數 message 是必選項,即為要送出的錯誤信息。如果僅使用這一個參數,會按配置文件php.ini中所設置的位置處發送消息。第二個參數 message_type為整數值:0表示送到操作系統的日志中;1則使用PHP的Mail()函數,發送信息到某E-mail處,第四個參數 extra_headers亦會用到;2則將錯誤信息送到TCP 服務器中,此時第三個參數destination表示目的地IP及Port;3則將信息 存到文件destination中。

    如果以登入Oracle數據庫出現問題的處理為例,該函數的使用如下所示:

    1. <?php

    2. if(!Ora_Logon($username, $password)){

    3. error_log("Oracle數據庫不可用!", 0); //將錯誤消息寫入到操作系統日志中

    4. }

    5. if(!($foo=allocate_new_foo()){

    6. error_log("出現大麻煩了!", 1, ". mydomain.com"); //發送到管理員郵箱中

    7. }

    8. error_log("搞砸了!", 2, "localhost:5000"); //發送到本機對應5000端口的服務器中

    9. error_log("搞砸了!", 3, "/usr/local/errors.log"); //發送到指定的文件中

    10. ?>

    2、 錯誤信息記錄到操作系統的日志里

    錯 誤信息記錄到操作系統的日志里錯誤信息記錄到操作系統的日志里錯誤信息記錄到操作系統的日志里 錯誤報告也可以被記錄到操作系統日志里,但不同的操作系統 之間的日志管理有點區別。在Linux上錯誤語句將送往syslog,而在Windows上錯誤將發送到事件日志里。如果你不熟悉syslog,起碼要知 道它是基于UNIX的日志工具,它提供了一個API來記錄與系統和應用程序執行有關的消息。Windows事件日志實際上與UNIX的syslog相同, 這些日志通??梢酝ㄟ^事件查看器來查看。如果希望將錯誤報告寫到操作系統的日志里,可以在配置文件中將error_log指令的值設置為syslog。

    具體需要在php.ini中修改的配置指令如下所示:

    1. error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤

    2. display_errors = Off ;不顯示 滿足上條指令所定義規則的所有錯誤報告

    3. log_errors = On ;決定日志語句記錄的位置

    4. log_errors_max_len = 1024 ;設置每個日志項的最大長度

    5. error_log = syslog ;指定產生的錯誤報告寫入操作系統的日志里

    除了一般的錯誤輸出之外,PHP還允許向系統syslog中發送定制的消息。雖然通過前面介紹的error_log()函數,也可以向syslog中發送定制的消息,但在PHP中為這個特性提供了需要一起使用的4個專用函數。

    分別介紹如下:

    define_syslog_variables()

    在使用openlog()、syslog及closelog()三個函數之前必須先調用該函數。因為在調用該函數時,它會根據現在的系統環境為下面三個函數初使用化一些必需的常量。

    openlog()

    打開一個和當前系統中日志器的連接,為向系統插入日志消息做好準備。并將提供的第一個字符串參數插入到每個日志消息中,該函數還需要指定兩個將在日志上下文使用的參數,可以參考官方文檔使用。

    syslog()

    該 函數向系統日志中發送一個定制消息。需要兩個必選參數,第一個參數通過指定一個常量定制消息的優先級。例如LOG_WARNING表示一般的警 告,LOG_EMERG表示嚴重地可以預示著系統崩潰的問題,一些其他的表示嚴重程度的常量可以參考官方文檔使用。第二個參數則是向系統日志中發送的定制 消息,需要提供一個消息字符串,也可以是PHP引擎在運行時提供的錯誤字符串。

    closelog()

    該函數在向系統日志中發送完成定制消息以后調用,關閉由openlog()函數打開的日志連接。

    如果在配置文件中,已經開啟向syslog發送定制消息的指令,就可以使用前面介紹的四個函數發送一個警告消息到系統日志中,并通過系統中的syslog解析工具,查看和分析由PHP程序發送的定制消息,如下所示:

    1.

    2. define_syslog_variables();

    3. openlog("PHP5", LOG_PID , LOG_USER);

    4. syslog(LOG_WARNING, "警告報告向syslog中發送的演示, 警告時間:".date("Y/m/d H:i:s"));

    5. closelog();

    6. ?>

    以Windows系統為例,通過右擊"我的電腦"選擇管理選項,然后到系統工具菜單中,選擇事件查看器,再找到應用程序選項,就可以看到我們自己定制的警告消息了。上面這段代碼將在系統的syslog文件中,生成類似下面的一條信息,是事件的一部分:

    1. PHP5[3084], 警告報告向syslog中發送的演示, 警告時間:2009/03/26 04:09:11.

    使 用指定的文件還是使用syslog記錄錯誤日志,取決于你所在的Web服務器環境。如果你可以控制Web服務器,使用syslog是最理想的,因為你能利 用syslog的解析工具來查看和分析日志。但如果你的網站在共享服務器的虛擬主機中運行,就只有使用單獨的文本文件記錄錯誤日志了。


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    羞羞色国产精品| 91av国产在线| 精品久久久999| 欧美成人精品激情在线观看| 精品香蕉一区二区三区| 亚洲精品免费av| 国产福利精品在线| 中文字幕亚洲无线码a| 久久精品中文字幕电影| 亚洲美女在线看| 亚洲视频在线免费看| 欧美日韩在线视频首页| 欧美黄色三级网站| 国产精品扒开腿做爽爽爽的视频| 日韩中文字幕精品| 亚洲日本aⅴ片在线观看香蕉| 亚洲日本中文字幕免费在线不卡| 精品偷拍一区二区三区在线看| 亚洲电影免费观看高清完整版在线| 亚洲国产精品人人爽夜夜爽| 精品久久久在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲aa在线观看| 久久精品国产欧美激情| 热久久这里只有| 日韩精品久久久久久久玫瑰园| 久久精品99久久久久久久久| 国产精品免费在线免费| 38少妇精品导航| 亚洲图片制服诱惑| 91亚洲精品久久久久久久久久久久| 久久免费国产视频| 亚洲欧美中文另类| 久久久精品久久久久| 国产欧美日韩高清| 亚洲精品久久久久久久久久久久| 欧美亚洲日本黄色| 欧美在线视频导航| 国内精品模特av私拍在线观看| 最好看的2019的中文字幕视频| 久久久久久69| 亚洲精品v欧美精品v日韩精品| 欧美日韩国产va另类| 国产一区二区在线免费视频| 欧美精品少妇videofree| 久久亚洲精品毛片| 4438全国成人免费| 欧美丰满片xxx777| 性色av一区二区三区红粉影视| 黑人巨大精品欧美一区二区| 国产精品一久久香蕉国产线看观看| 国产视频欧美视频| 久久久久久网址| 成人a免费视频| 欧洲一区二区视频| 日韩欧美a级成人黄色| 国产精自产拍久久久久久| 国产精品盗摄久久久| 夜色77av精品影院| 亚洲人成电影网站色xx| 欧美日韩国产一区中文午夜| 国产日韩欧美日韩大片| 姬川优奈aav一区二区| 久久99热这里只有精品国产| 国产精品白丝av嫩草影院| 国产精品黄色av| 另类少妇人与禽zozz0性伦| 国模gogo一区二区大胆私拍| 亚洲伦理中文字幕| 日韩中文字幕在线播放| 精品高清美女精品国产区| 欧美一级淫片丝袜脚交| 57pao成人永久免费视频| 久久久久久亚洲精品| 51色欧美片视频在线观看| 欧美专区在线视频| 91国在线精品国内播放| 日韩av免费在线| 91在线观看免费观看| 国产精品成人aaaaa网站| 久久视频国产精品免费视频在线| 亚洲欧美成人一区二区在线电影| 亚洲人成欧美中文字幕| 欧美第一黄网免费网站| 欧美巨乳美女视频| 久热精品在线视频| 92版电视剧仙鹤神针在线观看| 欧美极品少妇与黑人| 色综合久久中文字幕综合网小说| 欧美做受高潮1| 在线观看国产成人av片| 欧美日韩亚洲一区二区三区| 亚洲嫩模很污视频| 欧洲亚洲在线视频| 亚洲在线观看视频| 亚洲精品综合久久中文字幕| 一道本无吗dⅴd在线播放一区| 日本高清视频一区| 国产视频精品久久久| 亚洲视频电影图片偷拍一区| 国产日韩在线精品av| 国产精品一香蕉国产线看观看| 亚洲a级在线播放观看| 亚洲成人网久久久| 视频一区视频二区国产精品| 亚洲视频在线观看网站| 尤物99国产成人精品视频| 亚洲国产精品久久久久久| 一本色道久久综合狠狠躁篇怎么玩| 亚洲91av视频| 精品久久久久久久久久久久久| 日韩中文字幕亚洲| 国产mv免费观看入口亚洲| 亚洲精品日韩激情在线电影| 77777少妇光屁股久久一区| 日韩av日韩在线观看| 成人黄色av播放免费| 在线亚洲午夜片av大片| 国产精品女主播视频| 精品欧美一区二区三区| 久国内精品在线| 欧美日韩国产精品一区| 日本精品中文字幕| 国产精品视频一区二区高潮| 精品亚洲一区二区三区在线观看| 欧美电影免费看| 欧美大学生性色视频| 欧美国产日韩一区| 日韩久久免费视频| 欧美午夜精品伦理| 国产精品自产拍在线观看中文| 亚洲欧美激情精品一区二区| 久久久久久av| 中文字幕欧美精品在线| 欧美激情a在线| 51午夜精品视频| 精品日本高清在线播放| 日韩专区中文字幕| 欧美日韩高清在线观看| 91久久精品国产91性色| 亚洲跨种族黑人xxx| 亚洲a成v人在线观看| 欧美激情视频在线| 国产97免费视| 国语对白做受69| 亚洲情综合五月天| 日本一区二区三区四区视频| 欧美性xxxx| 亚洲男人天堂手机在线| 国产欧美精品一区二区| 国产精品视频1区| 国产成人精品日本亚洲专区61| 91精品国产91久久| 国产精品成人aaaaa网站| 日韩欧美亚洲国产一区| 国产香蕉97碰碰久久人人| 日韩美女视频在线观看| 97在线看免费观看视频在线观看| 欧美性xxxxx| 国内精品久久久久影院 日本资源| 欧洲成人免费视频| 另类美女黄大片| 97精品免费视频| 精品一区精品二区|