20240313, 将博客迁移到了阿里云99/年的服务器;
记录相关变动 & 命令。
一、数据备份
我采用的是手工备份的形式:
1. 博客的文件夹上传Git
2. MySQL数据采用mysqldump导出
1 2 |
mysqldump -u username -p database_name > /path/to/output/file.sql mysqldump -u username -p database_name table_name > /path/to/output/file.sql |
二、新环境搭建
LNMP 一键安装,这个比较容易;
1 2 3 4 |
wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz tar -zxvf lnmp2.0.tar.gz cd lnmp2.0/ ./install.sh |
在版本选择方面: (自己玩博客嘛, 尽量选择了新版本)
nginx 1.24.0
php 7.4.33
mysql 8.0.33
通过phpmyadmin将前面导出的MySQL数据导入
下载Git代码到指定目录下
修改 wp-config.php 里面关于 mysql 的参数, 与新机器一致。
配置nginx指向博客代码地址
三、相关问题解决
最开始碰到的是502的问题。
这个情况是Nginx配置错误;
按照nginx的默认配置, 修改了nginx映射到博客的配置,同时做一些WordPress相关改动。
记录当前配置conf, 供参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
server { listen 80; #listen [::]:80 ipv6only=on; server_name www.tkxiong.com tkxiong.com; index index.html index.php; root blog_dir_path; # Deny access to PHP files in specific directory location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; } include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 3h; } location / { try_files $uri $uri/ /index.php; #try_files $uri $uri/ /index.php?$args; } location ~ /.well-known { allow all; } location ~ /\. { deny all; } access_log /home/wwwlogs/access.log; } |
然后进入博客之后,会出现界面展示不全等问题。
不着急,先进后台升级了WordPress版本(之前的版本很久没升级了)
屏蔽掉了长久没更新的插件。(因为插件与新版本WordPress不兼容,所以目前代码高亮插件还是坏的)
然后博客能够正常进入。
修改WordPress MySQL数据表前缀
主要是之前的数据表前缀是wp_test_, 我不喜欢, 改回默认的 wp_。
1. 使用phpmyadmin 修改数据库内所有表的前缀。(假设修改wp_test_为wp_)
2. 修改博客配置wp_config.php里面的$table_prefix为新表前缀 wp_
3. MySQL表 wp_options 里面的 option_name 字段值要改掉
1 |
update wp_options set option_name = replace(option_name,'wp_test_','wp_'); |
4. MySQL表 wp_usermeta 里面的 meta_key 字段值要改掉
1 |
update wp_usermeta set meta_key = replace(meta_key,'wp_test_','wp_'); |
四、修复代码高亮插件 Crayon Syntax Highlighter
这个插件是我以前一直用的一款插件,但是很久没有更新了,然后有另一个人继承了它继续开发。
但是我还是想继续用它…没办法就只能修复了。
网上搜索 Crayon Syntax Highlighter 在PHP7.4报错解决办法
得到解决方案如下:
1)找到错误的文件:wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php
2)on line 340
3)修改代码,增加一个反斜线,解决问题。
1 2 3 4 5 6 |
// Override function clean_id($id) { $id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) ); # change '/[^\w-+#]/msi' to '/\[^\w-+#]/msi' return preg_replace('/\[^\w-+#]/msi', '', $id); } |
报错的原因是: [ 是正则中特殊字符,需要用 \反斜线转义。