从开发人员转移到生产人员的最完美方式

时间:2011-11-18 作者:dcolumbus

Possible Duplicate:
Easily Move a WordPress Install from Development to Production?

所以我已经和WordPress合作了一段时间了,我通常在本地开发,然后将所有内容上传到我的Prod服务器。。。然而,我经历了很多不同的结果,尤其是在使用插件时。

我通常会导出数据库,但像域的位置这样的事情似乎并不总是会被更改,即使事先在WP admin中更改了它们。

从开发人员转移到生产人员并保持一切完整的最佳方式是什么?

那么,从同一域的子目录中移动站点的最佳方式是什么?

请不要告诉我WP文档的方向。。。这是我第一次看的地方。

6 个回复
最合适的回答,由SO网友:Alexander Bird 整理而成

dev和prod之间的任何差异都是不好的。以下是我所做的:

有一个different ip for dev server (无论是内部的、外部的还是本地计算机上的)都不重要,但dev服务器必须是完全相同的设置(见下面的段落)Change the hosts file (see here) (在您或测试计算机或虚拟机上)指向开发服务器ip结果:发送到开发服务器的HTTP请求Host header field 设置为“example.com”exactly like it will be for the prod server.

必须更改域名,在子目录中有dev代码,但在root或diff子目录中有prod代码。这是因为我使用git在开发人员和生产人员之间传输文件。。

dev服务器的设置与prod服务器完全相同(请参阅ChefPuppet 了解如何以编程方式管理服务器)。

SO网友:GavinR

根据我的经验,我使用了Search and Replace plugin 重新引用对旧域的所有引用。不是最干净的解决方案,但似乎有效。

SO网友:KalenGi

我定期进行相同的dev-prod部署,因此我为其开发了一些标准查询:

更新网站url:

更新wp\\u options SET option\\u value=replace(option\\u value,“[DEV\\u URL]”,“[PROD\\u URL]”),其中option\\u name=“home”或option\\u name=“siteurl”或option\\u name=“fileupload\\u URL”;

更新上载路径:

更新wp\\u options SET option\\u value=“[站点\\u根路径]/wp content/uploads”,其中option\\u name=”upload\\u PATH“;

更新post GUI:

更新wp\\u posts SET guid=replace(guid,“[开发URL]”,“[生产URL]”);

更新帖子中的URL:

更新wp\\u posts SET post\\u content=replace(post\\u content,“[开发URL]”,“[生产URL]”);

用实际值替换括号内的变量,例如。

[开发URL]->http://example-local-pc.com[产品URL]>http://example-online-server.com[站点\\u根路径]->/主页/客户端/域/示例联机服务器。com/html

这通常会处理对dev环境的任何引用。但是,您应该注意:

i) 许多插件还将绝对URL存储在wp\\U选项或自定义表中。这些你必须逐案调查。

ii)运行更新替换查询(如上面的1和2)几乎肯定会损坏序列化字段中的数据。除了让相关插件自己进行更新之外,我还没有找到一种干净、快速的方法来进行这种替换。这一点的成功取决于插件的健壮性。

SO网友:Drai

我喜欢开发一个子目录,这样我就可以让我的客户访问测试站点。当我准备发布时,我使用一个插件(下面的建议)将整个内容复制到另一个子目录,然后指向WordPress从新目录加载。保持开发区域处于活动状态以进行测试。

使用插件,如duplicator (免费)或backupbuddy (已付)。也看看我的问题here 帮助您。

SO网友:Tom J Nowell

我使用此搜索替换工具:

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

它适用于其他软件以及wordpress。

至于部署,我在服务器上设置了一个环境,然后可以通过域映射/vhost进行切换,使其生效。install Dev始终位于单独的服务器上,并且从不处于活动状态。

SO网友:Wyck

WordPress在数据库中存储内容的方式没有完美无缺的方法。

对于推动代码,它可以像使用git/mercurial/svn一样完美无瑕,甚至可以只是文件覆盖写。

但数据库中存储的任何内容(插件、帖子、类别等)都不是这样,而且没有很好的方法来同步两个数据库。How to: Easily Move a WordPress Install from Development to Production?

结束

相关推荐

Hosting WordPress on Azure?

我可以在Microsoft的Azure云平台上托管WordPress/WordPress MU安装吗?有没有人对在Azure上托管WordPress有任何建议或经验?