Несколько Magento окружающей среды - PullRequest
5 голосов
/ 09 февраля 2011

У нас есть настройка магазина Magento, и под управлением версией мы хотели бы установить промежуточный магазин, который использует тот же код, но разные детали подключения.например, подробности в реальном времени для живого магазина и промежуточная база данных для постановки.

Возможно ли это с Magento, кажется, нет способа сделать это по умолчанию?

Ответы [ 9 ]

12 голосов
/ 26 января 2012

Есть много способов, одним из самых простых, который не требует дополнительных расширений, является

-> создать

  • / приложение / и т.д. / local.xml.dev
  • / приложение / и т.д. / local.xml.live
  • / приложение / и т.д. / local.xml.stage

и НЕ управляйте версией local.xml

и символическую ссылку на нужный файл в каждой среде, чтобы вы могли хранить всю информацию о соединении в svn или git,

6 голосов
/ 09 февраля 2011

Tom

Поскольку вы используете контроль версий, я бы посоветовал вам не иметь одинаковые файлы для подготовки и производства. Это вообще плохая идея. В идеале у вас должна быть другая среда для подготовки и производства, как с собственным набором файлов, так и с собственной базой данных. Таким образом, вам не нужно беспокоиться о препятствии, которое вы испытываете сейчас.

4 голосов
/ 06 сентября 2012

Мне приходилось делать это много раз.Я в основном использую те же предложения, что и здесь, но чтобы подвести итог ...

/ app / etc / local.xml

В управлении версиями я храню эти файлы,каждый со своей БД и данными кеширования.Это модифицированные копии исходного файла local.xml: - app / etc / production.local.xml - app / etc / staging.local.xml - app / etc / my-dev.local.xml

Файл local.xml, созданный при установке, будет удален.Он заменяется мягкой ссылкой local.xml на соответствующий файл в каждой среде:

cd app/etc
ln -s production.local.xml local.xml

Примечания по управлению различными базами данных:

Затем я обычно создаю новыйкаталог корневого уровня с именем / sql, и там я храню подобные сценарии, которые используются для настройки альтернативных сред:

  • madeb.sql
  • production.setup.sql
  • staging.setup.sql
  • my-dev.setup.sql

madeb.sql запускается от имени администратора MySQL и просто устанавливает базу данных и пользователя.

create schema magentoschema; create user magentouser;
grant all on magentoschema.* to 'magentouser'@'localhost';
set password for 'magentouser'@'localhost' = password('secret');

После создания базы данных вы можете перейти к исходной установке и получить mysqldump базы данных:

mysqldump -u magentouser -p -h your.host.name magentoschema > magento.dump.sql

, а затем установить ее в любой среде, в которой вы работаете:

mysql -u magentouser -p -h localhost magentoschema < magento.dump.sql

Затем вам нужно изменить имя хоста (и, возможно, некоторые другие параметры) в core_config_data.Самое простое выглядит следующим образом:

update core_config_data set value='http://staging.yourstore.com/' where config_id in (3,4);

Вам необходимо проверить установку Magento, чтобы узнать, что такое config_id для записей с web / secure / base_url и web / unsecure / base_url в столбце пути.Это просто, просто сделайте запрос в базе данных следующим образом:

select * from core_config_data where value like 'http%';

Так что создайте файлы * .setup.sql с правильными именами хостов для каждой среды и запустите скрипт в mysqlтак же, как вы загрузили базу данных:

mysql -u magentouser -p -h localhost magentoschema < staging.setup.sql

Удачи!

1 голос
/ 07 марта 2012

Я написал руководство для вас, чтобы объяснить процесс настройки промежуточной / dev / live среды с Magento и SVN

http://www.sonassi.com/knowledge-base/staging-development-live-svn-with-magento/

1 голос
/ 10 февраля 2011
0 голосов
/ 03 октября 2012

Следуйте инструкциям здесь http://www.magentocommerce.com/wiki/groups/227/moving_magento_to_another_server

и перенесите свою производственную среду на локальный компьютер после настройки на своем компьютере wamp или zend-сервера.

для этого на вашем промежуточном компьютере должен быть запущен какой-то локальный сервер (не обязательно должен быть сервером, он также может использовать ваш ноутбук)

для постановки:

настройки baseurl и securebaseurl в бэкэнде промежуточного сайта, используйте «localhost» и сохраняйте промежуточную среду на своем собственном компьютере (это можно сделать с помощью Zend-сервера или wamp / lamp на вашем компьютере в зависимости от вашей ОС чем скопировать все это на вашу постановочную машину)

0 голосов
/ 16 июля 2012

Дублировать магазин для разработки легко с Magento.

Поскольку у вас есть код в управлении версиями, вы просто выполните следующие действия:

1) Создайте резервную копию базы данных, экспортируйте ее как SQL. 2) Запустите поиск и замените файл, заменив yourwebsite.com на stage.yourwebsite.com 3) импортировать новую базу данных в MySQL.

4) Извлечение файлов из системы контроля версий в корневой каталог документа промежуточного сайта. 5) изменить приложение / etc / local.xml - изменить настройки базы данных на новую базу данных и имя пользователя / пароль. 6) пустые папки var / cache / и var / session (надеюсь, вы никогда не добавляли их в свою систему контроля версий).

Работа выполнена. : -)

0 голосов
/ 09 февраля 2011

Не уверен, если это возможно.

Не могли бы вы создать PHP-файл с оператором IF, который затем отобразил бы соответствующий XML для среды. Затем вам нужно будет сделать это доступным как local.xml через .htaccess.

После того, как это будет сделано, убедитесь, что это не доступно из внешнего мира.

0 голосов
/ 09 февраля 2011

Вы можете сделать это.

Вам нужно сосредоточиться на local.xml в папке etc и соответственно настроить параметры БД.

Также измените защищенное и незащищенное базовое поле urlзначения в таблице core_config_data.

...