将 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 的共享数据库