复制WordPress似乎从来都不是一件容易的事
我经常喜欢基于现有网站作为模板启动一个新的WordPress网站。主题、插件和设置的配置一开始就非常有用,这与您必须从头开始重复所有内容的全新安装不同。
在构建用于在DigitalOcean转售的应用程序映像中,我详细介绍了可安装、预配置和预优化的WordPressDroplet的构建过程。本质上,它是一个数字海洋图像,可以在几分钟内启动一个完全加载的WordPress网站。但是,更常见的是,我想将WordPress网站添加到我自己的现有服务器之一。
有很多方法可以做到这一点,但我经常发现它们需要特定而详细的方法,我似乎每次都必须重新学习。我决定是时候编写一个Linuxshell脚本了,它可以在几分钟内为我完成所有工作。
在本教程中,我将引导您完成我的研究和生成的WordPress克隆脚本。我希望你喜欢它——当我完成它时,我认为它效果很好。
在我们开始之前,请记住,我确实尝试参与下面的讨论。如果您有问题或主题建议,请在下面发表评论或通过Twitter@reifman与我联系。您也可以直接给我发电子邮件。我希望你们中的许多人会对这个脚本有更好的想法和改进。我很高兴收到您的来信。
WordPress迁移的其他方法
通常,您可以通过将现有网站迁移到新服务器(本质上是复制它)并在副本上进行构建,同时保持源网站完好无损来启动新网站。有多种方法可以实现这一点。
在使用WordPress将WordPress迁移到新服务器发布中,我写了有关使用Duplicator插件来执行此操作的文章,但我发现该过程很麻烦。每次我需要移动站点时重新熟悉复制器也很困难。
最近,我在使用CodeGuardforEnvatoTuts+备份和恢复您的WordPress网站中写了有关此内容的文章。这项服务使这个过程变得更加容易。很快,我们将发布如何简化管理多个WordPress网站,其中描述了使用ManageWP的许多强大优势。它具有克隆功能,但需要FTP—出于安全原因,我避免在我的服务器上运行FTP。
还有RachelMcCollin的EnvatoTuts+系列两部分:移动WordPress:简介和移动WordPress:使用插件移动您的网站。WPBeginner上有一个使用BackupBuddy的教程。最后,WPClone不需要FTP,但需要干净的WordPress安装才能构建。
您可以从所有这些教程和服务中学到很多东西,但我想看看是否可以创建一个命令行脚本,每次都能更快、更轻松地克隆WordPress网站。
规划脚本
为了编写本教程,我很大程度上依赖于其他人早期的作品来快速了解bash脚本和WordPress网站操作的知识。我从来不认为自己是专业的Linux系统管理员。最终,我决定在BrianGallagher的WordPressBash安装脚本之上构建我的克隆脚本。
注意:这些是基于Debian的安装脚本;其他版本的Linux(例如RedHat和CentOS)对于Apache和不同的实用程序有不同的路径。
这是加拉格尔对其基本脚本的描述:
下载最新的WP版本,使用用户提供的数据库名称、用户名和密码更新wp-config,创建并CHMOD的上传目录,将所有文件复制到运行脚本的根目录中,然后删除自身!
这里有很多组织良好的脚本,但我想制作一些可以克隆活动站点的东西。让我们回顾一下典型WordPress配置的架构。
WordPress网站的初始组件
典型的WordPress安装有四个用于克隆的主要组件:
- 网站的目录树
- 数据库
- 网络服务器配置,例如Apache配置文件
- 域映射
我们还需要信息、访问权限和安全设置:
- 服务器管理帐户和密码
- MySql服务器用户名和密码
- 网站的源目录
- 网站的网络服务器配置文件
- 数据库名称、用户名和密码
以下是我们需要为克隆站点指定的内容:
- 克隆网站的目标目录
- 克隆的数据库名称、用户名和密码
- 克隆网站的网络服务器配置文件
脚本需要做什么
- 通过配置变量或用户输入获取所有设置。
- 复制网站目录并将其恢复到目标目录。
- 导出源数据库并将其导入目标数据库。
- 确保这些目录具有适当的权限。
- 复制服务器配置文件并更新域和目录设置。
- 重新加载网络服务器。
我们必须手动更新新目标域的DNS。我建议您在开始之前创建DNS记录,以便在克隆您的网站后它们可以准备就绪。没有什么比克隆站点而无法测试域名更好的了,因为您正在等待DNS。
克隆脚本的实现方法
现在,我们准备好逐步了解脚本的架构是如何工作的。再次,我首先利用了Gallagher的WordPress安装脚本,并且您需要顶部的初始bash行: