Cosa potrebbe esserci di male su utilizzando i collegamenti simbolici con local.xml
-
16-10-2019 - |
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
- Potrebbe esserci nulla di male su di utilizzare questo metodo?
- Dopo l'installazione fa Magento in scrittura a questo file in qualsiasi momento?
Qualche consiglio sarebbe molto apprezzato.
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.