博客最终还是换服务器了, 记录几个wordpress迁移的问题
后遗症: 友链全没了, 只能慢慢手动补充。 以前的文章格式全挤在一起。 评论从倒序莫名其妙变成正序。
本来是用的阿里云共享虚拟主机, 60一年, 价格很香。
结果三天两头就发短信给我说超标, 受不了了, 哎。
现在我给他改到我手上的另一台服务器上了,折腾了好久, 因为也是阿里云家里的服务器, 还好不用备案。
途中遇到了wordpress全站 HTTPS 问题和代码高亮插件报错 (Crayon Syntax Highlighter) 问题。
HTTPS:
这个坑主要是 CDN HTTPS 和我实际上服务用的 HTTP 有冲突导致
我是用的 Nginx 代理到实际上的 wordpress 上, 用的是 HTTP 形式访问的。
就算更改了选项:
WordPress地址(URL) https://www.skypyb.com
站点地址(URL) https://www.skypyb.com
也没什么卵用。 访问是修复成 HTTPS 了, 可是请求静态资源还是 HTTP , 就全部样式雪崩。
研究了好一会才弄好, 这个主要是因为 wp 还是认为你是HTTP 访问导致的, 需要在 wp-config.php 中强制将请求信息改成 HTTPS 。
这是推荐的做法, 可我试了并没有用处。 我 Nginx 转发时是设置了对应的请求头的。
// If WordPress is behind reverse proxy // which proxies https to http if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) { // http://wordpress.org/support/topic/wordpress-behind-reverse-proxy-1 $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; // http://wordpress.org/support/topic/compatibility-with-wordpress-behind-a-reverse-proxy $_SERVER['HTTPS'] = 'on'; }
上边的判断进不去, 我只能直接使用下面这段强行开启HTTPS
$_SERVER['HTTPS'] = 'on';
Crayon Syntax Highlighter 报错
我以前用的就是 Crayon Syntax Highlighter 这个代码高亮插件, 这玩意还是挺好用的就是太老了, 也一直没更新, 几种新的编程语言高亮都不支持。
我的 WP 自然用的是最新版的, 也不知道为啥这个插件一安装就直接报错雪崩。 去各种地方搜了最终还是没能搞定。
干脆不解决了, 直接换一个更NB的得了。
所以我换成了 Enlighter , 这个可以自定义选择器, 真的NB
主要改几个选项:
- Option – Block CSS Selector 设置为
pre.EnlighterJSRAW, pre[class*="lang:"][class~="decode:true"]
- Option – Inline CSS Selector设置为
code.EnlighterJSRAW, span[class*="lang:"][class~="decode:true"][class~="crayon-inline"]
- BETA – Dynamic Resource Invocation (DRI) 需要关闭
就可以完美兼容 Crayon Syntax Highlighter的DOM格式
目前 wordpress 跑在 docker 上边, 还是挺嗨的, 以后要是再迁移就很方便了。 打个镜像就完事, 不折腾。
不过阅读量全部消失还是有点难受的……