Docker安装WordPress,nginx-proxy-manager+mysql5.7(超详细)
众所周知,nginx-proxy-manager非常好用,可以可视化nginx,方便一键反向代理等,而使用Docker部署WordPress会遇到几个小坑,导致各种问题不断。
本文主要解决反向代理CSS/JS丢失,和后台无限重定向的问题,索性从头到尾重新梳理一遍,供大家参考。
一、系统准备
1.1 更新包目录
sudo apt update&&sudo apt-get update1.2 安装curl
sudo apt install curl二、Docker安装及镜像准备
2.1 使用官方一键安装脚本
curl -fsSL https://get.docker.com | bash -s docker2.2 检查是否安装成功
docker -v三、拉取镜像
3.1 需要MySQL、WordPress、nginx-proxy-manager这三个镜像。
MySQL可以用Mariadb替代,当然web服务器也可以用apache、caddy等替代。
拉取MySQL5.7镜像
docker pull mysql:5.7
拉取WordPress镜像
docker pull wordpress
拉取NginxProxyManager镜像
docker pull jc21/nginx-proxy-manager
3.2 查看所拉取的镜像
docker images
四、开始安装
4.1 创建网络
创建一个名为web的虚拟网络
docker network create web4.2 运行MySQL镜像
首先启动MySQL容器 并加入到web这个网络
自定义密码MYSQL_ROOT_PASSWORD设置为Npm888999
docker run --name mysql57 --net web -e MYSQL_ROOT_PASSWORD=Npm888999 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci然后进入容器 创建数据库及添加用户
#进入mysql57容器内部
docker exec -it mysql57 bash
#登录数据库
mysql -uroot -p #输入密码Npm888999
#创建数据库wp
mysql> create database wp;
#创建用户wp 并设置密码为123456
mtsql> create user wp identified by "Npm888999";
#给用户添加权限
mysql> grant all on wp.* to wp;
#退出mysql57
exit
#最后退出容器
exit
4.3 运行WordPress镜像
创建一个目录用于存放wordpress文件
cd /home
mkdir blog
进入目录 运行wordpress镜像
cd blog
docker run -dit --net web -v `pwd`:/var/www/html --name wordpress wordpress
4.4 运行NginxProxyManager镜像
创建一个目录用于存放NginxProxyManager配置文件
cd /home
mkdir nginx_proxy
进入目录 运行nginx-proxy-manager镜像
cd nginx_proxy
#管理页面端口映射为60066 可以自定义,80和443端口不建议更改
docker run -dit -p 80:80 -p 60066:81 -p 443:443 --net web --name nginx_proxy -v $PWD/data:/data -v $PWD/letsencrypt:/etc/letsencrypt --restart=unless-stopped jc21/nginx-proxy-manager
至此,基础需要的镜像就启动完成了,检查一下三个镜像是否都在运行。
docker ps
以上容器都启动完成了
五、wordpress配置
5.1 提前将域名解析到服务器IP
5.2 打开nginx-proxy-manager的管理界面登录http://IP:60066.

默认登录信息:
Email: admin@example.com
Password: changeme
5.3 进入后先修改登录信息
再到SSL Certificates页面申请SSL证书

填写你的域名
同意条款 点击保存

申请完成后回到Hosts > Proxy Hosts
新增一个代理填好你的域名信息 以及代理转发的地址和端口

然后点击窗口上方的SSL 选择刚才申请的证书
并开启强制使用SSL HTTP2支持根据自己需求选择 最后保存

保存后打开域名应该就能看到wordpress站点安装页面了 但是这里就出现了CSS/JS丢失的情况
暂时先不管 直接安装即可 注意数据库信息填写的时候不要填错了

填写站点信息 完成安装
问题解决
最后解决一下css/js丢失的问题
进入/home/blog目录
编辑wp-config.php这个文件
将以下代码添加到文件偏上处,<?php 下
/**强制使用SSL/HTTPS访问后台以及登录**/
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
/**请求标头告知**/
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
最后保存 刷新网页 css/js不再丢失,大功告成!
评论
发表评论