[英]Where are PHP errors logged to if the error_log directive simply says “error_log”?
我運行了phpinfo()
並且error_log指令只是說error_log
。 那是指什么文件? 即error_log的完整路徑是什么?
從文檔中引用:
錯誤日志字符串
應記錄腳本錯誤的文件的名稱。 該文件應該可由 Web 服務器的用戶寫入。 如果使用特殊值 syslog,錯誤將發送到系統記錄器。 在 Unix 上,這意味着 syslog(3) 而在 Windows NT 上,它意味着事件日志。 Windows 95 不支持系統記錄器。另請參閱:syslog()。 如果未設置此指令,則會將錯誤發送到 SAPI 錯誤記錄器。 例如,它是 Apache 中的錯誤日志或 CLI 中的 stderr。
因此,當未設置該值(這是默認值)時,它將被發送到父錯誤記錄器,即 apache(如果通過它運行)或stderr
如果您在命令行上運行腳本)。
如果您通過 apache 使用該腳本,則必須查看 apache 錯誤日志,通常位於/var/log/apache
或/var/log/httpd
,具體取決於您的發行版。 您可以檢查 apache 配置文件以獲取確切位置。
編輯:
我只是注意到我誤讀了您的問題,我猜您的意思是error_log
具有實際值error_log
?
我只是做了一些測試。 當我將error_log
設置為php_errors.log
類的值時,PHP 仍會將錯誤消息寫入 apache 錯誤日志。 它的行為就像該值是空的一樣。 當我將該值設置為完整路徑(例如/tmp/php_errors.log
)時,它會將錯誤寫入指定的文件。
所以我猜在你的情況下它會將錯誤寫入 apache 錯誤日志文件。
當然你可以設置自己的日志文件來添加
ini_set("error_log", "/tmp/php_errors.log");
到您需要它的 PHP 文件(如果它沒有被管理員禁用)。
當該值僅表示error_log
(或php.ini
文件中的error_log = error_log
)時,這意味着錯誤將寫入發生錯誤的同一目錄中名為error_log
的文件中。
因此,如果您在/home/user/public_html/中有一個名為index.php
的文件引發錯誤,則錯誤將寫入: /home/user/public_html/error_log 。
如果/home/user/public_html/admin/images/中有名為resize.php
引發錯誤,則錯誤將寫入: /home/user/public_html/admin/images/error_log
來源: PHP 的顯示和記錄錯誤
在 Windows 10 上,IIS 10.0.18362.1,
我在php\\php.ini
設置:
error_log = "C:\tmp\php_errors.log"
或者
error_log = C:\tmp\php_errors.log
或者
error_log = \tmp\php_errors.log
phpinfo() 顯示:
error_log C:\\tmp\\php_errors.log 或 \\tmp\\php_errors.log
有時直接,但總是在iisreset
(回收應用程序池)之后。
那就是保存文件的地方。
沒有 pad : error_log = php_errors.log
它將被寫入發生錯誤的地方。 已經提到了。
打開你的 php.ini 文件檢查 error_log 的路徑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.