网站迁移小记
31 Mar 2020
由于Linode的线路实在过慢,后来迁移到Hostker上了。
Hostker的主机还算是快吧,主要是Linode那边没有CN2之类的线路,导致国内访问大部分时候都比较慢。
Hostker的香港主机试用了下,确实延迟很低。但是访问网站还是很慢,不知道是带宽问题还是别的什么问题。最后换到了日本的线路。
迁移同时被wordpress提示php版本不够,顺便一起升级了,主要遇到三个问题。
IPv6配置
Hostker这边Ipv6地址不是自动配置的,需要自己设置。
由于我对服务器配置一直是一知半解,着实苦战了一番。
这边是ubuntu18,需要替换/etc/netplan/01-netcfg.yaml
network:
ethernets:
ens3:
addresses:
- 106.28.186.237/25
- xxxx:5040:8:4::36cb:caf0/48
gateway4: 106.28.186.129
gateway6: xxxx:5040:8::1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
dhcp4: false
dhcp6: false
version: 2
renderer: networkd
在尝试错误的过程中
netplan try
netplan --debug generate
两个指令比较有用
数据库创建
以前都是用web控制的单php文件数据库管理的。
这次怎么都连不上,似乎是安全策略变了,于是直接通过mysql语句来创建了数据库:
CREATE DATABASE mywpdb;
CREATE USER 'xxuser'@'localhost' IDENTIFIED BY 'greatpassword';
GRANT ALL ON mywpdb.* TO 'xxuser'@'localhost';
数据库替换
PHP升级过后,之前一直在使用的代码格式化展示插件不能用了,后面换成了EnlighterJS。
但是这样一来所有的旧文章就都无法正确的显示了。因此必须对标签进行替换。
之前替换https链接只要简单的执行REPLACE 就可以了,这次由于比较复杂,稍微搜索了一番才找到方法。
虽然有看到没有正则替换之类的功能的描述,好在这边用的是MariaDb的最新版本,似乎有[正则替换功能]:
UPDATE copy_wp_posts
SET post_content=REGEXP_REPLACE(post_content,'(<pre[^>]*>)','<pre class="EnlighterJSRAW" data-enlighter-language="null">')
WHERE post_content REGEXP '<pre\s*.*>'
这样的话就成功完成替换了。