我希望在我的个人网站上可以个性化错误:我的意思是,当发生错误时,我不想在视频上显示任何内容,而是将所有错误记录在一个简单的文本文件中,如它总是应该在生产中完成。
我知道您可以在 4 个级别上采取行动,执行此操作,并且这些级别具有不同的优先级。我的意思是您不能用 PHP 中的“运行时”文件覆盖已在 php.ini 中设置的指令,您可以使用函数 error_reporting() 和 ini_set() 将其放在网页上。
如果我没记错的话,这些是 4 个级别(从最重要的一个级别开始):
1) php.ini
2) httpd.conf
3) 一个 .htaccess 文件被放置在文档根目录中,即 /
4) 最后是使用预定义函数 error_reporting() 和 ini_set() 的 PHP 文件
我的问题出在我的网站服务器上。我想使用上面显示的第 4 个解决方案,我准备了这个 php 文件,我试图把它放在我的页面上,这样:
<?php
include 'err_produ.php';
?>
它的来源是:
<?php
/*
This is for PRODUCTION.
Report all errors but show nothing on video: use the error_log file instead.
*/
error_reporting(E_ALL);
ini_set('display_errors', 'off');
ini_set('display_startup_errors', 0);
ini_set('log_errors', 1);
ini_set('log_errors_max_len', 0);
ini_set('ignore_repeated_errors', 1);
ini_set('ignore_repeated_source', 1);
ini_set('report_memleaks', 1);
ini_set('track_errors', 1);
ini_set('error_log', './error_log2');
?>
最奇怪的是,如果我犯了一个错误,例如写一个未初始化的变量,我仍然在屏幕上看到错误!!!!
在我的 error_log2 文件中,我什么也看不到!
我在我的本地 Web 服务器上尝试了该文件(我在我的 Ubuntu 上安装了 Xampp),它运行良好:在屏幕上我什么也看不到,在我的 error_log2 文件上我看到所有错误。
有人可以帮我吗?
我确实认为在我拥有我的网站的网络服务器上,指令是在 php.ini 中设置的,我无法访问它。事实上,它是一个免费提供托管服务的共享网络服务器。
如果是这样,我就不允许使用像我写的那样的文件来运行运行时。
你怎么看?谢谢。