blog的wordpress的/var/www/html持久化出现了意外的丢失,在工作之后,很长一段时间,没有经历去修复这些问题,导致实际上很长一段时间(半年左右),blog是缺席的,新的一年,或许应该缝缝补补这些问题了。
目前服务器恰巧只有这一个最核心的服务丢失了,检查下来,媒体站、云盘等资源都还活着。需要操作的事情如下:
- 修复blog
- 备份配置类的持久化数据
- 升级kubernetes
- 升级kubersphere面板
对于备份,可以使用longhorn的备份方案存储在对象存储中,在此方案实施前,应考虑kubectl cp 命令保存在主机中这样对于homelab更简单实用的方案
目前blog的mysql数据仍存在,我需要创建一个新的wordpress,理论上这只会丢失部分皮肤数据,以及媒体库。
顺带一提,很久没有做这件事情了,发现kubernetes官网上面已经更新了教程:
但是在kubernetes中还存在一个问题就是:wordpress启动时会确认url配置,但是你需要进入wordpress才能调整这个参数。而且很可能,wp-admin等配置中的url和数据库不匹配,出现了其他的问题。
进入数据库,查看到wordpress的url设置:
mysql> SELECT option_name, option_value
-> FROM wp_options
-> WHERE option_name IN ('siteurl', 'home');
+-------------+-----------------------------+
| option_name | option_value |
+-------------+-----------------------------+
| home | https://blog.maoyulong.club |
| siteurl | https://blog.maoyulong.club |
+-------------+-----------------------------+
2 rows in set (0.00 sec)
这个实际上可以通过wp-cli来解决,但是官方镜像是没有安装的,我们直接修改数据库和配置文件;
UPDATE wp_options
SET option_value = 'http://blog.maoyulong.club:30080'
WHERE option_name IN ('siteurl', 'home');
配置文件作如下修改,在wp-config.php 里面插入如下语句:
// 强制设置站点URL
define('WP_HOME', 'http://<NODE_IP>:<NODE_PORT>');
define('WP_SITEURL', 'http://<NODE_IP>:<NODE_PORT>');
此时重建容器,已经可以访问了,但是会出现空白页面
但是通过f12我们发现,头部信息是完整的,但是body没有实际内容,根据此前丢失的数据来看,疑似是主题文件的丢失,我们尝试在数据库恢复默认主题。
查看/var/www/html/wp-content/themes 确认默认主题名称,有以下三个:
root@wrodpress-5f87d49fb6-bbhwm:/var/www/html/wp-content/themes# ls
index.php twentytwenty twentytwentyone twentytwentytwo
更新数据库:
UPDATE wp_options
SET option_value = 'twentytwentytwo'
WHERE option_name IN ('template', 'stylesheet');
UPDATE wp_options
SET option_value = 'Twenty Twenty-Two'
WHERE option_name = 'current_theme';
之前的主题找不到了,先临时用sakura顶岗吧= =
另:此后一段时间blog的图片库暂时处于丢失状态,影响观感的封面等将会逐步补齐

Comments | NOTHING