Docker+Wordpress建站问题总结记录

2022-03-02 18:48:34 浏览数 (1)

Wordpress] 仪表盘 - 设置更改固定连接后无法访问了 (更改未进行备案域名/未进行Nginx反向代理)

问题产生原因: 如果更改为域名(例如未进行备案域名) 因域名无法直接访问, 模拟请求过程

  • PC 电脑浏览器输入 IP: 端口
  • Wordpress 收到请求后自动重定向设置的域名,这时候域名无解析 / 未备案导致无法访问所以界面显示 404 或其他界面.

解决方案

  1. 登录云服务器
  2. 进入 Docker-MySql
代码语言:javascript复制
查看正在运行的 docker进程
    $ docker ps 
进入docker镜像内部
    $ docker exec -it fId bash
    如果启动镜像时指定name 则可以以name方式进入
    $ docker exec -it wp(启动时候的名称) bash 进入docker

fId 为运行时第一个 12 位字母数字混合组合

当看到 /$ 代表以及在此项 docker 中,exit 退出

3. 登入 MySql, 进入数据库,执行更新命令

  • 登录
代码语言:javascript复制
$ mysql -uroot -p 
  • 回车并输入密码 (密码无显示的) 启动 mysql 时的密码

如启动用户名不一样则 mysql -u 用户名 -p

显示 mysql > 则代表以进入

  • 进入数据库 (要选择操控那个库)
代码语言:javascript复制
$ show databales;    查看所有的库
$ use wordpress;     进入 wordpress 

显示 Database changed 代表切换成功

进入库后 (必须切换要操作的库), 执行命令

代码语言:javascript复制
查看所有的表  wp_options 中
    $ show tables;   
查看表中数据当前是什么
    $ select * from wp_option where option_id=1;
如忘记设置什么 这样查看 一般都是第一个option_value中域名 
    $ select * from wp_otion where option_value=‘从仪表盘设置的域名/IP’;
    $ select * from wp_otion where option_value link ‘%xx%’;   模糊查询 %是匹配所有前面有东西的
更新命令  UPDATE 表名称 SET 字段=值  where 约束更改那些
    $ UPDATE wp_options SET option_value = replace( option_value, 'http://旧域名', 'http://新域名' ) WHERE option_name = 'home' OR option_name = 'siteurl';
    $ UPDATE wp_posts SET post_content = replace( post_content, 'http://旧域名', 'http://新域名' ) ;
    $ UPDATE wp_posts SET guid = replace( guid, 'http://旧域名', 'http://新域名' ) ;

    $ UPDATE wp_comments SET comment_content = replace(comment_content, 'http://旧域名', 'http://新域名') ;
    $ UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'http://旧域名', 'http://新域名') ;

运行后wordpress mysql链接失败

  • Q1 问题描述:

启动时IP使用127.0.0.1 / localhost / 0.0.0.0 管理界面初始化时访问失败 Docker-Wordpress连接 Docker-mysql

  • A1 解决方案

创建一个 docker新网络 查看docker IP后重新启动

  1. 添加一个 docker network
代码语言:javascript复制
$ docker network create docker-mysql-net

2. 查看网络IP ifconfig 并记住 尝试使用新建的ip去连接

  • 例如: 重新启动wordpress
代码语言:javascript复制
$ WORDPRESS_DB_HOST=172.18.0.1:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456-e WORDPRESS_DB_NAME=wordpress-p 8050:80 -d hub.c.163.com/library/wordpress  
注意其他配置都和之前运行一样 但是WORDPRESS_DB_HOST使用ifconfig查看的docker IP 启动

上述尝试之后还是无法解决排除问题

尝试 root 连接

代码语言:javascript复制
mysql -h0.0.0.0 -uroot -p密码

root可连接,但是自己新建的账号无法连接

  • A2 解决方案 请对用户授权 %因权限不足,请授权, docker是归属一个单独的虚拟环境中网络Ip非127.0.0.1 localhost 所以需要授权%
  1. root 连接进入
代码语言:javascript复制
mysql -h0.0.0.0 -uroot -p 密码

2. 授权

代码语言:javascript复制
grant all privileges on `数据库名称`.* to '用户名称'@'%' ;

0 人点赞