隐藏常见的PHP警告和通知

Idi*_*wIt -1 php nginx

情节:首先我有一个GodDaddy的网站,他们很酷的CPanel和更酷的停机时间,我转移到数字海洋VPS.

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

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7
Run Code Online (Sandbox Code Playgroud)

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 
Run Code Online (Sandbox Code Playgroud)

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

chr*_*con 6

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

Notice: Undefined variable: q in /srv/users/someuser/apps/video/public/config.php on line 7
Run Code Online (Sandbox Code Playgroud)

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

Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead 
Run Code Online (Sandbox Code Playgroud)

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

考虑查看正在运行curl的文件并更改其中任何一行

CURLOPT_SSL_VERIFYHOST => true or  CURLOPT_SSL_VERIFYHOST => 1
Run Code Online (Sandbox Code Playgroud)

至:

CURLOPT_SSL_VERIFYHOST => 2,
Run Code Online (Sandbox Code Playgroud)

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

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


ale*_*oot 5

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

error_reporting = E_ALL & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)

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