2012-05-13 6 views
6

私はCodeigniterで作業することがあり、ローカルサイトでの開発が終わったら、ファイルをサーバーに移行する必要があります。 /config/フォルダー内のすべてのファイルをサーバーの設定に合わせて変更する必要があります。これらの変更を完全にコミットするのは妥当ではありません。単にこれらのファイルを無視するようにしてもいいですか?あるいは、これらの変更を追跡し、適切なタイミングでGitに適用する方法がありますか?"サーバーのバージョン"を維持する正しい方法は何ですか?Gitでは設定ファイルだけが変更されていますか?

+0

あなたはおそらくそれを行うだろうGitのafter_deployフックを書くことができますか? – lenswipe

答えて

7

は、あなたはバージョン管理保つことができる:

  • 2「の値の設定ファイル」を、それぞれの環境
  • テンプレート設定ファイルのための右の値で、値のプレースホルダとそれに(例えば、@@[email protected]@
  • スクリプトはに生成現在の環境に応じて実際の設定ファイル
  • content filter driverこれは、チェックアウト時にリグを生成するためht設定ファイル。

content filter driver

注:お使いのテンプレート設定ファイルを想定し、認識コンテンツを(フィルタは、ファイルの名前やパスを持っていない)があります。 gitコンテンツフィルタドライバの制限については、 "Git equivalent of subversion's $URL$ keyword expansion"を参照してください。

1

あなたのニーズによって異なります。私の会社では、他のアプローチを使用しています。 我々が作成したいくつかの環境(アスタリスクがある内部プロジェクト名):。。

  • のdevel - サイトは、ドメイン上で動作します** local.com *
  • テスト - ドメイン上のサイトの実行テスト*。 company.com
  • ベータ - 。。ベータ* company.com
  • 生産 - 他のすべてのドメイン。

ドメイン名に基づいて、自動的に設定が切り替わります。 Basiclyの設定ファイルは、次のようになります。

<?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のドキュメントを見ましたか?約sectionがあります。

0

configフォルダに2つのフォルダを作成します。 1つはdevelopment、もう1つは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 
関連する問題