用Docker配置一个本地WordPress测试环境-容器+本地Mysql


嗯,我这个人超级奇葩,每次的需求就是和网上的不一样,别人都是Mysql容器+Wp容器的组合,我就是要WP容器+主机Mysql的组合,因为,难道没人觉得本机有数据库,还折腾一个容器使用php-MyAdmin管理是多此一举吗?

准备

Mac下安装MySql参考:http://lckiss.com/?p=2579

这里值得一提的是,需要开起远程访问,当然并不是为了真的远程访问,而只是为了可以通过ip访问,Mac中默认不会有/etc/my.cnf,如果你不嫌麻烦,也可以自己去将mysql中的配置文件拷贝到/etc中,具体哪里,自行搜索,我这里采用增加用户的方式。

用数据库管理软件登入本地Mysql数据库,新建查询:

GRANT ALL ON *.* TO 你的用户名 @'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

这条语句的意思是创建一个用户,赋予它以任何方式访问,在任何数据库的所有操作权限。

PS:以下为扩展内容,在这篇文章中下面这句是不需要的,不要多此一举,只是作为扩展知识

如果你没有用IP访问的需求,可以将其改为只以localhost访问:

GRANT ALL ON *.* TO 你的用户名 @localhost IDENTIFIED BY '你的密码' WITH GRANT OPTION;

安装

因为网上的需求和我不一样,所以我也费了点时间,但是还算是顺利,如果你碰到一些问题,无法像我的这样正常工作,请尝试查看容器log,命令:

docker logs <你的容器名> 例如:docker logs WP

先pull一个Wordpress的镜像,很简单,一条命令:

docker pull wordpress:latest

放心,这个镜像是中文的,接下来启动它吧:

docker run --name WP -e WORDPRESS_DB_HOST=你的主机IP,也就是你对应的Mysql访问地址 -e WORDPRESS_DB_USER=你新增的用户名 -e WORDPRESS_DB_NAME=随便写一个你要的数据库名称不要用特殊符号 -e WORDPRESS_DB_PASSWORD=你新增的用户密码 -p 8001:80 -d wordpress

-p 8001:80 指将容器的80映射到主机的8001上
-d 指后台运行
--name 指给你的容器指定一个名字,方便管理,比如查看日志:docker logs WP 停止容器:docker container stop WP 删除容器:docker container rm WP

补充

1. WORDPRESS_DB_HOST 数据库主机地址(默认为端口:3306)
2.WORDPRESS_DB_USER 数据库用户名(默认为 root)
3.WORDPRESS_DB_PASSWORD 数据库密码
4. WORDPRESS_DB_NAME 数据库名(默认为wordpress,无需存在,给定名称后,第一次启动时自动创建)
5. WORDPRESS_TABLE_PREFIX 数据库表名前缀(默认为空,您可以从该变量覆盖 wp-config.php 中的配置)

其他的数据请按命令上的填。完成后不报错,可以使用 lsof -i :8001 查看端口使用情况,我的是这样的:

然后你就可以访问了:你的主机IP:8001 5分钟开启你的WordPress之旅

参考:Mac上安装Mysql 使用docker快速创建wordpress站点

如果log一直显示无法连接数据库,请检查防火墙,如图

不存在则请自己添加

 

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - 用Docker配置一个本地WordPress测试环境-容器+本地Mysql


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.