Untitled

Uncategorized
2.1k words

生产日期
2023-07-07 13:17

问题


  1. 一个网站从 一台服务器搬迁到另外 一台服务器
  2. 因为是docker部署的,我连docker启动配置文件都是照抄的,数据库目录什么的都是一模一样的
  3. 当我启动docker,访问原来的主页的时候,他却是只有文字,没有图片等内容,犹如网速很慢很多内容没有加载出来一样
  4. 对于这个 问题,表面上就是CSS没有加载的感觉,当然我也不知道CSS是啥

问题点说明


该问题是WordPress数据库里面对于访问地址不正确所导致的,对此需要这么做

  1. 登陆WordPress的容器
  2. 从WordPress的容器中,跳转登陆到没有端口号的MySQL数据库
  3. 用查询语句更新关键字段

处理步骤


登陆MYSQL
注意容器名字,特别是数据库名字是否正确
在登陆数据库的时候有账户名密码,这个是建立docker的时候配置文件中自定的,可以去[[WordPress-博客]]中查看

1
2
3
docker exec -it wordpress-db-1 bash
mysql -u wd_db_user -p
use wordpress_db

查询错误网址
主要就是用来看下现在的登陆网址是否有问题

1
2
3
4
5
6
7
8
SELECT * FROM wp_options WHERE option_name = 'home' OR option_name = 'siteurl';
+-----------+-------------+-----------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------------+----------+
| 2 | home | http://139.224.37.141:8500/ | yes |
| 1 | siteurl | http://139.224.37.141:8500/ | yes |
+-----------+-------------+-----------------------------+----------+
2 rows in set (0.00 sec)
  • 如上是查询命令,其实需要修改的就是这两个字段中的option_value

修正问题

1
2
3
4
5
# 可以先把这两个字段设置成空
UPDATE wp_options SET option_value = '' WHERE option_name = 'home' OR option_name = 'siteurl';

# 设置成想要的
UPDATE wp_options SET option_value = 'http://139.224.37.141:8500/' WHERE option_name = 'home' OR option_name = 'siteurl';

处理图片问题


在网站搬家之后如果已经通过如上方式解决了网页无法现实或者显示错乱的问题,那么之后你会遇到图片大部分出现问你,在转圈圈等情况,对于之前上传过的图片无法加载的问题,可以通过类似方法通过mysql更新数据库中对于图片的网址来解决

对wordpress网站图片迁移后的访问问题,可以通过数据库来更新图片的URL地址

  1. 登录wordpress数据库,找到wp_posts表,该表包含了所有文章和页面的内容
  2. 运行如下SQL查询,筛选出图片类型的帖子:
    1
    SELECT * FROM wp_posts WHERE post_type = 'attachment';
  3. 这样可以提取出所有附件,也就是图片posts。
  4. 然后需要修改这些posts的 guid和post_content字段中的图片URL地址:
    • guid字段保存着图片原始URL
    • post_content字段中可能还有图片URL作为HTML标签属性

可以使用REPLACE函数来批量替换URL:

1
2
3
4
UPDATE wp_posts
SET guid = REPLACE(guid, 'old-domain', 'new-domain'),
post_content = REPLACE(post_content, 'old-domain', 'new-domain')
WHERE post_type = 'attachment';
1
2
3
4
UPDATE wp_posts
SET guid = REPLACE(guid, 'https://zhiqiansoft.com/', 'http://139.224.37.141:8500/'),
post_content = REPLACE(post_content, 'https://zhiqiansoft.com/', 'https://zhiqiansoft.com')
WHERE post_type = 'attachment';

参考


  • 如果要粗暴的备份方法,可以看[[WordPress-备份]]