如何从本地主机传输到实时但使用服务器上已有的数据库?

时间:2015-06-12 作者:Kieran

我一直在为一个客户开发WordPress网站,在我自己的机器上使用WAMP创建一个本地工作环境。

现在,问题是该网站需要上线。我知道如何使用FTP客户端,这不是问题。我有域名等的详细信息。那里已经有一个现有网站,我想知道是否有可能在保持旧网站运行的同时上载新网站,但这不是主要问题。

我在将网站从一台机器传输到另一台机器时遇到了问题,我认为这与正确导出/导入数据库有关。这是我正在努力解决的领域。为了让事情变得更加困难,我希望将新网站上载到服务器,但为了客户的利益,使用现有网站中已有的数据库。这可能吗?我将如何实现这一点?如果不是,我有什么选择?

我为这篇短文道歉,但我认为最好是尽可能清楚地描述我的处境。提前感谢您花时间阅读/回复此内容。

4 个回复
SO网友:dwcouch

Moving your sites

我的建议是使用duplicator 插件。这是我用来备份、移动和恢复站点的最简单方法,从本地到生产或从一台主机到另一台主机。

如果旧站点是WordPress-听起来像是,您可能需要考虑创建一个子域,然后使用duplicator 对旧站点进行备份,然后将旧站点还原到新子域。

mysite.com -> old.mysite.com
然后使用duplicator 备份本地开发人员站点,然后将其还原到原始站点的位置。

Connecting to the old DB

一旦您的主机mysite上有了这两个站点。com和旧。我的网站。com您可以更改wp配置中的设置。新站点(现在的mysite.com)的php指向旧站点(old.mysite.com)的db,如下所示:

// wp-config.php

define ( \'DB_NAME\', \'olddbname\' );
define ( \'DB_USER\', \'olddbusername\' );
define ( \'DB_PASSWORD\', \'olddbpassword\' );
define ( \'DB_HOST\', \'old.mysite.com\' ); 
事实上,您可能只需要从旧的wp配置中复制DB定义。我的网站。com到mysite的wp配置中。com。

我会注释掉mysite的db定义。com您能否阐明您希望通过这样做实现什么?将新站点指向旧db的问题是,它还将使用旧站点主题等。实际上,和为零。如果您只是想将帖子和页面从旧站点转到新站点,我会使用WordPress附带的导出/导入工具。还有辛迪加插件(FeedPress 是我的首选工具),它似乎比WordPress导入/导出工具更健壮。

SO网友:TheGentleman

如果客户端的现有站点是wordpress站点,并且您只想使用新主题,那么您可以将主题从本地PC上载到远程服务器,并在远程后端更改主题。

无论哪种方式,您同时运行两个站点的方式都会因具体设置的不同而有所不同。

至于传输数据库,我假设您将其导出为.sql 文件从本地数据库导出文件后,在文本编辑器中打开文件(记事本++工作正常),对要替换的文件进行搜索/替换http://localhosthttp://yourdomain.com. 然后将修改后的sql文件上载到远程数据库。您还必须打开config.php 文件,并将数据库凭据更改为远程数据库的凭据。

SO网友:Jbbhatti

您可以轻松地将插件传输到其他主机https://wordpress.org/plugins/wp-clone-by-wp-academy/

localhost 1:首先安装您的localhost wordpress插件。2: 转到wp克隆创建本地备份。3: 复制备份。zip上载任何主机/服务器。

主机/服务器1:首先安装您的主机/服务器wordpress插件。2: 转到wp克隆选择还原备份。3: 本地主机备份链接粘贴。

享受

SO网友:cstls

在WordPress中将db从任何源传输到另一个源时,需要更新一些键表,以替换为主机的路径名和域。

这里有一个我在手动执行此操作时经常使用的方便的SQL代码段。

-- Avoid updating serialized strings with "NOT LIKE \'%{%\'"
UPDATE wp_options SET option_value = REPLACE(option_value, \'//olddomain.com\', \'//newdomain.com\') WHERE option_value NOT LIKE \'%{%\';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, \'//olddomain.com\', \'//newdomain.com\') WHERE meta_value NOT LIKE \'%{%\';
UPDATE wp_posts SET post_content = REPLACE(post_content, \'//olddomain.com\', \'//newdomain.com\') WHERE post_content NOT LIKE \'%{%\';
UPDATE wp_posts SET guid = REPLACE(guid, \'//olddomain.com\', \'//newdomain.com\') WHERE post_type = \'attachment\';

-- File paths
UPDATE wp_options SET option_value = REPLACE(option_value, \'/home/old/path\', \'/home/new/path\') WHERE option_value NOT LIKE \'%{%\';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, \'/home/old/path\', \'/home/new/path\') WHERE meta_value NOT LIKE \'%{%\';
然而,在大多数情况下,我使用wp-sync-db来处理这个问题。可在此处找到:https://github.com/wp-sync-db/wp-sync-db

但是,如果您不熟悉SQL querie,我强烈建议您使用上面的插件。

结束

相关推荐

Extending the database

我正在尝试向comments数据库中添加一个额外的列,该列将存储帖子/页面作者的用户ID。这是插件的一部分,该插件将显示新评论以回复帖子或其他评论。据我所知,Wordpress没有内置此功能,而是将评论放在一个大组中。我希望用户只快速看到与自己相关的评论。require_once(ABSPATH . \'wp-admin/includes/upgrade.php\'); global $wpdb; $wpdb->show_errors(); $query = \