local.xmlでシンボリックリンクを使用することの悪い点


7

あらすじ

何よりまず、運用アプリケーションで作業することを好む人はいません。したがって、別のストアをセットアップすることをお勧めします。私の構造は次のとおりです。

  • dev.magento.local- >開発ストア;
  • stage.magento.local- > UAT / QAストア;
  • magento.local- >プロダクションストア。

一方、ストアはapp/etc/local.xml、この構造の最初の競合であるを含むソース管理で追跡されます。それにもかかわらず、Magentoのインストールプロセスが完了してlocal.xmlが作成されたら、アイデアは次のとおりです。

1)最近インストールされたMagentoストアをエクスポートします。

icanhas$ mysqldump --single-transaction magestore_dev > magestore_dev.dmp.sql

2)次に、残りの環境の構造をインポートします。

icanhas$ mysql -u'magestage_user' -p'magestage_pwd' < magestore_dev.dmp.sql
icanhas$ mysql -u'mageprod_user' -p'mageprod_pwd' < magestore_dev.dmp.sql

3)新しい環境ではURLを修正する必要がありますが、それはこの質問を超えているため、完了したと仮定しましょう。

4)前述のように、との競合を解決する必要があるためapp/etc/local.xml、次のディレクトリを作成しました。

  • /app/etc/development/local.xml- > local.xmlをここに移動しました。
  • /app/etc/staging/local.xml- > ここに開発/local.xmlをコピーしました;
  • /app/etc/production/local.xml- > ここに開発/local.xmlをコピーしました;

5)各環境のデータベース資格情報を修正しました。これはリポジトリにコミットされました。

6)最後に、次のシンボリックリンクを作成しました。

  • オンdev.magento.local ; app/etc/local.xml -> app/etc/development/local.xml;
  • オンstage.magento.local ; app/etc/local.xml -> app/etc/staging/local.xml;
  • オンmagento.local ; app/etc/local.xml -> app/etc/production/local.xml;

ご質問

  1. この方法を使用することに何か悪い点はありますか?
  2. インストール後、Magentoはいつでもこのファイルに書き込みますか?

何かアドバイスをいただければ幸いです。


くそー、それは賢いです。
ベンマークス2014年

回答:


6

私の意見では、local.xmlはバージョン管理で取り組む必要のある問題ではありません。また、セキュリティの観点からも問題があります。

/app/etc/local.xml.gitignoreに配置して、個々の環境で一度設定することをお勧めします。


3

Magentoは、インストール後にlocal.xmlに書き込みを行うべきではありません(その動作を見たことがありません)。このアプローチの悪い点は、プロジェクトのリポジトリに構成ファイルを保存しないことをお勧めすることです。

1つの理由は、セキュリティに関連しています。リポジトリにアクセスできる人は誰でも、インフラストラクチャに関する機密情報を入手できます。ターゲットにされている可能性は低いかもしれませんし、そうなるかもしれませんが、それほど難しいことではないため、人々はこの慣習に従う傾向があります。

チーム/組織が成長すると予想される場合は、アプリケーションコードと構成を分離することをお勧めします。これは適切なテクノロジーで管理できます。


1

追加のファイルに世界中からアクセスできない(デフォルトのインストールに含まれない)限り、これについて悪いことは想像できません。コアがlocal.xmlに書き込むインスタンスは考えられません(修正される予定です)いくつかの拡張機能はありますが、いずれにせよ、これは設定に問題がないはずです。とにかく、シンボリックリンクを介して関連ファイル。

個人的にはlocal.xmlをソース管理から除外する傾向があります。開発では、最後に作業したプロジェクトからlocal.xmlをコピーしてデータベース名を変更するだけです。本番/ステージングでは、サーバー上で作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.