Я работаю над электронной коммерцией, основанной на MagentoCommerce . Я использую 3 среды: dev (на моей локальной машине), постановку и производство (как на моем выделенном сервере).
Проблема в том, что когда я хочу переключиться с локального на стадию, мне нужно отредактировать файл моих хостов, чтобы указать домен, используемый Magento, на IP-адрес моего сервера. Однако это занимает много времени, и мне было интересно, что другие разработчики magento используют в качестве стратегии, чтобы не всегда менять файл хостов при переходе из среды в другую. Кроме того, когда моя электронная коммерция начнет работать, мне придется иметь дело с 2 средами на одном и том же IP-адресе.
Лучше всего было бы, если бы Magento имел домен, жестко закодированный только в одном файле. Таким образом, я мог бы хранить разные конфигурационные файлы в каждой среде. Это так? В противном случае, какие места являются доменами «жестко закодированными»?
Я запускаю Magento на сервере Production и в нескольких доменах разработки и тестирования.
Домен не жестко закодирован в любом файле – домен все в базе данных.
При переходе с сервера на сервер вам необходимо изменить защищенный базовый URL-адрес и необеспеченный базовый URL-адрес. Оба они хранятся в базе данных и могут быть изменены на веб-сайтах. При перемещении базы данных с одного узла на другой я использую скрипт, который мало что делает, но обновляет эти значения. Вот SQL, который вам нужно обновить:
update core_config_data set value='http://whatever.com/' where path='web/unsecure/base_url'; update core_config_data set value='https://whatever.com/' where path='web/secure/base_url';
Вы также можете обратить внимание на файл local.xml, в котором настроено соединение с базой данных. Я уверен, что вы захотите, чтобы разные экземпляры использовали разные базы данных. В моей конфигурации я оставляю этот файл вне контроля источника и настраиваю его только один раз для каждого экземпляра.