Php 什么是正确的方法来维持“一个;服务器的版本";-仅更改配置文件时,是否使用Git?

Php 什么是正确的方法来维持“一个;服务器的版本";-仅更改配置文件时,是否使用Git?,php,git,codeigniter,version-control,Php,Git,Codeigniter,Version Control,我有时使用Codeigniter,在本地站点上完成开发后,我需要将文件迁移到服务器。需要更改/config/文件夹中的所有文件以匹配服务器设置。对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候使用Git应用它们?您可以保持版本控制: 两个“值配置文件”,每个环境都有正确的值 模板配置文件,其中包含值占位符(例如,@@PORT\u NUMBER@) 能够根据当前环境生成实际配置文件的脚本 签出时,它将触发脚本以生成正确的配置文件 注意:假

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

您可以保持版本控制:

  • 两个“值配置文件”,每个环境都有正确的值
  • 模板配置文件,其中包含值占位符(例如,
    @@PORT\u NUMBER@
  • 能够根据当前环境生成实际配置文件的脚本
  • 签出时,它将触发脚本以生成正确的配置文件


注意:假设模板配置文件具有可识别的内容(过滤器没有文件的名称或路径)。有关git内容筛选器驱动程序限制的更多信息,请参见“”。

这取决于您的需要。在我的公司,我们使用其他方法。 我们已经创建了几个环境(其中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)中设置环境名称。你应该看看:


你看过CI文档了吗?有一个关于它的问题。

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

如果要使任何配置文件与生产和开发环境保持一致,请将其保存在
config
文件夹中

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

#This code for Development Environment
SetEnv CI_ENV development


你也许可以在部署钩子后编写一个git来实现这一点?
#This code for Production Environment
SetEnv CI_ENV production