8

我有时使用 Codeigniter,在本地站点上完成开发后,我需要将文件迁移到服务器。/config/需要更改文件夹中的所有文件以匹配服务器设置。对这些更改进行完整提交是不对的,我是让 Git 完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候使用 Git 应用它们?

4

3 回答 3

8

你可以保持版本:

  • 两个“值配置文件”,每个环境都有正确的值
  • 一个模板配置文件,其中包含值占位符(例如,@@PORT_NUMBER@@
  • 一个能够根据当前环境生成实际配置文件的脚本
  • 内容过滤器驱动程序,在结帐时将触发脚本以生成正确的配置文件。

内容过滤器驱动程序

注意:假设您的模板配置文件具有可识别的内容(过滤器没有文件的名称或路径)。有关git 内容过滤驱动程序限制的更多信息,请参阅“ Git 相当于 subversion 的$URL$关键字扩展”。

于 2012-05-13T12:08:27.847 回答
1

这取决于您的需求。在我的公司,我们使用其他方法。我们创建了几个环境(其中 asterix 是内部项目名称):

  • devel - 站点在域 **.local.com* 上运行
  • 测试 - 站点在域test.*.company.com上运行
  • beta - beta.*.company.com
  • 生产 - 每个其他域。

根据域名我们自动切换配置。基本上配置文件看起来像:

<?php
return array(
  '_env' => array(
    'devel' => array(
      // config for devel
    ),
    'production' => array(
      // config for production
    )
  )
);
?>

一些框架(AFAIR Zend)在虚拟主机配置(或 .htaccess)中设置环境名称。你应该看看:zend framework auto switch production staging test .. etc

你看过 CI 文档吗?有一是关于它的。

于 2012-05-13T22:14:25.647 回答
0

在文件夹中创建两个文件config夹。一个被称为development,另一个是production。现在将 config.php、database.php 等复制到每个文件夹中。现在,当您在生产服务器上时,CodeIgniter 将首先检查production文件夹中的文件。如果不存在,则使用文件config夹中的默认文件。如果您在开发环境中,CodeIgniter 将首先检查该development文件夹。

如果您想保持任何配置文件与生产和开发环境相同,请将其保存在config文件夹中。

如果要设置环境,请在 .htaccess 文件中添加以下代码:

#This code for Development Environment
SetEnv CI_ENV development

#This code for Production Environment
SetEnv CI_ENV production
于 2016-01-09T03:07:22.390 回答