将 WordPress 站点移至 Docker,并最终移至服务器

Posted

技术标签:

【中文标题】将 WordPress 站点移至 Docker,并最终移至服务器【英文标题】:Moving a WordPress site to Docker, and eventually to a server 【发布时间】:2017-12-03 10:32:07 【问题描述】:

我在实习期间一直在 WordPress 网站上工作,我的上级要求我尝试将其容器化,以使将来的更新更方便。他们建议我使用 Docker。

现在该站点在我的本地计算机 (Mac) 上运行,最终我必须将其迁移到公司服务器以替换当前网站。我对此有几个问题。

Docker 是完成这项任务的正确工具吗? 容器化究竟有什么贡献? 我应该在将站点移至服务器之前还是之后将站点移至 Docker? 我看到很多指南都使用 nginx。我到底需要这个做什么? 我应该如何更新 URL? 我应该如何替换现有网站?

我们将不胜感激任何对有用资源的帮助或指导。提前谢谢!

【问题讨论】:

【参考方案1】:

1. Docker 是完成这项任务的正确工具吗?

是的。 CoreOs 团队还有另一个选项rkt。但它不如 Docker 流行

2. 容器化究竟有什么贡献?

容器化意味着,您正在打包运行应用程序所需的必要软件。您的最终工件将不再是 jar/war 文件,而是一个 Docker 映像。容器化解决的问题是“它在我的机器上工作(我不知道生产)”的经典问题。换句话说,它为您提供了不可变的基础架构(最好保留它,不要在 ssh 后更改容器中的内容)

3. 将站点迁移到服务器之前还是之后应该将站点迁移到 Docker?

之前...您应该开始使用 Docker 进行开发,这样对您来说会更容易。请记住,Docker 正在解决一个问题“它适用于我的机器”

4. 我看到很多指南使用 Nginx。我到底需要这个做什么?

如果您有一个仅涉及 html css 和 javascript 的静态站点,您可以使用 nginx 来托管您的站点。但是,如果您的网站中有一些动态内容,并且您需要服务器端技术(如 java nodejs、php、go 或 cgi .. 好吧,您知道了)。 Nginx 也可以用作前端代理。这是一个完全不同的主题

5. 我应该如何更新 URL?

我希望您的企业中有一个 DNS 系统,如果是这样,您可以要求他们将其重新指向您的新 IP(如果您计划将其部署在新服务器中)。或者只是购买一些停机时间,关闭旧应用程序并在同一台机器和相同端口号中启动新的闪亮 Dockerised 应用程序..

6. 我应该如何更换已有的网站?

这取决于您的网站,取决于您使用的技术类型。

是静态网站吗--可以在Docker容器中使用nginx 是 Java 吗?你可以使用 OpenJDK-Alpine (只是我的意见) docker image ... 等等..

【讨论】:

【参考方案2】:

更新网址 一个好的做法是在您的代码中定义一个baseURL,然后使用baseURL + "path" 来形成其他URL。 例如:

baseURL = "https://example.com/"
blogURL = baseURL + "blog"
document.getElementById("old-url").innerHTML = blogURL
// now if you need to change your domain to .org instead of .com, you can just change baseURL to your new domain name

baseURL = "https://new-example.org/"
blogURL = baseURL + "blog"
document.getElementById("new-url").innerHTML = blogURL
<html>
  <body>
  OLD BLOG URL is:
  <div id="old-url"></div>
  <br>
  NEW BLOG URL is:
  <div id="new-url"></div>
  </body>
</html>

替换现有网站

一般情况下,测试现有网站根文件夹内的文件夹会被创建。这样做是为了让您可以转到https://example.com 来查看旧站点。然后去https://example.com/new查看新站点。 所有测试完成后,新文件夹的内容转移到根文件夹,旧网站的内容一般转移到https://example.com/old路径。

【讨论】:

以上是关于将 WordPress 站点移至 Docker,并最终移至服务器的主要内容,如果未能解决你的问题,请参考以下文章

Docker wordpress 多站点 - 要公开哪些端口?

多个 WordPress 站点和一个使用 Docker 的共享数据库

如何将Python virtualenv移至其他系统(计算机)并使用站点软件包中的软件包

sh 用docker快速启动wordpress站点

将 Wordpress 网站移至 /blog 域

如何将 WordPress 网页移至其他托管服务器?