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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!