我在一个盒子上进行开发,然后在另一个盒子上进行生产。现在,我只是转储数据库,然后查找URL更改的替换项。然后复制文件并导入新的SQL。

还有更好的方法吗?

评论

对于新手的要求。 1年后,我仍在使用@MikeSchinkel插件。我将他安装了几次安装后没有问题,他得到了0.7。 mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip

这是我发布的无插件脚本,极大地帮助了我的过程。 philipdowner.com/2012/01/…

wp.​​tutsplus.com/tutorials/…

如今,有一个名为Duplicator的插件:wordpress.org/extend/plugins/duplicator从字面上看,这是一个分为三个步骤的过程,其工作原理很迷人。已经多次使用它来将网站从测试环境部署到实时环境。

#1 楼

@ Insanity5902:自从我开始使用WordPress的第一天起,将WordPress网站从一个盒子部署到另一个盒子就成了PITA。 (实话实说,在我开始使用WordPress之前,这是Drupal的PITA了2年,所以问题肯定不仅仅在于WordPress。)

我每次都需要搬一个网站,我不得不花费很多重复的精力,这使我无法按我希望的那样频繁地进行部署和测试。因此,大约4到6个月前,我开始致力于解决Webhost迁移问题的插件,并在WP Tavern论坛上提到了我的想法。

到今天,我已经做好了很多工作,我方便地将其称为“ WP Migrate Webhosts”。鉴于您的问题,即使该插件仍处于测试阶段(甚至可能是alpha测试版),我也认为我已经准备好让人们开始喜欢它。

设想的用例是:


首先,开发人员处理通过FTP上传所有已更改的主题和插件文件的情况,
然后将整个开发MySQL数据库全部上传到测试服务器,最后

然后运行该插件,将所有引用从先前的域迁移到新的域。 (我的插件不会尝试解决新数据库字段或表与实时数据的合并;这是一个更大的问题,我不确定如何解决。)

您可以下载该插件从我的网站解压缩到您的插件目录(如果您不知道该怎么做,那么此插件不适合您,因为它需要知道他们在做什么的人才能使用。)我将使该插件保持在线状态,直到我将其发布到WordPress.org,之后您应该在那寻找它。

要使用它,您可以在wp-config.php中采用一种与通常不同的方法,方法是注释掉四(4)个定义DB_NAMEDB_USERDB_PASSWORDDB_HOST的内容,而不是为虚拟主机注册默认值,然后为每个虚拟主机注册信息。这是wp-config.php的该部分的样子(请注意,第一部分注释掉了不需要的代码,还请注意,我在本地计算机上使用不可路由的.dev顶级域设置了hosts文件,以进行日常开发在Mac上,VirtualHostX变得轻而易举):

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');


希望(主要是)自我解释。我试图使代码尽可能整洁,但不幸的是,它要求在webhost注册代码块前后添加这两条神秘的require_once()行,因为在调用wp-config.php之前我无法“钩住” WordPress。

更新了wp-config.php之后,您只需使用URL快捷方式wp-migrate-webhosts即可进入管理屏幕,如下所示:


http://example.com/wp- migrate-webhosts


上面的内容将带您进入如下所示的管理屏幕,该屏幕具有相当多的描述文字,并允许您通过单个迁移到其他任何webhost域选择要从中迁移的域后单击(注意:此示例显示了从测试/阶段/实时服务器向下迁移到本地开发,但请放心,它可以迁移到恰好位于的任何域。这也意味着该插件非常有用以获取现有的实时站点并快速使本地开发环境正常工作!):<​​br />


如果不清楚,在此上下文中的“迁移”意味着将当前数据库中的所有引用更新为适合当前定义的Web主机(并且“当前”被嗅探)通过检查$_SERVER['SERVER_NAME']。)

该插件最酷的地方是它实现了一些基本的迁移,但是任何人都可以钩住它并执行自己的迁移。例如,如果您添加一个库插件,该插件在数据库中存储了图像的完整路径,则可以挂接migrate_webhosts操作,该操作将作为元数据数组分别从“来自”网络主机和“至”网络主机传递。允许使用SQL或任何适用的WordPress API函数在数据库中执行您需要执行的任何操作来进行迁移。是的,我们每个人都可以在没有插件的情况下执行此操作,但是如果没有插件,我发现编写所有所需的代码比付出的努力多。使用该插件,可以更容易地编写这些微小的钩子并使用它。任何想要的人都可以通过我的gmail帐户(我的别名为“ mikeschinkel”)给我发送电子邮件。

