wordpress 用 docker 部署记录
前言
前面发了一篇文章,感慨了一下遇到环境不兼容的问题,之后就把代码全部下载下来,重装系统,正好 centos
也不维护了,腾讯云,阿里云自家的镜像遇到问题基本没有解决方案,所以最终选择 ubuntu 20.04
。
安装
一键安装了 NGINX, MySQL,Redis,之外,就不装 PHP 了,全部 docker
打包成镜像,然后部署到服务器,ssl 域名用了certbot 还是麻烦,最终选择泛域名,特别方便,然后新建站点后 include 相同的部分,也省去了验证
正题
环境
- WordPress 6.0.2
- MySQL 创建用户,数据库权限,其他 IP 连接的权限
- docker
- docker-compose
本人在旧服务器上将代码压缩下载到本地,没有使用迁移工具。
docker-compose.yaml
这个 docker 运行官方提供了 wordpress:latest
镜像,只需要写好配置文件,然后用 nginx 反向代理一下就行,不过坑还是挺多的。
version: '3'
services:
rwwpress:
image: wordpress:latest
ports:
- 8011:80
volumes:
- './code:/var/www/html'
networks:
- rw
tty: true
networks:
rw:
driver: bridge
.htaccess
不知道是否需要,我网站用了URL美化,就先追加上去了
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
修改配置
wp-config.php,数据信息没有写到 docker-compose 环境变量那里,我自己的就先写对配置文件里面。
// 追加
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false){
$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = 443;
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
// 修改域名
define('WP_HOME','https://www.demo.com/');
define('WP_SITEURL','https://www.demo.com/');
//找到修改
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', 'passs' );
/** Database hostname */
define( 'DB_HOST', '192.168.1.10' );
nginx
前面配置大同小异,这里只贴出重点部分
location /
{
proxy_pass http://localhost:8011;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
最后
- 如果没有解决你的问题,那么这边找到一篇比较全的 文章
本作品采用《CC 协议》,转载必须注明作者和本文链接