Domanda

Sinossi

In primo luogo nessuno ama lavorare su applicazioni di produzione. Pertanto si consiglia e buone prassi per qualcuno di set-up depositi separati, la mia struttura è la seguente:

  • dev.magento.local -> il negozio di sviluppo;
  • stage.magento.local -> SVS / store QA;
  • magento.local -> negozio di produzione;

Nel frattempo il negozio è tracciato in controllo di origine, compreso il app/etc/local.xml, che è il primo conflitto di tale struttura. Tuttavia una volta che il processo di installazione di Magento ha completa e abbiamo la local.xml, l'idea era di:

1) Esportare il recentemente installato comunque fresco negozio Magento.

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

2) quindi importare la struttura per gli ambienti restanti.

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) I nuovi ambienti hanno bisogno di loro URL corretti, anche se questo è al di là di questa domanda supponiamo che sono stati fatti.

4) Come accennato in precedenza, abbiamo bisogno di risolvere il conflitto con app/etc/local.xml così ho creato le seguenti directory:

  • /app/etc/development/local.xml -> Spostato local.xml qui;
  • /app/etc/staging/local.xml -> Copiato sviluppo / local.xml qui;
  • /app/etc/production/local.xml -> Copiato sviluppo / local.xml qui;

5) Ho corretto le credenziali del database per ogni ambiente, questo è stato commesso al repository.

6) Infine ho avuto così creare i seguenti link simbolici:

  • 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;

Domande

  1. Potrebbe esserci nulla di male su di utilizzare questo metodo?
  2. Dopo l'installazione fa Magento in scrittura a questo file in qualsiasi momento?

Qualche consiglio sarebbe molto apprezzato.

È stato utile?

Soluzione

A mio parere, local.xml non è un problema è necessario essere affrontare in controllo di versione. E 'anche discutibile dal punto di vista della sicurezza.

Io vi raccomando solo posto /app/etc/local.xml in .gitignore e impostare il tutto una volta sui vostri ambienti individuali.

Altri suggerimenti

Magento non dovrebbe scrivere a local.xml dopo l'installazione (non ho mai visto quel comportamento). The Bad (TM) cosa circa il vostro approccio è che è è in genere consigliato di Evitare la memorizzazione dei file di configurazione nel repository del progetto.

Una ragione è legata alla sicurezza. Chiunque abbia accesso al repository ora ha alcune informazioni sensibili sulla vostra infrastruttura. E 'potrebbe essere improbabile che si sarebbe mirati o sarebbe successo ma le persone tendono a seguire la convenzione perché non è così difficile farlo.

Se si prevede voi sono team / organizzazione a crescere, allora è una buona idea di codice dell'applicazione separati e la configurazione. Che possono poi essere gestiti con le tecnologie appropriate.

non riesco a immaginare nulla di male su che finché i file aggiuntivi non sono accessibili mondo (che non sarebbero in una installazione di default). Non riesco a pensare a tutte le istanze in cui il nucleo scrive a local.xml (disposto ad essere corretto su questo), alcune estensioni potrebbero, però, ma questo dovrebbe essere un non-problema con il set-up in ogni caso, come si deve scrivere a il relativo file tramite il link simbolico in ogni caso.

Personalmente si tende a mantenere local.xml fuori controllo del codice sorgente, per lo sviluppo mi basta copiare il local.xml dall'ultimo progetto ho lavorato e modificare il nome del database, in quanto questo è tutto ciò che tende a cambiare. E la produzione / staging ci limitiamo a creare sul server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top