利用docker和nginx配置wordpress服务器
故事的开始
之前服务器因为redis配置失误,遭到挖矿木马的攻击,整个瘫痪掉了。不得已狠下心来,重装系统,从头开始配置服务器上的环境。
机缘巧合,了解倒了docker这个牛哄哄的部署神器。于是想着使用docker来进行配置wordpress。
那么我们的目标就定了:使用docker配置mysql和wordpress容器,nginx因为需要频繁使用,就直接使用yum下载;配置博客的https。
参考资料
一开始配置,走了许多弯路,docker容器删删改改浪费了好多时间,最后还是通过多个优质博客成功了:
- https://blog.jimmytinsley.com/2020/06/10/%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95-docker%E9%83%A8%E7%BD%B2wordpressnginx%E5%B9%B6%E5%90%AF%E7%94%A8ssl/
- https://www.yuribacciarini.com/set-up-docker-wordpress-behind-docker-nginx-with-ssl/
- https://www.idc1680.com/1320.html
不知道为什么,明明几乎照着实现,但还是会有一些问题,好在最后还是成功了。
配置容器
编写docker-compose.yml
1 | version: '3' |
- 服务名称可以修改;
- ports部分的左边端口号为本地监听的端口,可以根据自己的喜好or需要进行修改;
- environment中的变量,根据自己的需要进行修改即可,但是改完之后要保持两个容器中变量的一致性;
编写php.conf.uploads.ini
1 | file_uploads = On |
配置WORKSPACE
根据自己的习惯,设置一个wordpress的workspace;我个人的话就是把/usr/wp-blog作为WORKSPACE。
- 在该目录下新建两个目录wp和nginx, 用来存放相关的配置文件;
- 在wp目录下新建一个wp-app文件夹用来存放映射的WordPress程序文件,把之前的docker-compose.yml放在wp目录下,php.conf.uploads.ini放在wp-app目录下;
打工告成cd WORKSPACE/wp; docker-compose up -d
启动镜像
在浏览器上输入you_ip_address:13080, 如果能够显示wordpress初始化界面,就成功了一大半。但是先不急着初始化。
配置nginx和ssl证书
通过各种渠道申请到ssl证书后,就可以通过nginx进行配置啦。
假设nginx的配置都是最初始的,那么首先在nginx目录下创建一个cert文件夹用来存放证书文件.
然后设置nginx.conf,关键部分如下
1 | server { |
注意,具体的ssl配置规则以发放ssl证书厂商为准,可以灵活修改。
在启动nginx镜像前, 请先确保80和443端口没有被占用, 再确保WordPress在http协议下的ip:port的访问是否正常, 再再确保你的WordPress是全新的或做好了资料备份的. 一切OK的话, 前往WordPress的设置->常规中把站点地址和WordPress地址都改成https://your_domain.com . 这一步有风险, 请不要在WordPress有资料且未备份的情况下执行操作!
然后启动nginx。
这时尝试https://your_domain.com , 如果能够显示主页,就接近成功啦!为什么是接近呢?因为wordpress的镜像在配置ssl证书之后可能存在一些问题,所以我们需要修改一下内容。
修改wp-config.php
打开WORKSPACE/wp/wp-app,在最上面(<?php
下边)添加三行即可,注意要加到上面,我之前尝试过加到文件最后面,就无效了,大概这几个变量在该文件中的几个函数里就被重复使用了。
1 | $_SERVER['HTTPS'] = 'on'; |
至此,我的wordpress就部署好了,等待大家的好消息!
- Title: 利用docker和nginx配置wordpress服务器
- Author: Huan Lee
- Created at : 2022-06-18 14:14:20
- Updated at : 2024-02-26 04:53:15
- Link: https://www.mirthfullee.com/2022/06/18/利用docker和nginx配置wordpress服务器/
- License: This work is licensed under CC BY-NC-SA 4.0.