OpenShift Online的客户和用户最受欢迎的应用之一是WordPress博客平台。客户已经发现,在OpenShift上运行的部门或团队的WordPress实例,他们可以轻而易举地获得价值。最近,我们宣布下一代OpenShift Online的普及性。新版本使用新的架构,同时利用事实上的标准,如容器和Kubernetes进行编排。这篇文章将描述我将现有的WordPress网站从OpenShift Online v2迁移到新版OpenShift Online使用Pro层的过程。
请注意,我将迁移的WordPress实例将在2013年部署,因此本文将作为升级到当前版本的博客平台的机会。
这是我将要迁移的旧WordPress实例的图像:
注意: 在开始使用此过程之前,您应该明白,这不是在OpenShift 2和OpenShift 3之间迁移博客站点的官方支持的方式。这只是我迁移我的个人博客平台的旅程。
如果您宁愿在行动中观看,而不是阅读,请查看我制作的YouTube视频:
步骤1:备份您现有的WordPress实例
有许多方法来备份您现有的WordPress实例,甚至可以通过执行数据库转储等方式使用命令行执行所有操作的选项。但是,我想专注于快速简便的迁移过程。因此,我决定使用一个称为“一体式WP迁移”的WordPress插件。为了安装此插件,我将通过将浏览器指向/wp-admin
网址登录到OpenShift Online v2上托管的现有博客站点如下图所示:
https://gshipley-onpaas.rhcloud.com/wp-admin/
一旦我通过WordPress认证,我选择插件,然后添加新的,然后搜索“一体式WP迁移”。
安装插件后,通过点击显示的链接激活它,如下图所示:
注意:在继续下一步之前,您可能希望在当前WordPress网站上禁用注释,因为导出时间和导入时间之间的任何注释都将丢失。
一旦插件被激活,从左侧的列中选择它,并选择将您的站点导出到一个文件:
根据您拥有的文章数量,多少评论等,此文件的大小可能相当大。请记住,当您开始下载,因为它可能需要几分钟,具体取决于您的互联网连接。
大!目前的WordPress网站已经导出。
步骤2:在OpenShift 3上创建项目并创建数据库
现在我们目前的博客站点被导出,我们需要在OpenShift Online 3上创建一个新的WordPress实例。我们首先要做的是创建一个项目,它将保存所有的组件,即Web应用程序和数据库,为WordPress平台。
验证OpenShift 3并选择创建一个新项目。 给您的项目一个名称,请记住,您正在使用的OpenShift 3集群中的项目名称必须是唯一的。
项目创建完成后,我们希望部署一个持久的MySQL数据库来保存我们网站所需的所有信息。选择 添加到项目,过滤“MySQL”并选择MySQL(Persistent):
点击选择后,填写以下字段:
- MySQL连接用户名
- MySQL连接密码
- MySQL root用户密码
- MySQL数据库名称
对于这个博客文章,我将使用“wordpress”,包括数据库名称:
您也可以修改此页面上的数据库文件大小限制,如果您认为您将使用超过1GB的默认值。
恭喜!您现在已经部署了一个持久的MySQL数据库。
步骤3:部署WordPress
在这一点上,我们的WordPress网站已经备份,并创建了一个新的数据库。现在我们需要部署WordPress。我决定从源代码部署WordPress,因为我想在容器中使用永久存储,以允许我在容器重新启动时保存状态。由于文件权限的工作方式,我需要分叉WordPress项目并修改一个配置文件。我将使用GitHub为此。
我想要做的第一件事是将GitHub上的WordPress项目分叉到我自己的GitHub帐户中。如果您没有GitHub帐户,现在是一个很好的时间注册一个。
在浏览器中输入以下URL:
https://github.com/WordPress/WordPress
然后点击右上角的“ 叉”按钮:
现在我们有WordPress分支,现在是部署平台的时候了。回到OpenShift Online 3,然后选择添加到项目:
搜索“PHP”并选择7.0,最新版本。
单击“ 选择”后,您将需要为应用程序提供一个名称,并提供您要使用的Git Repository。我在这个步骤中使用了“wordpress”的名字和Git Repository。
重要信息: 您还需要单击高级选项的链接以指定要安装的WordPress的版本。因为4.8是当前版本,所以我在Git参考部分提供了4.8。如果要安装旧版本,则可以在要部署的版本中输入。
最后,向下滚动到底部,然后单击创建。
步骤4:更改部署策略
默认情况下,当对应用程序进行更改时,OpenShift将使用滚动部署策略。在后续步骤中,我们将永久存储器附加到WordPress应用程序,因此我们需要切换到“ 重新构建”部署策略,以使用可用的持久存储器类型。
从左侧菜单中选择部署,然后选择wordpress。在“操作”菜单中,选择编辑。
在“部署策略”下,将“策略类型”从“滚动”改为“重新创建”。保持任何参数相同并保存配置。
步骤5:添加持久存储
现在WordPress已经安装,我们需要向容器添加持久存储,以便在应用程序启动时保持插件,主题等。我们通过从左侧的菜单中选择存储来实现此目的:
单击存储后,单击创建存储并提供名称和大小。对于我的网站,我将使用“wordpress存储”并提供5GB的存储空间:
提供名称和大小后,单击创建。在这一点上,我们有一个持久的存储分配,但是我们还没有将它分配给WordPress。为了做到这一点,从左侧菜单中单击应用程序,选择部署,然后单击wordpress。一旦您查看WordPress部署,请下拉右上角的“操作”菜单,然后选择添加存储:
在下一个屏幕上,选择wordpress存储卷,然后在“安装路径:”中输入以下内容:
/opt/app-root/src/wp-content
最后,单击添加将持久卷与您的WordPress容器相关联。
步骤6:配置WordPress
我们有一个MySQL数据库和一个WordPress平台部署,但我们需要配置WordPress与数据库通信。为此,请在项目概述页面中单击WordPress提供的URL:
这将打开WordPress平台,并运行您初始配置。点击我们走吧!查看您可以输入认证信息的页面。该页面中的一个项目是“数据库主机”。了解如何获取此信息非常重要,因为它肯定不是提供的默认localhost
信息。
转到项目概述页面,然后选择应用程序,然后选择服务。单击mysql服务并记下“Hostname”,如下所示:
返回到WordPress配置屏幕,并提供您在创建数据库容器时使用的数据库名称,用户名和密码。对于数据库主机,请使用我们在上一步中检索的主机名:
注意:对于OpenShift Online,我们可以使用服务名称“mysql”作为主机名。如果您在使用OpenShift Container Platform或OpenShift Origin时跨项目进行沟通,则通常只需使用完全限定版本。但是,最好总是使用全名。
如果您能够连接,您应该看到以下消息:
继续运行安装并创建管理员用户名和密码。请记住,在我们迁移我们的博客的未来步骤中,这将被覆盖。
步骤7:修改wp-config.php
项目部署和配置完成后,我们需要将wp-config.php文件复制到永久存储器中,编辑它以指定访问永久存储器的方法,并覆盖启动命令以使其使用此副本-config.php。
要完成此操作,请转到项目概述页面,然后单击WordPress部署下的蓝色圆圈。这是运行WordPress的pod的详细信息的快捷方式。
在下一个屏幕上,选择终端标签,如下图所示:
一旦终端已经开始将wp-config.php目录复制到wp-content目录中。
$ cp wp-config.php wp-content/wp-config.php
使用vi编辑wp-content / wp-config.php以添加以下行:
define('FS_METHOD', 'direct');
你可以添加这个
define('DB_COLLATE', '');
线。
保存更改。
接下来创建一个新文件wp-content / run并添加到它:
#!/bin/bash
cp /opt/app-root/src/wp-content/wp-config.php /opt/app-root/src/wp-config.php
exec /usr/libexec/s2i/run
保存更改并使此脚本可执行:运行:
chmod +x wp-content/run
因为我们为wp-content目录安装了一个持久的卷,我们还需要添加一些WordPress希望在那里的目录。没有此步骤,您将无法安装插件或添加主题。
在浏览器内部仍然使用终端时,请执行以下命令:
$ mkdir wp-content/plugins
$ mkdir wp-content/themes
这将设置持久存储。我们现在需要修改OpenShift中WordPress应用程序的部署配置,以便使用我们在容器启动时添加的运行脚本。
从左侧菜单中选择部署,然后选择wordpress。在“操作”菜单中,选择编辑YAML。向下滚动,直到找到containers
定义wordpress
容器配置的部分。将该项添加到该部分command
,其值为/opt/app-root/src/wp-content/run
。
保存更改,WordPress应用程序应自动重新部署与我们的更改。
步骤8:迁移旧博客网站
呃,我们在家里。我们需要做的最后一件事是在新博客网站上安装“一体式WP迁移”插件,并导入我们的内容。在WordPress管理员信息板上,单击插件,然后单击添加新的,然后搜索“一体式WP迁移”。
安装完插件后,点击激活按钮:
点击屏幕左侧的All-in-One WP Migration菜单项,然后导入。
选择从文件导入,然后使用您以前的WordPress安装导出。您应该看到如下图所示的状态指示器:
一旦分析了迁移,您将看到一个窗口弹出,询问是否可以覆盖此新安装中的所有内容。因为这是一个全新的WordPress安装,请选择继续。
继续迁移,并记住遵循有关永久链接的说明。最后,如果您从旧版本升级,就像我一样,系统会询问您是否要升级数据库。选择是,然后记录下来,请记住,现在您需要使用以前的WordPress安装中的用户名/密码,因为我们刚刚迁移了所有内容。
步骤9:在荣耀中。。
呃,我们终于做到了。我已经部署到OpenShift Online 2的旧WordPress站点现在使用容器和OpenShift Online 3的所有热点进行部署。这是一个快速屏幕截图,显示了最终网站在执行以下步骤之后的样子:
任务完成!
步骤10:添加公共主机名
在这篇文章中,我向您介绍了将我的博客网站迁移到OpenShift 3所采取的步骤。唯一缺少的是将自定义主机名分配给应用程序。这可以通过创建到WordPress服务的新路由来实现。
从项目概述仪表板,单击应用程序,然后单击服务,然后选择WordPress服务。在这个页面上点击操作在右上角最后选择创建路线。
在此页面上,我将输入我的主机名的详细信息,同时确保我可以访问我的注册商的DNS记录,进行必要的更改,将其指向OpenShift!
概要
这是一个有趣的旅程,将现有的WordPress站点迁移到在OpenShift 3 Pro Tier上使用容器。一路上,我们能够为我们的WordPress插件和内容创建持久性数据库,持久性卷,并能够将所有内容迁移到新平台。