从Git拉取到WordPress和桌面服务器

3
我有问题在不同本地机器上保持存储库的一致版本以及有效地推拉。在使用Rails时,我可以轻松地进行推送和拉取,并且包含启动Rails服务器所需的所有文件。但是,在WordPress中,我必须在.gitignore中包括文件,如wp-config.php,因此当我将存储库拉到新计算机时,我无法通过Desktop Server启动本地服务器。我曾尝试手动传输wp-config,因为那不太麻烦,但接着出现了数据库错误,我需要一个更完整的解决方案。
您该如何在开发人员之间通过版本控制传输整个WP存储库?我希望能够推拉,而不是拖放。
(我想到的一个解决方案:复制WP基础,将远程存储库连接到基础,然后将更新的站点拉取并合并到基础服务器中。)
(另一个可能的解决方案:将wp-config.php中的db配置和salt行移动到dbsalts.php中,然后在wp-config.php中包含该文件。然后我会将dbsalts.php添加到.gitignore中并删除wp-config,因此会忽略重要的内容但推送减少的wp-config。不确定这是否有效,我们仍然需要拖放dbsalts.php。)
(dbsalts.php)
define( 'DB_NAME', ..... (redacted code for security)
...........................

define('AUTH_KEY'......         
..........................

wp-config.php

include(dbsalts.php);

目前使用wpengine和桌面服务器,但我现在才开始实施,也欢迎您提出建议。

3个回答

0

我使用基于URL的本地配置,通过将以下内容添加到wp-config.php文件中:

$site_options_filename = dirname(__FILE__) . '/options-' . $_SERVER['SERVER_NAME'] . '.php';

if (!file_exists($site_options_filename)) {
    die('missing config: ' . $site_options_filename);
}

这将根据您正在查看的域来查找特定的配置文件。我在本地构建中使用 dev. 前缀或类似前缀。
我还使用一个快速的 bash 脚本将 db 转储为 .sql 文件,每当需要传播数据库更改时,我都会把它包含在提交中:
mysqldump -uyour_db_username -pyour_db_password --add-drop-table --create-options your_database_name  > dump.sql

这是一个简单的任务,每次拉取并且 dump.sql 已经改变时,运行 dump.sql 到数据库。

0

*私有 BitBucket Git 存储库 - 虽然大部分情况下 WordPress 安装中唯一真正敏感的信息是在 wp-config 文件中,最好不要把它包含在 Git 存储库中,但可以将整个网站放在免费的 BitBucket 私有存储库中。公开您的整个网站可能说得通,但在这样做之前需要仔细考虑,并在客户工作时谨慎行事。

*WP 迁移 DB Pro - 虽然 Git 可以在环境之间保持网站所有文件同步,但需要使用不同的工具来保持 MySQL 数据库同步。WP 迁移 DB Pro 是一个优秀的插件,可自动化该过程。


WP Migrate DB Pro 就是我要找的东西。 - Virge Assault

0
即使您让它工作,您仍将在数据库中遇到进一步的问题。两个开发人员在两个不同的本地WordPress站点上工作可能会在数据库中创建许多数据问题。
以下是一个例子:假设您们两个都从数据库中拉取了以下帖子:A、B、C。现在您发布了一个新帖子:“D1”,而另一位开发人员发布了一个不同的帖子:“D2”。这将使D1和D2与相同的帖子ID相关联(因为D1不在第二位开发人员的WordPress数据库中,对于D2也是如此)。
理论上,您可以做的是设置两台计算机连接到同一个远程数据库(如果它们不同,则必须将两个IP地址列入白名单,并通过WPEngine的支持进行安装)。您需要修改本地wp-config.php,我认为这将使其与服务器上的文件不同,但没关系,因为您可以将其包含在gitignore中。
现在你可能可以轻松地从服务器中拉取和推送,但我建议使用BitBucket或GitHub,并只允许一个人向服务器推送。同时,建议考虑使用DeployBot.com,它可以自动将BitBucket / GitHub的代码通过FTP推送到WPEngine的服务器中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接