阿里云 wordpress升级失败的解决办法

1、由于国内阿里云对于downloads.wordpress.org下载速度太慢,导致PHP执行超时,需要修改以下文件参数:
wordpress文件/wp-admin/includes/file.php里边的function download_url( $url, $timeout = 300 )参数修改为3000
php.ini里边的max_execution_time = 30参数修改为3000
php-fpm.conf里边的request_terminate_timeout = 30s参数修改为3000
hosts里边把downloads.wordpress.org的解析修改为这几个ip中最快的66.155.40.186~189

2、如果出现“另一更新正在进行”的提示:
WordPress在升级的过程中,如果你刷新页面或者关闭页面会造成Wordpress升级不成功,下次升级时可能会遇到这样或者那样的问题。例如我前几天升级时刷新了页面,再次升级Wordpress时,Wordpress一直提示"另一更新正在进行"。

这是由于在升级Wordpress时,Wordpress会在数据库wp_options表中增加core_updater.lock记录。如中途打断Wordpress升级,这个记录会留在数据库中。当下次升级时,Wordpress检测到此记录的存在就会返回"另一更新正在进行"。可通过以下方法解决:

通过phpmyadmin或navicat等工具管理Wordpress数据库,在wp_options表中找到core_updater.lock记录并删除。如果用sql语句查找和删除,就是:
select * from wp_options where option_name like '%lock%';
找到id后
delete from wp_options where option_id='12345';

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

第一步:在国外服务器上(假如IP是:123.123.123.123)给nginx配置https
参考步骤:http://pony.hk/?p=216

第二步:在国外服务器上做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 "";
}
}

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

第四步:因为这时候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签名错误

第五步:后台升级更新

第六步:把php.ini和php-fpm.conf参数由3000改回30,结束!