簡體   English   中英

PHP-error_log()不會打印到文件

[英]PHP - error_log() will not print to file

標題幾乎說明了一切。 我一直在全力以赴地努力工作。 我正在創建基於PHP的登錄系統,並且需要進行一些調試。 對我而言,目前最有用的是在整個PHP程序中的某些點將調試消息寫入文件的功能。 根據文檔,這似乎應該是error_log()要做的事情,但是盡管我嘗試了一切,但我還是沒有成功。 我在下面嘗試過的所有內容的完整列表:

  • 將以下內容添加到/etc/php/7.0/apache2/php.ini

     error_reporting = E_ALL display_errors = On log_errors = On 
  • 此外,嘗試將error_log設置為/usr//var/www/http//home/

  • 使用ini_set()error_reporting()來設置所有這些變量,包括PHP文件中的error_log

  • 手動創建應該寫入的文件,並將其擁有的用戶和組設置為www-data並將其權限設置為777

  • 最后但並非最不重要的一點是,重新安裝libapache2-mod-php7.0php7.0 ,無濟於事

  • 基本上,在跳到我預期死亡之前,除了使用筆記本電腦打破辦公大樓的第三個故事窗口外,所有其他事情

我真的找不到其他可以在Google上嘗試的東西,所以我想請教專家,就在這里。 如果有人可以提供任何建議,將不勝感激。

我猜這些日志已寫入sys日志,因為在error_log()中您未提供目標位置。

試試下面的代碼

error_log("An error occured", 3, "/var/tmp/my-errors.log");

確保此文件可以由php fpm或www-data讀取,具體取決於您的配置,您可以在觸摸之前創建它,並使用chmod手動添加權限

3表示目標是文件

如果您使用apache,請在httpd.conf或任何其他可能存在錯誤的地方(v所在的位置)簽入

ErrorLog "/var/log/apache2"

然后使用ls -la ll等檢查該文件是否具有以下用戶組。

 -rwxrwxr-x 1 www-data www-data 

這樣的東西應該出現。

另一個選項是在適當的php.ini中設置以下內容(CLI和apache具有不同的php.ini文件)

 error_log = /var/log/phperrors.log 

然后

 touch /var/log/phperrors.log
 chown www-data: /var/log/phperrors.log
 chmod +rw /var/log/phperrors.log

沒有奇跡,但是如果仍然set_error_handler()您可以使用set_error_handler()編寫和注冊自己的錯誤處理程序,您可以在php手冊中找到有關如何執行此操作的示例。 它更像是hack,但可以肯定地工作。 如果不這樣做,則意味着根本不會觸發錯誤,那么應該在觸發錯誤之前查看是否編輯了正確的php.ini或使用ini_set()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM