欢迎光临
我们一直在努力

国内服务器WordPress无法更新

原因分析

近期国内(包括中国大陆及港澳台地区)执行任何有关插件、主题、核心的升级 / 安装时均会提示「429 Too Many Requests」导致操作失败。具体原因为 download.wordpress.org 遭受了来自国内的大流量攻击从而面向国内的 CDN 服务停摆。

解决方案

网上大多解决方案为

打开 wp-config.php 文件,在底部增加以下代码:

define('WP_PROXY_HOST', 'us.centos.bz'); define('WP_PROXY_PORT', '31281');

该方法现已失效,添加到WP中会导致无网络

非广告,如果你有自己的海外服务器的话(我的已经过期了,所以就直接用现成的了),可以自己搭建,大致如下(本站未测试):

解决无法升级的终极大招:国外服务器上自建https网页代理

1. 在国外服务器上(假如IP是:123.123.123.123)给nginx配置https

参考步骤:http://pony.hk/?p=216

2. 在国外服务器上做https网页代理,很简单,站点conf文件内容配置如下:

server { listen 443; ssl on; ssl_certificate key/server.crt; ssl_certificate_key key/server.key; server_name downloads.wordpress.org;location / { index index.php index.html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer https://downloads.wordpress.org; proxy_set_header Host downloads.wordpress.org; proxy_pass https://downloads.wordpress.org; proxy_set_header Accept-Encoding ""; } }

3. 在国内服务器上,把php.ini和php-fpm.conf参数由30改为3000,另外要自定义域名解析,在/etc/hosts文件中添加一条国外服务器的解析记录:123.123.123.123 downloads.wordpress.org

4. 因为这时候wordpress去访问的下载站点,实际上证书是错误的,要设置ssl不验证证书。方法:在wordpress当前模板的functions.php文件中加入如下代码:

add_action('http_request_args', 'jkudish_http_request_args', 10, 2); function jkudish_http_request_args($args, $url) { $args['sslverify'] = false; return $args; } // 解决php https签名错误

5. 后台升级更新

6. 把php.ini和php-fpm.conf参数由3000改回30,结束!

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:国内服务器WordPress无法更新
文章链接:https://www.jmwz.net/7807.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址