克隆和同步WordPress网站

时间:2017-01-17 作者:Sam

我计划建立一个良好的开发环境,为此,我需要将实际运行的网站100%克隆到dev 目录

我现在上传的wordpress版本与我正在运行的站点上的版本相同,我想知道在运行安装过程中是否可以输入与正在运行的站点相同的数据库和前缀。我的目标是将开发网站连接到同一个数据库,以便它显示与正在运行的网站相同的文章。就数据库内容而言,这两个网站应该同步!

但我担心它会覆盖我数据库中的所有内容,我会丢失数据(我有备份,但我不想让真正的网站宕机),所以我想问你:如果我输入与正在运行的网站相同的详细信息,会发生什么事?开发网站会显示所有现有的文章,还是会覆盖数据库中的所有内容?

2 个回复
最合适的回答,由SO网友:RobBenz 整理而成

根据你的问题,我不确定你的本地版本现在在哪里。

这个答案是假设你是从零开始的,但是在一个实时的web服务器上有一个工作wordpress网站的副本,并且在mac上工作。

您需要在本地计算机上安装web服务器。我推荐MAMP。https://www.mamp.info/en/

安装mamp后,下一步是配置root 您的web服务器的文件夹,我们将继续使用默认设置Applications/MAMP/htdocs/

然后,您将需要某种FTP客户端。Filezilla、Cyberduck等。登录到您的生产服务器,并下载整个网站(可能类似于public_html/your_site/ ) 使用MAMP根目录进入新文件夹,即:/Applications/MAMP/htdocs/your_site

然后,您需要登录到SQL客户端以下载wordpress数据库的副本,这取决于您的web托管提供商,他们应该有一个名为phpmyadmin. 您需要下载整个database.sql 将文件保存到本地计算机,比如将其保存到desktop.

此时也要备份,以防万一。

从那里,您需要导航到phpmyadmin 通过本地计算机上的mamp,并上载。sql文件到本地sql数据库。如果您对命令提示符感到满意,这将产生奇迹。。。

/applications/MAMP/library/bin/mysql -u root -p wordpress_db < /Users/you/Desktop/backupDB.sql
如果没有,您可以压缩和上传,如果数据库很大,您可能需要分解结构;将内容分为两种不同的下载;分别上传

然后,您将运行一些SQL查询来更改有关wordpress安装的一些核心选项,(为本地构建进行配置)

UPDATE wp_options SET option_value="http://newdomain.com" WHERE option_name="siteurl";
UPDATE wp_options SET option_value="http://newdomain.com" WHERE option_name="home";
UPDATE wp_options SET option_value = replace(option_value, \'http://olddomain.com\', \'http://newdomain.com\') WHERE option_name = \'home\' OR option_name = \'siteurl\';
UPDATE wp_posts SET guid = replace(guid, \'http://olddomain.com\',\'http://newdomain.com\');
UPDATE wp_posts SET post_content = replace(post_content, \'http://olddomain.com\', \'http://newdomain.com\');
UPDATE wp_postmeta SET meta_value = replace(meta_value, \'http://olddomain.com\', \'http://newdomain.com\');
new domain 会是这样的,localhost/your_site

然后您需要更新wp-config.php 要从本地计算机上的正确数据库中提取的文件。

define( \'DB_NAME\', \'wordpress_db\' );  // only if you changed db name (don\'t)
define( \'DB_USER\', \'root\' );
define( \'DB_PASSWORD\', \'root\' );
define( \'DB_HOST\', \'localhost\' );
现在,我相信你localhost/your_site 应正常工作,如果只有主页正常工作,而其他页面均不正常工作,则可能需要配置。htaccess文件如下(与wp-config.php )

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /your_site/index.php [L]
</IfModule>
因此,在这一点上,你将有一个准确的副本,你的生活网站。。。。现在如何同步。。。。。

签出此插件。。。https://github.com/wp-sync-db/wp-sync-db将需要在您的live站点和dev站点上安装。

一旦激活,它将允许您将实时数据库拉入dev数据库。您需要配置api key 并配置设置以允许pull 然后复制该api密钥并粘贴到开发人员站点插件设置(tools > migrate-db ) 每天同步一到两次。

请注意:我不建议将本地db推到live db。我只会把我的实时数据库拉到我的本地构建中。

我希望本教程对您有用。

SO网友:kirillrocks

如果生产服务器允许从任何地方连接数据库,它将进行连接。但是,在开发环境中进行的每一次更新都会影响生产数据库,这是一个非常糟糕的主意。

相关推荐

Insert Data into Database

我是为wordpress开发插件的新手。我需要一个公式,所有的网站浏览者可以填写数据并发送它。这个send it-按钮应将其保存到数据库。因此,我认为应该这样定义插件中的快捷方式和公式:function formular() { return \'This is html of Formular\'; } add_shortcode(\"formular\", \"formular\"); 但是现在我不知道如何用按钮定义公式来将数据保存到数据库中。已添加应保存数据的数