此外,该插件还被设计为除了接受用户识别的虚拟主机元数据外,还可以识别databaseuserpasswordhostdomain等。一个完美的示例可能是googlemaps_apikey,您可以在其中为Google Map的插件需要正确操作的每个域存储不同的API密钥(其中使用过Google Maps插件的人中没有将应用程序部署到实时服务器并忘记将代码更改为正确的API密钥吗?快点,老实说... :)有了这个插件,您的register_webhost()数组中的googlemaps_apikey元素和一个小的自定义migrate_webhosts钩住了您可以有效消除这种担忧!

就是这样。我正在WordPress Answer's Exchange上启动此插件,因为
@ Insanity5902的问题触发了它。让我知道是否有帮助,如果合适的话,请在这里,否则请通过电子邮件。

附言如果您决定使用此功能,请记住它是alpha / beta,这意味着它将更改,因此如果您现在想使用它,请准备进行一些小手术,然后在被许多人殴打后使用已发布的版本。

PPS我的目标是什么?我很高兴看到它迁移到WordPress核心,以便每个人都可以使用它。但是在此之前甚至甚至可以考虑,很多人必须对使用它感兴趣,以确保它实际上解决了可能会造成的更多问题。因此,如果您喜欢这个主意,那么请务必使用它,并帮助我获得发展动力,最终将其有希望地纳入WordPress核心。

评论


好的解决方案尽管我有两个问题,但还是有几个问题:1)您是否仍需要定义WP_SITEURL才能进入管理区域? 2)该工具仅针对管理员用户显示吗? (不确定是否为非管理员显示“工具”部分)

–瑞安·吉本斯(Ryan Gibbons)
2010年8月12日15:14



@ Insanity5902,您好:1)无需设置WP_SITEURL,插件即可为您完成。您实际上是在为网络主机“注册”一个“域”和“ sitepath”时进行设置的。在正常的WordPress操作中,需要在代码或数据库中设置WP_SITEURL,以确保没有人伪造URL并进行恶意操作,因为$ _SERVER ['SERVER_NAME']中的值意外。 WP Migrate Websites插件基于$ _SERVER ['SERVER_NAME']间接设置WP_SITEURL,但是只有当当前域与您在wp-config.php文件中定义的域之一匹配时,它才会这样做。

– MikeSchinkel
10年8月12日在16:32

2.)我提到的URL快捷方式实际上将重定向到管理控制台,因此仅适用于登录管理员的人员。我还没有针对仅内置管理员的特定检查。我从未向插件添加任何功能,但需要全面研究未来几周的工作方式,以便在下个月进行工作。但是,该插件不是破坏性的。它只能迁移到当前域,并且该过程是可重复的,因此即使非管理员进入该域也不会对其造成任何损害,至少我无法想象。

– MikeSchinkel
10年8月12日在16:32

/ wp-migrate-webhosts产生404,/ wp-admin产生“建立数据库连接时出错”

–史蒂夫
2012年10月11日,下午1:37

那么,此插件的状态如何?看起来很吸引人,但是我想要一些成熟且经过严格审查的东西。这篇文章是我能找到的唯一信息。

–凯文C.
2012年11月1日18:27

#2 楼

如果可能,我在WP_HOME中设置WP_SITEURLwp-config.php。这与数据库转储和导入相结合,是我所熟悉的所有解决方案中最简单的。

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

评论


什么时候不能设置这些?这听起来比更改数据库中的内容简单一些。

– jfklein
2011-10-20 14:10

@jfklein我几乎一直在使用WordPress网络,该网络与这些常量不兼容。

– Annika Backstrom
2011-10-20 17:44

做同样的事情。遗憾的是,并非所有主题都对此表示欢迎。即ThemeID中的“ Repsonsive Theme”。在转储/所有表中搜索“ localhost”(或任何您选择的本地名称),尤其是wp_options并进行搜索和替换通常是不可避免的。

