Yii アプリ用の公開 Git リポジトリがあるとします。DB構成設定を非公開にする方法を知りたいですか? ファイル全体を無視することはできません。
4 に答える
2 番目の無視された構成を作成し、結果をマージします。
$config=require_once(dirname(__FILE__).'/protected/config/main.php');
$configIgnored=require_once(dirname(__FILE__).'/protected/config/ignored.php');
require_once($yii);
$config = CMap::mergeArray($config, $configIgnored);
Yii::createWebApplication($config)->run();
最初に ... リポジトリに protected/config/main.php.dist ファイルを保持します。「dist」は「分布」の略です。このファイルは通常の構成ファイルですが、適切なデータはありません。たとえば、次のことができます。
...
'db' => array(
'connectionString' => 'mysql:host=[[hostname]];dbname=[[database]]',
'emulatePrepare' => true,
'username' => '[[username]]',
'password' => '[[password]]',
'charset' => 'utf8',
),
...
ユーザー名、パスワードなどはプロジェクトのものではないことに注意してください。この情報はあなただけに関するものであり、あなたのアプリケーションに関するものではありません。
2 番目 に、アプリケーションのデプロイを準備します。たとえば、次のように ping を使用します。
<project name="yourProject" default="install">
<target name="install" description="Prepare application for deploy">
<input propertyname="hostname"
defaultValue="localhost" promptChar="?">hostname</input>
<input propertyname="database"
defaultValue="database" promptChar="?">database</input>
<input propertyname="username" defaultValue="root" promptChar="?">username</input>
<input propertyname="password" defaultValue="root" promptChar="?">password</input>
<copy file="protected/config/main.php.dist"
tofile="protected/config/main.php"
overwrite="false">
<filterchain>
<replacetokens begintoken="[[" endtoken="]]">
<token key="username" value="${username}" />
<token key="password" value="${password}" />
<token key="hostname" value="${hostname}" />
<token key="database" value="${database}" />
</replacetokens>
</filterchain>
</copy>
</target>
</project>
この方法では、構成設定をリポジトリに保存することはなく、実行するだけで済みます
$ phing install
マシンでアプリケーションを構成します。明らかに、phing をインストールする必要があります。
完全に機能するこれを見つけました: http://www.yiiframework.com/forum/index.php/topic/33395-best-practices-to-separate-db-connection-credentials-from-mainphp-and-git-repository /
私は Yii を使用していないので、その構造はわかりませんが、1 つ知っていることは、git でファイルの行を無視することはできないということです。したがって、実際の構成ファイルを gitignore し、実際のファイルの代わりに config_sample ファイルを作成して公開し、それを機能させるための指示を README.md に書き留めることをお勧めします。