PHP向服務器錯誤記錄、文件或遠程目標發送一個錯誤


1、用到的函數說明 php

1語法: error_log(error, type, destination, headers) web

2 參數說明: ubuntu

    error: 必需, 要記錄的錯誤消息 vim

    type: 可選。規定錯誤記錄的類型, 可能的看記錄類型: 服務器

        0 - 默認, 根據在php.ini文件中的error_log配置,錯誤被髮送到服務器日誌系統或文件 函數

        1 - 錯誤被髮送到destination參數中的地址,只有該類型使用headers參數 php-fpm

        2- 經過PHP debugging連接來發送錯誤。該喧囂只在PHP 3 中使用 spa

        3- 錯誤發送到文件目標字符串 debug

    destination:可選,規定向何處發送錯誤消息,該參數的值依賴於"type」參數的值 rest

    headers:可選, 只有」type「爲1時使用。規定附加的頭部, 好比From, Cc已經Bcc。有CRLF(\r\n)分隔

        注意:在發送電子郵件時,必須包含From頭部。能夠在php.ini文件中或這經過此參數設置

3 小知識點:

(1)寫電子郵件Cc是Carbon Copy 意爲複寫的副本,就是咱們一般說的抄送

(2)Bcc是Blind Carbon Copy ,意爲隱蔽副本,密送。發給誰,除了你跟密送的對象外誰都不知道

(3)抄送與密送的區別:同時發同一篇郵件給不少人時,用抄送的話收件人就知道還有誰也收到了該郵件,用密送,則收件人就不知道還有誰一樣也收到了該郵件

2、示例:

/**
 * 發送一封帶有自定義錯誤的電子郵件
 */
 $test = 2;
 if($test > 1){
     echo "eee\n";
     error_log("A custom error has been triggered", 1, "792294380@qq.com", "From: webmaster@example.com");
     echo "eee2\n";
 }

3、問題解決

1 問題:sh: 1: /usr/sbin/sendmail: not found

2 出現緣由:沒有啓動或安裝sendmail組件

3 解決辦法:

(1)安裝sendemial: ubuntu系統下的安裝方法之一, sudo apt-get install sendemail

(2)重啓php-fpm進程: sudo /etc/init.d/php-fpm restart, 我使用了sudo /etc/init.d/php-fastcgi restart

(3)檢測sendemail是否運行正常: sudo /etc/init.d/sendmail status,若是現實正在運行running就能夠

    可能用到的命令:

    sudo /etc/init.d/sendmail start (啓動sendmial)

    sudo /etc/init.d/sendmail stop (關閉sendmail)

    sudo /etc/init.d/sendmial restart(重啓sendmail)

(4)配置php.ini, 填寫sendmial的絕對路徑

    1>查找php的安裝目錄: locate php5, 例如查找到在/usr/share/中

    2>填寫sendmail的絕對路徑:

       a:打開php的配置文件php.init,例如sudo vim /usr/share/php5/php.ini-development 

        b:輸入?sendmail_path查找定位

        c:編輯修改sendmail_path配置,sendmail_path = /usr/share/sendmial -t -i

(5)重啓php-fpm進程: sudo /etc/init.d/php-fpm restart

相關文章
相關標籤/搜索