隐藏常见的PHP警告和通知

时间:2014-12-14 11:26:27

标签: php nginx

情节:首先,我有一个有GodDaddy的网站,他们很酷的CPanel和更多很酷的停机时间,我转移到Digital Ocean VPS。

问题:但是当我将文件传输到VPS时,我遇到了一些常见/不常见的PHP错误。使用godaddy时我没有看到任何错误。其中一些是。

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 

我现在正在使用PHP 5.4(在nginx上,LEMP安装)。任何隐藏这些错误的方法,因为即使出现这些错误,我的网站也能完美运行。

4 个答案:

答案 0 :(得分:6)

我会考虑修复问题,而不是抑制通知和错误消息。现在可能需要做更多的工作,但我认为最终有一个完整的运行和运行的程序是值得的 - 如果Digital Ocean更新库,你的代码将会中断。

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7

此通知告诉您存在未设置的变量以及在哪个文件中以及在哪行中。所以你应该去看看这个文件,看看第7行发生了什么,并尝试修复它。看起来根本不需要$ q,所以如果其他地方需要变量,请尝试对该行进行注释或深入查看文件。

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 

不推荐使用值为1的CURLOPT_SSL_VERIFYHOST,从libcurl 7.28.1开始将删除它。建议使用值2。

考虑查看正在运行curl的文件并从

更改行
CURLOPT_SSL_VERIFYHOST => true or  CURLOPT_SSL_VERIFYHOST => 1

为:

CURLOPT_SSL_VERIFYHOST => 2,

看起来GoDaddy使用了不同库的过时(较旧)版本。

curlopt设置现在可能是一个警告,但一旦Digital Ocean更新其库或您更新它们就会中断您的程序。

答案 1 :(得分:5)

您可以根据the documentation更改php.ini文件并避免错误:

error_reporting = E_ALL & ~E_NOTICE

这将删除通知和编码标准警告。

答案 2 :(得分:3)

在脚本顶部添加以下内容

 error_reporting(0);

答案 3 :(得分:0)

在php.ini文件中,您可以考虑两个变量。第一个是捕获的错误级别,第二个是是否在屏幕上显示它们。

error_reporting = E_ALL & ~E_DEPRECATED

display_errors = Off

调整这些将为您提供所需的输出。