猫窝私语 — Makumo's Blog

玛酷猫的温馨小窝,记录生活点点滴滴。

@玛酷猫3年前

01/5
18:40
心情点滴 计算机

猫窝搬迁至国内

当初因为嫌麻烦懒得去备案,猫窝一直安放在国外,已经好多年了,偶尔服务商调整IP,没注意查看邮件暂时无法访问几天外,整体无大碍,也就是访问慢一些,倒也还在忍受之内。不过近期一连串事情,也让我有了想搬回来的想法。

首先就是备案号,放国外的初衷就是嫌麻烦,也就没有备案号,可是国内越来越多的服务需要提供备案号,第一个就是微信公共平台,近半年来一直在做这方面的开发,虽然公司有些平台账号可以测试,但是由于做活动的需要,经常换来换去,也挺麻烦,自己有个还是方便些,同时做些其他开发也不用拿公司的号来测试,第二个就是一些CDN服务,比如七牛,在这个带宽费用比硬件费用贵的多的时代,图片放在CDN上面还是有必要的,CDN提供的临时域名毕竟太不友好,又长又不好记,肯定是绑定自己的域名方便,但是绑域名同样需要备案号。随着国内互联网管控的越来越严格,很多API接口呀,服务呀可能都慢慢的需要接入域名必须先备案。

话说回来有备案号,网站也不用一定要放在国内,这就说到第二个方面,就是访问速度,近半年网站的访问速度明显下降,主要可能还是要归功于伟大的墙,对很多国外空间商都不很友好,ping起来并不高,但是访问起来明显卡顿。去后台发个文、更新下都要卡半天,那感觉,很不爽。

最后关键的一点就是阿里云做活动抽了张88元的代金券,作为秉持有券不用太浪费的原则,购置一台最低档的虚拟主机,反正就是放个个人博客,再加上也没什么人访问,也不需要多好的配置。然后就是填表提交材料,照相,备案,一气下来也蛮顺利,今天备案号下发下来。

剩下的就简单了,程序打个包下下来,数据库备份下下来,再传上去还原下,解析域名,duang,完成。

以上纯属想当然,实际中也遇到一些问题。

首先就是htaccess文件,这个文件在国外的空间管理系统是隐藏的,打包就没打进去,导致搬家后自定义页面全部都是404,更不用说个性化的用cat作为页面后缀(SEO什么的完全不考虑,我的猫窝我做主),又从原来空间拷下来再传上去。其实在后台上面固定链接里面重新保存下也能生成htaccess文件,只不过原来的里面还有以前老域名的301跳转,所以还是直接拿来了。

站点在墙内了,Gravatar自然而然的挂掉了,头像全都是叉叉,网上搜了下,SSL还没墙,是用这个就好了,添加在主题的function.php中,代码如下

function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

放上去,头像的确显示了,不过都是2倍的大小,问题严重呀,看来这个方法也是很久之前的了,看了下原来的头像代码

<img alt='' src='https://secure.gravatar.com/avatar/cae0907deb928695845b7627d7236a60?s=44&#038;d=identicon&#038;r=g' srcset='https://secure.gravatar.com/avatar/cae0907deb928695845b7627d7236a60?s=88&amp;d=identicon&amp;r=g 2x' class='avatar avatar-44 photo' height='44' width='44' />

为了适配高分屏,头像里面有两个路径,分别对应原始大小和双倍大小,按照上面正则替换全都换成后面双倍大小尺寸,所显示的头像都是两倍大了,而且原来的方法直接把图片标签替换了,原来图片中带的其他参数也全部丢弃了。其实只用替换掉路径就好了,把原来的路径换成SSL的路径,修改后如下

function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/[^\']*avatar\/([^\']*)/','https://secure.gravatar.com/avatar/$1',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

保存,上传,刷新,完美。

另外一个问题就是Jetpack,在墙内虽然也能使用,但是由于墙的存在,很多功能都失效了,而且我这里貌似和后台主题有些冲突,开启插件后,自定义主题就会报500错误,禁用就好了,具体原因不详,在原来的空间不存在这个,可能还是和空间配置或者墙有些关系,反正还有其他的一些替代方法,就暂时不去理他了。

最后试了下定时备份和备份发送邮箱,空间好像有所限制,没法收到备份邮件,看来要勤快点多做备份了。顺便找找有没有其他备选方案。

猫窝搬迁至国内