WP升级:三招解决wordpress在线升级超时错误

2014年05月25日 WordPress 没人吐槽 6283次浏览
博客主机

前言:每次 WordPress大更新都让不得言头疼不已,傻瓜式的升级方式看似简单,只需轻点鼠标就能完成。事情似乎总是不顺利,不得言每次升级就没消停过,总会出现各式各样,莫名其妙的问题。

不得言边用VMware 做测试边看电影。电影把本来就富裕的带宽吞噬完毕,我的WordPress升级汉化测试经历了三次失败。于是就想当网速极慢迫不得已又不得不使用在线升级时,我们该怎么办呢?

好办,我们有三种方式,外加一种暴力方式,去解决这个问题。

站长自救法:set_time_limit(0);

当我们在点击升级按钮后,满怀期待地希望一番风顺,谁知刚坚持了30秒就出现下面错误提示(此为wordpress 3.2.1升级时超时错误提示):

PHP Fatal error: Maximum execution time of 30 seconds exceeded in D:\wwwroot\wp-includes\class-http.php on line 902

PHP Fatal error: Maximum execution time of 30 seconds exceeded in D:\wwwroot\wp-includes\wp-db.php on line 502

我们的解决办法是,利用PHP函数set_time_limit(int $seconds),设置脚本的最大执行时间。$seconds为整型以秒计,如果设置为零则表示直至脚本运行完毕。

因此把wp-includes\class-http.php文件开头加上 set_time_limit(0); 问题解决。

php.ini修改法max_execution_time

对于上面超时错误,还可以修改PHP配置避免。打开PHP.ini搜索max_execution_time,把后面的数值30,换成300。不管网速多慢,5M大小5分钟也该完成了。FastCGI 默认脚本超时时间是300秒,因此自认300秒是合适的。

但一些朋友可要注意了。过长的时间无疑给那些写的不好的垃圾脚本可乘之机,占用极大的系统资源——对于虚拟主机尤甚。参考PHP官方:max_execution_time

FastCGI Error:等待的操作过时。

上面说到 FastCGI默认脚本超时时间是300秒,300秒内完不成更新的可能性极小,怎么还碰到这个问题呢?其实要怪自己,在前面配置FastCGI模式运行的PHP时,我设置了:

ActivityTimeout=120

本地虚拟机测试再加上看电影,120秒内能下载下来都怪了。

找到%windir%\system32\inetsrv\fcgiext.ini,修改这个数值为300,或删除此行(默认就是300,删除了相当于恢复默认)
或者使用脚本:

1 cscript fcgiconfig.js -set -section:"PHP" -ActivityTimeout:300

FastCGI Error

The FastCGI Handler was unable to process the request.


Error Details:

* The FastCGI process exceeded configured activity timeout

* Error Number: 258 (0×80070102).

* Error Description: 等待的操作过时。

HTTP Error 500 – Server Error.
Internet Information Services (IIS)

暴力解决法:把服务器砸了卖废铁,然后扯跟光纤。

转载自网络: http://www.budeyan.com/net_sharing/wordpress-update-timeout/

博客主机

给我留言