您需要一个、两个还是三个站点? 虽然您可以访问 WordPress.org 并拥有多个站点,但它非常有限 — 没有插件,除非您支付我认为可笑的金额和自定义域费用. 有点糟糕。

下一步是去网页host and Get a shared cpanel instance,非常好用,安装WordPress就可以了。 非常简单的东西。 您可以访问像 Hostgator 这样的网站,以 3.95 美元的价格获得一个可以使用自定义域名并安装完整版 WordPress 的网站。 这是以低廉的价格获得单个功能齐全的 WordPress 实例的最简单方法,但对于在入门级共享主机计划上运行多个站点来说并不理想。

我想托管多个 WordPress 网站并拥有运行其他服务的空间,所以我正朝着稍微复杂的方向前进。 我从 Contabo 获得了一个 VPS(虚拟专用服务器)- 每月 6.99 美元,您可以获得一个带有 4 个 vCPU、8GB RAM 和 50GB VPS 的 VPS,用于 NM Ve ssd . 每月只需 7 美元,太棒了! 我几乎可以托管任何数量的 wordpress 网站。 通过使用 docker 将我的 wordpress 网站容器化,如果其中一个成为妥协的牺牲品,它将与其他网站隔离,如果需要,我会与众不同版本可以运行。 我也可以独立重启它们,它们不会共享数据库。

击败共享主机!

比分享的多一点hosting and less wordpress.org 是更多,但它仍然易于管理。 我将通过 SSH 连接到 VPS,安装 docker 和 docker compose、NGINx 代理管理器、设置 DNS 和 WordPress 容器。 我使用 VPS,但您可以在本地或专用服务器上轻松执行相同操作。

首先,从某处购买一个VPS,它在哪里都无所谓。 有些主机比其他主机有更好的客户支持,有些主机的价格比其他主机好得多。

第二,获取域名。 域名注册商一毛钱一打,但话又说回来,有些比其他的好。 我喜欢 namecheap,因为他们的域名带有免费的 DNS 隐私,而像 godaddy 这样的地方需要额外收费。 个人喜好在这里。

购买vps后,你将获得SSH登录凭据以访问服务器。 接下来,如果您使用的是 Mac 或 Linux,您将打开一个终端,如果您使用的是 Windows,则打开一个 SSH 客户端。 你所要做的就是输入:

ssh username@127.0.0.1

ssh username@127.0.0.1

显然替换提供的用户名和IP地址,然后输入你设置的密码,或者他们也提供的密码。

我们的 Nginx 代理管理器和我们的 WordPress 网站都会托管在一个docker容器中,所以下一步就是安装docker。 我在我的 VPS 上使用 Ubuntu,所以确切的命令对你来说可能不同,但要点是一样的。

安装 Docker

首先,我们将更新系统。 apt-get update 查看系统中是否有包的更新,apt-get upgrade 会实际安装它们。

sudo apt-get update && sudo apt-get upgrade

现在我们可以安装 docker 的先决条件并添加存储库,因为它不在标准的 Ubuntu 存储库中。

sudo apt-get install ca-certificates curl gnupg lsb-release

下面的命令添加了 dockers GPG 密钥。 当我们从存储库下载时,GPG 密钥确保我们知道我们正在安装 docker 的签名官方版本。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |须藤 gpg - dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

然后我们添加 docker 存储库:

echo \"deb [arch=$(dpkg - print-architecture) signed-by =/usr/share/keyrings/docker-archive-keyring .gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) 稳定” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

最后一次运行 sudo apt-get update 以加载新的存储库,我们终于可以安装 docker 了。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

使用 sudo docker run hello-world 确保 docker 安装正确。

你应该得到如下所示的输出:

通过下拉 hello world 图像确保 docker 工作

安装 Nginx 代理管理器

Nginx 代理管理器是一个基于网络的工具,充当反向代理。 现在,什么是反向代理,我们为什么需要它?

我们的服务器有 1 个 IP 地址。 如果我们想在我们的服务器上托管多个网站,我们需要一种方法来为多个网站使用一个 IP。 反向代理让我们可以做到! 它接受到服务器的传入连接并将它们转发到正确的端口。 例如,假设我们的站点 A、B 和 C 都运行在公共 IP 为 162.159.153.4 的服务器上。 在内部,这 3 个网站在端口 80、81 和 82 上运行。

在 DNS 中,每个站点都指向相同的 IP,但我们能够单独访问所有 3 个站点。 如何? 反向代理接收传入请求,查看请求的域名,并将请求定向到正确的端口。 所以如果我们访问 B.com,反向代理就会知道将我们指向端口 81,等等。

我们将在docker容器中使用docker compose设置 Nginx。 我正在从 https://nginxproxymanager.com 中提取代码。

我们将创建一个文件夹“apps”来保存我们所有的 docker-compose 脚本,并在该文件夹中为 nginxproxymanager 创建一个文件夹。

mkdir appscd appsmkdir nginxproxymanagercd nginxproxymanager

并创建一个 docker-compose 文件

nano docker-compose.yml

< p>只需将其复制到文件中,我们无需更改端口或任何内容。

version: "3"services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # 这些端口格式为 : - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port你想公开# - '21:21' # FTP # 如果你取消注释部分中的任何内容,请取消注释下一行 # environment: # 如果你想更改容器中 SQLite DB 文件的位置,请取消注释 # DB_SQLITE_FILE: "/data/database.sqlite" # 如果您的主机上未启用 IPv6,请取消注释 # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt

使用ctrl + x保存运行docker - 组合 -d 启动容器。 转到网络浏览器并输入您的服务器地址,如下所示:127.0.0.0:81。

瞧!

使用默认凭据 admin@example.com 和密码“changeme”登录,它会提示您创建一个新的凭据。 我们将在安装 WordPress 后回到这个话题。

获取一个 wordpress 容器

将目录切换回应用程序,为您的站点文件夹创建一个文件,然后把它放在一张CD上。 制作另一个 docker compose 文件(确保它也是 docker-compose.yml)并将其粘贴到下面。

version: "3.9"services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always 环境:MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - wordpress_data:/var/www/html ports: - "8000:80" 重启:总是美国环境:WORDPRESS_DB_HOST: db WORDPERESS_ wordpress WORDPRESS_DB_PASSWORD:wordpress WORDPRESS_DB_NAME:wordpressvolumes:db_data:{}wordpress_data:{}

在此撰写文件中,端口号很重要。 它将服务器上的端口 8000 映射到 docker 容器中的端口 80。

如果你想创建另一个站点,请在新目录中重复上述步骤,粘贴上面相同的代码并将外部端口更改为其他端口,例如 8001。

运行 docker-compose up -d 启动容器,它会在你的服务器上访问ip和端口,如下:127.0.0.1:8000。

域名系统

转到您注册域的位置以设置指向的 A 记录你的服务器 IP 。 您将主机设置为“@”并将值设置为您的实例 IP 地址。 如果您计划将多个域连接到多个 WordPress 实例,它们将指向同一个 IP - 我们安装的代理管理器将负责路由流量启动到适当的容器。

最后一步

回到nginx proxy manager,登录进入hosts 添加你的域名,你的服务器的ip和我们之前设置的端口。 如果托管多个,您将为每个后续的 WordPress 实例执行相同的操作。

然后转到 SSL 选项卡并请求新的 SSL 证书。 我们完成了! 非常简单。

现在你可以去你的域了,域现在已连接到您刚刚 docker 化的 WordPress 站点!