用docker搭建一个WordPress试试吧,有个博客来记录一下总是好的。
从今天开始换成Hexo了,又换成了Hugo
基础配置
服务器:阿里云学生特惠轻量应用服务器
系统:CentOS 7.3
docker安装
安装目的
如果直接在服务器上布置,为了运行WordPress,首先需要安装MySQL,Apache2(即httpd)(或者是nginx)、PHP以及最新版本的WordPress,来组成常用的LAMP(Linux+Apache+MySQL+PHP)框架或者是LNMP(Linux+nginx+MySQL+PHP)框架。
这个过程一般来说是麻烦且难以移植的
但是如果通过docker的话,环境配置部分就得到了简化,并且不用担心在准备环境的时候,要去调整原来的PHP版本,去修改MySQL的版本,还要专门折腾Apache或者NGINX。
安装步骤
切换到root用户,通过yum命令来安装docker,在这之前先升级所有包同时也升级软件和系统内核
sudo su root
yum update -y
yum install docker -y
后续的步骤都要求你对服务器有绝对的控制权,也就是说后续没有特别说明,我们都是以root用户运行命令
默认情况下,只有root用户和docker组的用户才能访问Docker引擎的Unix socket。当然直接用root权限使用docker太过危险(删库跑路),建议新建一个docker用户,然后加入docker用户组
groupadd docker
useradd -g docker docker
通过阿里云的容器镜像服务的镜像加速器可以加快一些些docker从仓库中下载镜像的速度
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://x2sqfp3l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
MySQL安装
安装目的
由于WordPress需要MySQL来处理数据,所以需要提前安装好MySQL然后将后续安装的WordPress连接到MySQL上
安装步骤
从docker镜像仓库中获取MySQL的最新版本的镜像
docker pull mysql
通过docker的run指令启动一个MySQL容器
docker run --name <ContainerName> -e MYSQL_ROOT_PASSWORD=<Password> -d mysql
此处以及下处的各种参数的意义参见 https://www.jianshu.com/p/2faca4e1f6fb
安装完成后,进入MySQL,新建数据库wordpress,查看是否创建成功
docker exec -it mysqlname bash
# 进入mysql的容器
mysql -uroot -p
# 此处输入密码
CREATE DATABASE wordpress;
SHOW DATABASES;
WordPress安装
同上
docker pull wordpress
docker run --name yourcontainername -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=yourpassword --link mysqlname:mysql -p 80:80 -d wordpress
遇到问题及解决办法
遇到问题
一切按照网上的安排后打开host-ip却发现
Error establishing a database connection
解决办法
通过以下语句进入到容器内部,查看wp-config.php文件是否正确
docker exec -it <WordPressName> bash
cat wp-config.php
进入后发现各种参数都是对的上的,比如DB_NAME之类的,都是正确的
后修改wp-config.php中的DEBUG参数,使之显示报错提示,通过报错提示
The server requested authentication method unknown to the client
搜索得到结果,原因是新版本的MySQL账号密码解锁机制不一致导致的问题
在MySQL中通过alter user命令修改解锁机制就行
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
参考资料
docker.hub关于WordPress以及MySQL的安装
https://hub.docker.com/_/wordpress/
https://hub.docker.com/_/mysql/
https://www.jianshu.com/p/2faca4e1f6fb
https://blog.csdn.net/guoguicheng1314/article/details/80526111