WordPress提示 没有可以完成请求的HTTP传输器 – 似水流年

其他杂项448字数 1206阅读4分1秒阅读模式

最近Wordpress官方发布了4.3的中文版,我对于最新的软件或者插件版本向来就有着相当大的乐趣在里面。追求最新鲜的功能体验,说不上来是为什么,或许只是对未知的猎奇心比较强。

觉得上传文件到服务器更新太过于繁琐,所以就点击了“现在更新”按钮。既然人家官方都做了这个功能,何必再自己劳心劳力呢?然后……然后……就没有然后了,系统出现错误提示:没有可以完成请求的HTTP传输器。一开始我以为是网络问题,或许隔一段时间再更新会有更大的希望。

结果,你已经知道了。尝试了三四次,每次都是同一种错误提示,而且屡试不爽。我就纳了闷了,服务器的安全设置也没有严格到不允许请求wordpress.org啊!甚至有一次我还下载了一个版本的更新文件,然后上传到项目目录去覆盖。最后的麻烦事就是,我得把以前目录里改过了页面重新再改一遍,重复性的无意义的劳动让人很憋屈。

于是我就开始在网上冲浪了,查找更新失败的原因。

网络限制问题?

有些网友说,部分地区的机房或者空间由于服务商的网络限制,无法直接更新官方的一些版本或者插件。而这说明有部分原因确实是网络引起的,只能通过手动下载然后上传到空间目录。

PHP的curl模块

但是,这种说法对我完全不适用,因为我们使用的是服务器托管,而且是双线机房。不存在网络限制问题,或者服务运营商的网络安全屏蔽设置。所以那肯定有其他原因,最后我找到了也遇到同种问题的网友说明,原来是php的curl模块。

PHP支持的由Daniel Stenberg创建的libcurl库,允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

这个是百科的详细说明,curl库就是用来服务器项目的对外连接和通讯。所以没有开启这个模块,对于类似协议的连接和请求均无法实现。而这也解释了更新的时候为什么找不到HTTP传输器。

1

;extension=php_curl.dll

在php.ini中找到这一句话,把前面的分号去掉,就实现了模块开启。重启下apache服务就搞定了。

需要注意的是,wordpress在更新版本或者插件的时候,下载更新往往需要先进行文件缓存。这里就涉及到2个参数配置:

1

2

max_execution_time=60   //php脚本的最大执行时间,默认60秒,如果觉得文件60s下载不完的话,建议放宽时间限制,0为无限制

post_max_size=8M       //post请求下php能接收的文件最大容量,默认为8M,如果文件过大的话建议放宽,0为无限制

把这几个参数配置完善,再更新版本应该不会有其他问题了。

 
  • 本文由 asdfasd 发表于 2016-05-2410:47:36
  • 转载请务必保留本文链接:http://wp.fangfa.me/other-note/wordpress%e6%8f%90%e7%a4%ba-%e6%b2%a1%e6%9c%89%e5%8f%af%e4%bb%a5%e5%ae%8c%e6%88%90%e8%af%b7%e6%b1%82%e7%9a%84http%e4%bc%a0%e8%be%93%e5%99%a8-%e4%bc%bc%e6%b0%b4%e6%b5%81%e5%b9%b4.html