使用 ServerCat 和 Docker 快速搭建 WordPress 网站

使用 ServerCat 和 Docker 快速搭建 WordPress 网站

Published
Published December 11, 2020
Author
Dukewill
本文全部基于个人使用经验且仍在完善,如有错漏,尽情谅解。 ServerCat 是 Hyperapp 作者 Baye 的新应用,它们都是安装和管理 docker 的高效工具。

0x01 准备

软硬件

自行准备并搜索相关教程
  • 一台公网可以访问的服务器或 VPS,打开 80 和 443 等端口;
  • 一个域名,DNS 解析到上面的服务器;
  • 一台 iPhone 或 iPad,安装 ServerCat,添加上面的服务器;
  • 手边最好有台电脑,方便查资料和排错;
  • 尝试一万次的决心。

Docker

一个 WordPress 网站需要这些基本服务

可选

其实看官方文档就足够了
notion image
dockerhub 搜索所需 docker

0x02 开始安装

以下操作全部在 ServerCat 的容器(Pods)内完成

MariaDB

添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器。
镜像(Image)填写 mariadb
notion image
notion image
选项(Options)中填写容器名(Container Name),如mariadb,记住这个名字,后面链接数据库会用到。
重启(Restart)选择 always,这个根据需要,一般选 always。
notion image
进入环境变量(Enviroment),这里添加两个环境变量:
MYSQL_ROOT_PASSWORD=12345678 #数据库管理员密码,默认账户为 root MYSQL_DATABASE=database #创建容器时新建一个名为 database 的数据库,后面我们可以直接使用这个数据库 #其它环境变量请查看官方文档
进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理数据库:
/srv/docekr/mariadb:/var/lib/mysql #冒号前为主机路径(可自行修改),后为容器路径(不要改)
notion image
notion image
保存这个容器,点击服务器一栏 → 安装。
notion image
notion image
长按容器标签栏,可编辑或删除容器

nginx-proxy

  • 🐳
      1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
      1. 镜像(Image)填写jwilder/nginx-proxy
      1. 选项(Options)中填写容器名,如nginx-proxy
      1. 重启(Restart)选择 always,这个根据需要,一般选 always;
      1. 进入端口(Ports),添加两个端口映射:80:80443:443
      1. 进入挂载(Mounts),映射路径:
        1. /srv/docker/certs:/etc/nginx/certs #SSL 证书目录,开启 SSL 时需要 /srv/docker/nginx/vhost.d:/etc/nginx/vhost.d #nginx 配置文件目录 /srv/docker/nginx/html:/usr/share/nginx/html /var/run/docker.sock:/tmp/docker.sock:ro #这条不要修改
      1. 保存这个容器,点击服务器 → 安装。

WordPress

  • 🐳
      1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
      1. 镜像(Image)填写 wordpress
      1. 选项(Options)中填写容器名,如 wordpress
      1. 重启(Restart)选择 always,这个根据需要,一般选 always;
      1. 在其它(EXTRA)中加入这样一条:
        1. --link mariadb:db #这样就让 WordPress 和之前建立的数据库建立了连接
      1. 进入环境变量(Enviroment),这里我们添加七个环境变量:
        1. WORDPRESS_DB_HOST=mariadb #网站主数据库,用前面建的数据库容器名 WORDPRESS_DB_NAME=database #网站数据,用前面建数据库时建的数据库 😂 WORDPRESS_DB_PASSWORD=12345678 #数据库管理员密码,默认账户 root VIRTUAL_HOST=ojbk.com #你的域名,多个域名用英文逗号“,”隔开 LETSENCRYPT_HOST=ojbk.com #为你的域名申请 SSL 证书,这个要配合 [letsencrypt-nginx-proxy-companion](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion),多个域名用英文逗号“,”隔开 LETSENCRYPT_EMAIL=xx@ojbk.com #你的邮箱
      1. 进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理网站原始数据:
        1. /srv/docekr/WordPress:/var/www/html #冒号前为主机路径(可自行修改),后为容器路径(不要改)
      1. 保存这个容器,点击服务器 → 安装。

letsencrypt-nginx-proxy-companion

  • 🐳
    • 一个现代网站没有 SSL/TLS 证书实在不像话,这个 Docker 可以自动帮你申请和更新 Let’s Encrypt 证书,非常方便。
      1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
      1. 镜像(Image)填写jrcs/letsencrypt-nginx-proxy-companion
      1. 选项(Options)中填写容器名,如 SSL
      1. 重启(Restart)选择 always,这个根据需要,一般选 always;
      1. 在其它(EXTRA)中加入这样一条:
        1. --volumes from mginx-proxy #继承前面 nginx-proxy 容器的路径,省的再输一遍,容器名别写错
      1. 进入挂载(Mounts),映射一个路径:
        1. /var/run/docker.sock:/var/run/docker.sock:ro #这条不要修改
      1. 保存这个容器,点击服务器 → 安装。
至此,你的网站应该可以安全访问了。
phpMyAdmin 有需要请自行安装,方法上面都涉及了。

0x03 除错

查看日志

学会看日志是除错最重要的步骤。
在状态页面点击服务器名称一栏
长按需要除错的容器名称一栏,查看日志(Logs)
notion image
别点歪了😂
notion image
不太好按,日志页面的滚动也有问题
最后,欢迎来 Telegram 交流:https://t.me/daiseax
Enjoy!

0x04 进阶操作(待续)

  • 进阶操作(待续)
    • ## 将自己的数据库恢复到新建数据库中
      ## 文件夹权限问题
      ## 上传限制
      其他问题参考 Hyperapp 文档
    • ServerCat 和 Hyperapp
      • notion image
 
💡
本文采用 CC BY-NC-SA 4.0 许可协议,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Dukewill 来源:blog.daisea.com