–弗兰克·诺克(Frank Nocke)
13年5月26日在8:42

@FranKee我已经创建了一个插件wordpress.org/plugins/pitta-migration,该插件使用常量来更新wp_options表,该表应涵盖大多数主题和插件。

–icc97
15年8月21日在10:39

@ icc97:可爱。会看的。 PS:好的标题图片,描绘了情况。

–弗兰克·诺克(Frank Nocke)
15年8月21日在12:05

#3 楼

我最喜欢的黑客在您的/etc/hosts上添加一个设置,以使生产域指向您的开发箱,就在您的计算机上。要部署到生产环境,您需要同步所有文件并推送数据库。

该策略的风险很明显;您可能会将开发环境与生产环境混淆。

虽然仍然很容易。

评论


是!我很高兴我不是唯一想到这一点的人! dev和prod之间的任何差异都是不好的。完全消除这种差异远比尝试解决该差异要好得多。而且此设置完全不需要任何工作。如果需要,甚至可以在带有修改主机文件的虚拟机上进行测试。

–亚历山大·伯德(Alexander Bird)
2011年11月21日在19:19

我非常喜欢这种方法,但是如何处理数据库推/拉?

–乔尔·佩尔顿(Joel Peltonen)
15年4月26日在20:41

至于将开发人员与产品混淆的风险,我使用了一个Chrome插件来显示网页的IP地址。 127.0.0.1时,您将知道自己在本地

–kosinix
16年5月12日,0:12

#4 楼

几个月前迁移到WP时,我想要类似的东西,所以我写了一个非常简单的shell脚本,该脚本在ssh上使用rsync和mysqldump:

http://snarfed.org/sync_wordpress

它不是复杂的或基于Web的,但我对此感到满意。

#5 楼

WP Engine是一项提供“一键式登台”的新服务:


WPEngine具有一项称为“登台”的独有功能。它的工作原理是:在对博客进行可怕的更改之前,请单击“快照”按钮。我们会完整复制您的博客,并将其设置在单独的安全区域中。您可以随心所欲玩;什么都没有。只有当您准备好将其投入使用时,您才可以访问您的主站点。


看起来像是一种非常简单的方法,可以快速地从开发过渡到生产,尤其是对于已经存在的站点。

评论


确实,这是一个非常不错的选择,对许多人来说将是很棒的选择!当然,这不适用于嵌入式URL,也对本地开发人员没有帮助,因此他们可以将IDE与调试器一起使用。现在,如果WPEngine也可以创建一个可以合并本地部署的交互,那么它确实会是某种东西(Technosailor,您在听吗?)

– MikeSchinkel
2010年8月12日下午16:35

同意,那将是一个奇妙的补充。

–特拉维斯·诺斯库特(Travis Northcutt)
2010年8月20日,11:55

快照功能仅从生产复制到暂存,而不是相反。这对于测试更改非常有用,但对于部署到生产中则无济于事。

–山姆
13年5月2日在20:44

@sam实际上,他们最近才开始推出从暂存到生产的复制功能。 wpengine.com/2013/04/user-portal-v2-and-staging-to-production

–特拉维斯·诺斯库特(Travis Northcutt)
13年5月2日在20:56

#6 楼

Duplicator插件:
这是我一直在努力的插件。它目前处于测试阶段,但可以完成大多数网站的工作。现在,它是针对较小的WordPress安装的。
http://wordpress.org/extend/plugins/duplicator/

资源:
可以找到该插件的其他资源此处:
http://lifeinthegrid.com/duplicator/

社区:
请让我们知道您的成功或遇到的任何问题!为了更轻松地管理各种线程,请将问题发布到WordPress.org插件论坛。请不要将插件中的任何日志记录数据发布到在线论坛中。日志数据可以提交到我们的支持站点。

#7 楼

您可能会看看iThemes的一款名为BackUpBuddy的产品。我只用了两次,每次都挂了一两个钩,但总体来说看起来很有希望。

#8 楼

我亲自在Github上的项目Autopress解决了这个问题。我还没有一个完美的解决方案,但是我已经接近了,特别是wpengine的wpstage插件。

评论


