php 网页超时的解决方法(Maximum execution time of 30 seconds exceeded)

2014年03月21日 02:38 by:老修

导读: 当我们访问某个网页执行时间超过了30秒,就会出现这样的提示: Maximum execution time of 30 seconds exceeded 出现这个错误的原因有很多种,多数是因为程序设计或服务器不畅导致的,但还有一种情况我们的确需要长时间运行某个php程序的时候那么可以参考我的方面来解决

当一个我们访问一个网页出现下面的这个提示: Maximum execution time of 30 seconds exceeded 错误,这个提示的意思就是告诉我们: 网页执行时间超过了30秒。

Maximum execution time of 30 seconds exceeded

造成这样的提示有很多原因: 

比如程序设计的缺陷造成死循环,再或者是服务器卡死,或者是数据库链接不畅等等。

还有一种情况是我们的确需要网页长时间运行以执行某项命令, 比如老修在前面的文章 《快速把2014最新版纯真ip数据库导入mysql的方法》,在导入纯真数据库的过程中需要运行37秒,那就超过了系统默认的网页运行时间,导致最终导入失败。

怎么解决(Maximum execution time of 30 seconds exceeded)这个问题?

老修这里只提供php的解决方法,其它程序请找度娘。

修改、延长网页运行时间的方法:

1、 修改是APACHE设置,在PHP.INI中找到一个参数:

  1. max_execution_time

 将后面的值调大,然后重新启动APACHE服务(centos: service httpd restart),就OK了。

2、 在php网页中加入下面的代码:

  1. set_time_limit(0);//0表示不限时

我如果需要长时间运行网页程序我建议用后者。

如果网页经常出现这个问题就要找找原因了,再优化一下程序算法,减少数据计算时间。

php.ini 其它相关参数配置:

  1. memory_limit = 256M 

每个PHP页面所吃掉的最大内存,默认128M。如果觉得小了,可以设置大点,如 max_execution_time = 1200

附:内存超限

修改程序的解决办法

利用循环分批导入;每个循环内部开始处使用sleep(5) 语句延迟执行,防止服务器内存同一时间占用过多;

页面关闭缓存 ob_flush() 同步输出 flush() 将程序的执行结果马上返回给浏览器

  1. file_uploads = on

是否允许通过HTTP上传文件。默认为ON

  1. upload_tmp_dir

文件上传至服务器存储临时文件目录,系统默认临时文件夹。

  1. upload_max_filesize = 2m

允许上传文件大小的最大值。默认为2M

  1. post_max_size = 8m

表单post总大小不能超过8M


标签:网页超时