我正在开发基于 MagentoCommerce 的电子商务。我使用3个环境:dev(在我的本地机器上),登台和生产(都在我的专用服务器上)。
问题在于,当我想从本地切换到暂存时,我必须编辑我的hosts文件,将Magento使用的域指向我服务器的IP。然而,这是耗时的,我想知道其他magento开发人员使用什么作为策略,在从环境切换到另一个环境时不总是必须更改hosts文件。此外,当我的电子商务投入生产时,我将不得不在同一IP上处理2个环境。
如果Magento仅在一个文件中对域进行了硬编码,那将是最好的。这样我就可以在每个环境中保留不同的配置文件。是这样的吗?否则,域名“硬编码”的位置是什么?
答案 0 :(得分:3)
我在生产服务器和许多开发和测试域上运行Magento。
域未在任何文件中进行硬编码 - 域都在数据库中。
从服务器移动到服务器时,您必须更改安全基本URL和不安全的基本URL。这两者都存储在数据库中,可以在基于Web的管理屏幕中进行更改。将数据库从一个主机移动到另一个主机时,我使用的脚本很少但会更新这些值。以下是更新这些值所需的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文件。我确信您希望使用不同的数据库来拥有不同的实例。在我的配置中,我将此文件保留在源代码管理之外,并为每个实例配置一次。