刚刚签出您的脚本。真好据我了解,它会在服务器上安装新的WP。这里的问题是如何从开发过渡到生产。能帮上忙吗?

–严格
2010年8月11日23:18

是这个吗? github.com/vluther/Autopress我建议在您的答案中创建链接,以便人们可以单击右键!

– artlung
2010年8月12日,0:42



@Mike Lee:是的,您可以投票。看,我赞成artlung的评论。在评论的左侧悬停时查找向上箭头。

– MikeSchinkel
2010年8月12日4:06



我正在研究一种将所有内容保持在版本控制中的方法,然后将其从开发推进到生产。对于一些站点,我已经能够做到这一点而没有任何问题,但是仍然有一些我需要解决的调整。

–路德·维德
2010年8月14日13:51

不知道是否这样,但是有一个WP Engine插件,用于在主机之间进行站点迁移。它称为快照(直接链接)。

– joelhaus
2011年3月13日在20:23



#9 楼

这看起来很有希望。我们正在处理一些脚本,以处理某些数据的迁移,例如wp-options,更改db中的路径,通过媒体进行复制。

我遇到的问题是实时站点继续在另一个正在发展的过程中成长。我们工作的一个站点每天有20条帖子,每天有3000条评论。太多数据无法通过phpmyadmin或通过命令行进行移动。同样,由于某种原因,移动数据总是会导致UTF问题。

此外,现在看来菜单选项存储在数据库中,我还要处理更多的问题。

我将所有代码都检入SVN,并通过FTP从服务器(Beanstalk)部署了代码。但是,这不会为我做出更改数据库的操作,也不会激活新的插件。

我现在的计划是在开发过程中创建清单文件,以便对实时站点进行所有更改。

例如,该文件将具有人类可读的行

,其中将包括用于激活的插件,用于移动的wp选项,用于移动的图像,用于移动的页面。
然后,我的插件将检测清单文件,并对登台站点进行所有更改。

一旦我测试了一下并确定我拥有了所有东西,就可以确定它可以在生产环境中运行。

这个插件仍然只是一个主意,但是我为此写了一些代码。

此外,如果您只想更改数据库中的URL,则可以使用下面的SQL。

只需将$old$替换为旧域名,将$new$替换为新域名

 update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
 


评论


请注意,我的sql调用可能会破坏您的序列化数据。 s:14:blogs.prod.com的长度编码为14。运行代码后,我们现在的s:14:dev.prod.com已损坏。应该在s:12:dev.prod.com上谨慎使用。

–安德鲁(Andrew)
2010年8月25日,0:04

#10 楼

截至2017年,这是我发现的处理WordPress数据库从开发到生产的两种最佳方法。

WP迁移DB Pro / WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

这些WordPress插件可让您在WordPress安装之间推送,拉取和同步数据库表。由于许多原因,它比查找/替换要好得多,原因如下:


将数据库导出为MySQL数据转储(类似于phpMyAdmin)
进行查找并替换URL和文件路径
处理序列化数据
使您可以将其作为SQL文件保存到计算机中。

我很喜欢自己做的工作,因此,我建议您支持Brad Touesnard先生,并购买真实物品的许可证副本。 WP Sync DB是复制品,因此始终落后于支持。使用此插件,过程非常简单:


在本地主机和生产环境上安装/激活插件
配置从本地主机/开发服务器到生产服务器的推送传输< br填写要传输的表的规则,并定义要执行的查找和替换规则
就这样!

InterconnectIT的WordPress数据库数据库搜索和替换

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

此免费工具不是插件,而是安装在WordPress的根目录中生产安装。这不像WP Migrate DB Pro那样好,因为它需要一些手动步骤,但是仍然是一个始终有效的好选择。使用这种方法时,过程如下所示:


备份本地数据库,这是绝对必要的,因为我们将很快重新导入它。
将脚本添加到安装根目录中的文件夹
在数据库上运行查找并替换
导出数据库并将其保存在生产环境中
重新导入第1步中的备份以还原本地主机
连接到生产数据库并进行备份(在执行这些操作之前一如既往)
导入导出,在运行find /之后替换步骤4中的例程

