很多站长朋友们都不太清楚显示php错误提示,今天小编就来给大家整理显示php错误提示,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 为什么安装php出现502 Bad Gateway的错误? 2、 PHP网站如何设置错误显示 3、 php代码出错 提示 为什么安装php出现502 Bad Gateway的错误?502 Bad Gateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。
第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。
第二种原因:在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway
第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
第四种原因:php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300。
第五种原因:磁盘空间不足,如mysql日志占用大量空间。
第六种原因:查看php-cgi进程是否在运行。
另外的解决办法:
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。
php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
计算的方式如下:如果服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话可以直接将 request_terminate_timeout设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。如果做不到这一点,也就 是说PHP-CGI可能出现某个BUG,或者宽带不够充足或者其他的原因导致PHP-CGI假死那么就建议给 request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好可以设置越高,20分钟-30分 钟都可以。
而max_children这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。 设置max_children也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右。
按照官方的答案,排查了相关的可能,并结合了网友的答案,得出了下面的解决办法:
1、查看php fastcgi的进程数(max_children值)代码:netstat -anpo | grep “php-cgi” | wc -l
5(假如显示5)
2、查看当前进程,代码:top观察fastcgi进程数,假如使用的进程数等于或高于5个,说明需要增加(根据机器实际状况而定)
3、调整/usr/local/php/etc/php-fpm.conf 的相关设置
<value name=”max_children”>10</value>
<value name=”request_terminate_timeout”>60s</value>
max_children最多10个进程,按照每个进程20MB内存,最多200MB。
request_terminate_timeout执行的时间为60秒,也就是1分钟。
PHP网站如何设置错误显示修改php的配置文件,如php.ini
在文件中查找到 ‘display_errors’
把 display_errors = Off 或者 display_errors = On,
Off为关闭错误提示,On为打开错误提示,根据需求修改即可。重启配置内容就可以。
php代码出错 提示这段代码不是函数,所以return是肯定出错的。应该用:
1
exit(); // 或者 die();
代替。
还有这段代码:
1
2
3
4
5
if(!$con)
{
echo "连接失败";
return;
}
其实是没有效果的。如果MySQL连接失败,会直接Warning,这段代码最多在Warning后加一句“连接失败”,所以需要屏蔽错误消息,可以用:
1
2
// 放在最前面
error_reporting(0);
来实现。
这段代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if($jifen>=5){
$wenjian = file_get_contents('./vip.txt');
echo $wenjian;
return;
}
if($jifen>=30){
$wenjian = file_get_contents('./svip.txt');
echo $wenjian;
return;
}
if($jifen>=100){
$wenjian = file_get_contents('./ssvip.txt');
echo $wenjian;
return;
}
实际上只会执行第一个>=5的判断。若>=5,在echo之后就退出了;若<5,那么后面的>=30和>=100就更不可能了。应该改为if...elseif结构。
P.S. 把数据明文放在文件里是不安全的,最好放在数据库。
还有,在最后,代码还多了一个},这也会报错。
关于显示php错误提示的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于显示php错误提示 显示php错误提示什么意思的详细内容...