2011-02-09 2 views
5

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

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

ответ

6

Том,

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

+0

Как бы это выглядело, сохраним конфигурационный файл для каждой среды в отдельной ветви и сменим изменения? – Tom

+7

Один из способов приблизиться к этому - полностью удалить приложение/etc/local.xml из исходного элемента управления. Затем добавьте local.xml.dev, local.xml.stage и local.xml.prod в исходный элемент управления. При развертывании на сцену у вас также есть скрипт, который при необходимости копирует соответствующую версию local.xml (т. Е. Cp local.xml.stage local.xml). – shaune

+0

Я сохраняю имя файла одинаковым для каждой версии (туловище, сцена и т. Д.), А затем используйте '.svn-ignore', чтобы предотвратить перезапись производственных версий. Он также предотвращает случайные изменения любого рода. Некоторые владельцы Magento, такие как Nexcess, довольно хорошо разбираются в деталях 'local.xml', и я не хочу перезаписывать их тяжелую работу. – clockworkgeek

0

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

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

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

+0

У вас есть ссылка, как это может выглядеть на самом деле? – Tom

+0

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

+0

Я только что разместил более подробную информацию в качестве ответа ниже. – serdarsenay

0

Не уверен, что это возможно.

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

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

12

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

-> создать

  • /app/etc/local.xml.dev
  • /app/etc/local.xml.live
  • /app/etc/local.xml.stage

и не управления версий local.xml

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

+0

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

+0

Я соглашаюсь быстро. Кажется смешным, что нет поддержки конфигураций окружающей среды. – Artistan

0

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

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

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

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

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

4

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

/app/etc/local.xml

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

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

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

Заметка об управлении различными базах данных:

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

  • createdb.sql
  • production.setup.sql
  • staging.setup.sql
  • мой-dev.setup.sql

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

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

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

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 для записей с веб/безопасной/base_url и веб/незащищенное/base_url в колонке пути. Это просто, этого нужно просто сделать запрос, как это на базе данных:

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

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

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

Удачи!

0

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

и перемещение производственной среды в локальную машину, после установки WAMP или сервера ZEND на вашей машине.

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

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

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