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

教程

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

0x01 准备

软硬件

自行准备并搜索相关教程

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

Docker

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

可选

其实看官方文档就足够了

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/1.png

dockerhub 搜索所需 docker

0x02 开始安装

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

MariaDB

添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器。

镜像(Image)填写 mariadb

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/2.png

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/3.png

选项(Options)中填写容器名(Container Name),如mariadb,记住这个名字,后面链接数据库会用到。

重启(Restart)选择 always,这个根据需要,一般选 always。

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/4.png

进入环境变量(Enviroment),这里添加两个环境变量:

1
2
3
MYSQL_ROOT_PASSWORD=12345678 #数据库管理员密码,默认账户为 root
MYSQL_DATABASE=database #创建容器时新建一个名为 database 的数据库,后面我们可以直接使用这个数据库
#其它环境变量请查看官方文档

进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理数据库:

1
/srv/docekr/mariadb:/var/lib/mysql #冒号前为主机路径(可自行修改),后为容器路径(不要改)

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/5.png

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/6.png

保存这个容器,点击服务器一栏 → 安装。

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/7.png

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/8.png

长按容器标签栏,可编辑或删除容器

nginx-proxy

  • 🐳

    1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
    2. 镜像(Image)填写jwilder/nginx-proxy
    3. 选项(Options)中填写容器名,如nginx-proxy
    4. 重启(Restart)选择 always,这个根据需要,一般选 always;
    5. 进入端口(Ports),添加两个端口映射:80:80443:443
    6. 进入挂载(Mounts),映射路径:

      1
      2
      3
      4
      /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 #这条不要修改
    7. 保存这个容器,点击服务器 → 安装。

WordPress

  • 🐳

    1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
    2. 镜像(Image)填写 wordpress
    3. 选项(Options)中填写容器名,如 wordpress
    4. 重启(Restart)选择 always,这个根据需要,一般选 always;
    5. 在其它(EXTRA)中加入这样一条:

      1
      --link mariadb:db #这样就让 WordPress 和之前建立的数据库建立了连接
    6. 进入环境变量(Enviroment),这里我们添加七个环境变量:

      1
      2
      3
      4
      5
      6
      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),多个域名用英文逗号“,”隔开
      [email protected] #你的邮箱
    7. 进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理网站原始数据:

      1
      /srv/docekr/WordPress:/var/www/html #冒号前为主机路径(可自行修改),后为容器路径(不要改)
    8. 保存这个容器,点击服务器 → 安装。

letsencrypt-nginx-proxy-companion

  • 🐳

    一个现代网站没有 SSL/TLS 证书实在不像话,这个 Docker 可以自动帮你申请和更新 Let’s Encrypt 证书,非常方便。

    1. 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
    2. 镜像(Image)填写jrcs/letsencrypt-nginx-proxy-companion
    3. 选项(Options)中填写容器名,如 SSL
    4. 重启(Restart)选择 always,这个根据需要,一般选 always;
    5. 在其它(EXTRA)中加入这样一条:

      1
      --volumes from mginx-proxy #继承前面 nginx-proxy 容器的路径,省的再输一遍,容器名别写错
    6. 进入挂载(Mounts),映射一个路径:

      1
      /var/run/docker.sock:/var/run/docker.sock:ro #这条不要修改
    7. 保存这个容器,点击服务器 → 安装。

至此,你的网站应该可以安全访问了。

phpMyAdmin 有需要请自行安装,方法上面都涉及了。

0x03 除错

查看日志

学会看日志是除错最重要的步骤。

在状态页面点击服务器名称一栏

长按需要除错的容器名称一栏,查看日志(Logs)

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/9.png

别点歪了😂

https://cdn.jsdelivr.net/npm/dukewill@0.0.9/images/10.png

不太好按,日志页面的滚动也有问题

最后,欢迎来 Telegram 交流:https://t.me/daiseax

Enjoy!

0x04 进阶操作(待续)

  • 进阶操作(待续)

    将自己的数据库恢复到新建数据库中

    文件夹权限问题

    上传限制

    其他问题参考 Hyperapp 文档

    • ServerCat 和 Hyperapp

      https://cdn.jsdelivr.net/npm/dukewill@0.0.13/images/11.png

使用 ServerCat 和 Docker 快速搭建 WordPress 网站
本文作者:
Dukewill
发布于
2020-12-11
许可协议
转载或引用本文时请遵守许可协议,注明出处,不得用于商业用途!

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。