您可以使用更快的方法,但是这会导致生产站点停机,我认为这是不可接受的。这就是为什么我们称其为生产,对吗?

#11 楼

两个具有相似目标的Google Summer of Code项目:



自动迁移(GSoC 2010)

WordPress Move(建议)(GSoC 2011) )


评论


看起来这两个项目都没有启动吗?

–icc97
14-10-21在14:02

#12 楼

我使用subversion的export命令安装WordPress文件(http://core.svn.wordpress.org/tags//)以及存储库中的所有插件(http://plugins.svn.wordpress.org//tags) //),然后只需压缩主题和自定义插件并正常安装即可。一旦所有这些都启动并且没有内容,我将导出测试数据库,并搜索/替换URL和文件路径(为媒体存储)并导入到空数据库中,然后只需在wp-config中切换数据库信息.php。通常需要我大约10-20分钟。

#13 楼

通常我登录到phpMyadmin上载数据库,然后将wp_options> siteurl和wp_options> home的内容编辑到期望的域。如果您需要更新帖子和页面内容中的URL,则可以在上载之前搜索/替换.SQL文件上的URL和媒体/上载路径。这是一项快速的工作。

#14 楼

尽管这里不乏好的解决方案,但本着共享的精神,我认为我应该将bash部署脚本添加到堆中:https://github.com/jplew/SyncDB


SyncDB是bash部署脚本,旨在使繁琐的工作不再同步Wordpress网站的本地和远程版本。它允许在本地环境(例如MAMP)中工作的开发人员使用单个终端命令快速“推”或“拉”更改到生产服务器或从生产服务器中“拉”出更改。


此脚本与Mark Jaquith的WP-Skeleton一起很好地工作,并通过两个简单的步骤利用mysqldumpgitrsync来同步整个站点(数据库,代码和媒体):

./syncdb
git push hub master


#15 楼

我一直在使用http://wordpress.org/plugins/wp-clone-by-wp-academy/。效果很好!

只需3个步骤:


在两个站点上安装插件。
使用该插件在旧站点上生成备份。
获取它提供的备份URL,然后将其插入新站点上的插件页面,点击开始,您的迁移将在几秒钟内完成!

它会调整所有URL自动-包括序列化字符串替换-这样就不会丢失小部件配置等风险。

我唯一遇到的问题是一些数据库较大的网站(〜300MB),这导致PHP脚本执行超时在导入网站备份期间。

#16 楼

因为我在IIS中运行站点(我也运行asp.net,所以我需要Windows),所以我使用Msft中的WebPI安装新实例,然后复制模板并使用导入/导出来传输数据。 >
并不完美,但整个过程不到一个小时。

很显然,拥有一键式解决方案会很好,但这是我发现最简单的方法。

#17 楼

另一个付费解决方案:Xtreme One主题框架发布了带有Xtreme Backup的1.2版,该框架允许您“将Childthemes,Layouts或Widget的设置及其所有设置/内容作为XML文件导出或导入。”

#18 楼

一位同事发现了这个。有趣的概念,尽管它在跨服务器上不起作用,但看起来像。我仍在探索它,但看起来它可能适合于暂存实例

http://code.google.com/p/deploymint/

评论


四个月前,我无法使该插件正常工作...而且在code.google中仍为0.1版本

–brasofilo
2012年5月4日14:46

#19 楼

当您问这个问题时,可能还没有解决这个问题,但是我已经使用了一个名为Blogvault的服务了几个月,它已经做到了这一点。我可能已经完成了50多次迁移(跨域,子域和Web主机),这并非一帆风顺,也完全不需要时间。

这是一项付费服务​​(每个域/月),但不是很多。

#20 楼

RAMP是Crowd Favorite提供的新的内容部署插件,看起来非常漂亮。不过,它的价格是250美元,所以我还没有尝试过。不过,可能只需要为自己节省时间而付出代价,所以我正在考虑。

与其他大多数方法相比,它的最大好处是它可以智能地合并帖子。 ,注释等。这不仅是导入mysqldump,更像是数据库的源代码控制。例如,在部署帖子时,如果产品中尚不存在该标签,则还将部署该帖子的标签。

评论


RAMP用于内容部署,而不是代码部署,但是我同意,它看起来很棒。他们现在有一个RAMP设置演示,因此您可以尝试这些功能。

–艾米尔·托马斯(Emyr Thomas)
2012年11月19日14:17

问题是关于内容部署,而不是代码部署,我从说“ RAMP是一个新的内容部署插件...”开始回答。

–伊恩·邓恩
2012年11月19日下午16:33

#21 楼

让我放弃我的最爱之一:-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{


...然后您从那里开始。 DB_NAME,DB_USER ... table_prefix。我个人在本地打开ALTERNATE_WP_CRON(以避免一些烦人的警告),在两者(如果您不是开发人员)或仅直播(如果是)上都打开WP_DEBUG,那么另一个ini_set('display_errors', '0');也可以进行直播,最后蚂蚁,如上所述:WP_HOME和WP_SITEURL分别到本地/实际URL。

经典WordPress上面几乎没有任何内容,“那就停止编辑!”行...

192.168。部分允许您在本地网络中进行一些本地测试(例如,通过平板电脑或手机进行测试)

$ GLOBALS ['is_local']也可以在主题开发中派上用场,这需要额外的费用调试输出等...

评论


您可以使用WordPress Skeleton wp-config.php来设置WP_LOCAL_DEV常量,以实现类似的目的

–icc97
15年8月21日在10:45

#22 楼

我已经使用了backupbuddy插件已有一段时间了。它使您可以备份数据库和所有文件,以zip格式下载或通过FTP直接发送到另一台服务器。它还会为您查找并替换URL。我通常大约需要5分钟才能完成整个过程。而且由于所有文件都已压缩,因此上载/下载过程要快得多。不,我不为他们工作,但是这个插件确实使整个过程变得更加容易。

#23 楼

另一个处理站点服务器迁移的有用工具是WordPress CLI,本文对它可以做什么进行了很好的概述,但是“搜索和替换”部分特别适用于查找所有对旧/ dev站点url的引用。 :

使用WP-CLI进行高级WordPress管理

#24 楼

这是有史以来最简单的方法:
https://themes.artbees.net/docs/website-migration/
只需单击两次即可。一出口,一进口。

使用多合一WP迁移插件是可能的。上面的链接显示了如何使用它。

#25 楼

如果您尝试实现连续同步,建议您将rsync与自定义cron作业一起使用以重写任何url或特定于站点的数据。

#26 楼

在一段时间后,我创建了自己的小插件-Pitta Migration。原因是:


在这里尝试过的所有想法中-最简单的是WP_HOMEWP_SITEURL选项
然后我用它们来设置两个匹配的wp_options URL-涵盖了何时插件/主题忽略这些
这使我对数据库中正在更改的内容有100%的信心
这也可以跨平台使用(所有这些bash脚本在Windows上都不能很好地播放)
很容易理解插件在做什么。
除了两个常量外,没有任何配置-将mysqldump和mysql导入本地数据库,插件会看到常量和表不同,并更新它们以匹配
/>无需文本搜索和替换
没有机会破坏数据库-我使用WordPress数据库对象进行两次更新,仅此而已
它与WordPress Skeleton之类的东西配合得很好,您可以在源代码中拥有所有内容控制并设置本地配置
我将其放在WordPress插件目录和Github中,以便s是免费的,完全开源的,易于您分叉并且易于安装
一旦安装,您就可以忘记它,它应该“可以正常工作”-给您一些提示,指出数据库已被修改
它可以与任何备份/ FTP /还原过程一起使用


#27 楼

我认为,最简单的方法是手动传输。只需将wp-content文件夹和wp-config.php文件复制到新主机。从旧主机导出数据库,并将其导入新主机的新数据库中。.

在新主机数据库中,转到wp-option表,然后将站点URL和Blog URL更改为“新主机地址”。来自旧主机。例如从http:// localhost / wp到http://example.com

现在在wp-config文件中,只需使用新的主机信息更改数据库和用户的信息即可。

现在登录到新的wp-admin并进入设置并保存永久链接。

您已完成。我认为这很简单,无需使用任何插件。

我尝试了不同类型的插件,而所有这些插件都有很多问题。.

所以我更喜欢这本简单的手册转帐,我觉得比较容易。