本地覆盖Drupal的settings.php?

时间:2015-07-06 12:14:24

标签: drupal

我正在处理一个大型项目,而settings.php文件位于存储库中。我需要在本地覆盖用户名和密码,因为我的细节不同。我不想影响主要的settings.php文件,因为这是其他开发人员使用的。可以这样做吗?如果我可以创建一个新文件,那么我可以用GIT在本地忽略它,这意味着它不会影响存储库。

2 个答案:

答案 0 :(得分:1)

您可以将其添加到settings.php文件的底部:

/**
 * settings file for local development only.
 *
 * This file should NEVER be committed to version control and should never exist
 * on a non-local development machine.
 */
if (file_exists('./' . conf_path() . '/settings.local.php')) {
  require './' . conf_path() . '/settings.local.php';
}

然后就像你建议的那样,将settings.local.php添加到.gitignore文件中。

Screenack发布的链接应该是您所需要的。

答案 1 :(得分:0)

您可以通过多种不同方式执行此操作:

  1. 将您的开发环境中的文件设为只读。这使得您可以将本地文件设置为任何内容,而不会被版本控制同步覆盖。您需要在每次提交时手动排除文件。

  2. 从版本控制中排除文件。如果您需要其他开发人员可以使用这些设置,您可以创建一个名为settings.base.php的单独文件,他们可以使用它来创建自己的本地设置。

  3. 我的首选是设置是通用的。显然,任何具有相同用户名和密码的资源都不是问题,您可能遇到的问题是主机。您可以让每个开发人员/服务器覆盖它的主机映射到您希望它指向的实际服务器。在Linux中它是/ etc / hosts,在windows中是/ windows / system32 / drivers / etc / hosts。

  4. #3的示例主机设置:

    开发者机器

    127.0.0.1   databaseserver.com
    

    临时机器

    192.168.1.100    databaseserver.com
    

    生产机器可能不需要重新映射。除非您从未拥有数据库的主机名,否则您将创建一些像my.database.srv这样的组成主机名,然后将其设置为生产。

    有关上述所有内容(尤其是#3)的一个方面是,它是一个独立于平台的解决方案,因此您可以为任何类型的项目(不仅仅是Drupal)执行此操作。