多个Magento环境

时间:2011-02-09 17:13:19

标签: php magento e-commerce environment staging

我们有一个Magento商店设置,在版本控制下,我们想设置一个使用相同代码但不同连接细节的临时商店。例如实时商店的实时详细信息和用于暂存的临时数据库。

Magento有可能,默认情况下似乎没有办法吗?

9 个答案:

答案 0 :(得分:12)

有许多方法,其中一种最简单的方法是不需要额外的扩展

- >创建

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

并且不要版本控制local.xml

并在每个环境中使用符号链接正确的文件,这样您就可以在svn或git中保留所有连接信息,

答案 1 :(得分:6)

汤姆,

由于您使用的是版本控制,我建议您不要为分段和生产提供相同的文件。这通常是一个坏主意。理想情况下,您应该拥有不同的登台和制作环境,它们都有自己的文件集和自己的数据库。这样,您就不必担心现在遇到的障碍。

答案 2 :(得分:4)

我不得不多次这样做。我几乎使用了此处列出的相同建议,但总结一下......

<强> /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的新的根级目录,并在那里保留这些用于设置备用环境的脚本:

  • createdb.sql
  • production.setup.sql
  • staging.setup.sql
  • MY-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:

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安装,以查看路径列中包含web / secure / base_url和web / unsecure / base_url的条目的config_id。这很容易,jsut在数据库上做这样的查询:

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

因此,为每个环境创建具有正确主机名的 * .setup.sql文件,并像在加载数据库时一样在mysql中运行脚本:

mysql -u magentouser -p -h localhost magentoschema < staging.setup.sql
祝你好运!

答案 3 :(得分:1)

答案 4 :(得分:1)

我写了一本指南,仅供您解释使用Magento和SVN设置登台/开发/实时环境的过程

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

答案 5 :(得分:0)

你可以这样做。

您需要关注etc文件夹中的local.xml并相应地设置数据库设置。

还要更改core_config_data表中的安全和非安全基本URL字段值。

答案 6 :(得分:0)

不确定这是否可行。

您是否可以使用IF语句创建一个PHP文件,然后该语句将回显出环境的相关XML。然后,您必须通过.htaccess将其作为local.xml进行访问。

完成此操作后,确保无法从外界获取。

答案 7 :(得分:0)

使用Magento可以轻松复制商店以进行开发。

在版本控制中有代码时,只需按照以下步骤操作:

1)创建备份数据库,将其导出为SQL。 2)运行搜索并替换文件,用stage.yourwebsite.com替换yourwebsite.com 3)将新数据库导入MySQL。

4)将文件从版本控制签出到登台站点文档根目录。 5)修改app / etc / local.xml - 将数据库设置更改为新数据库和用户名/密码。 6)清空var / cache /和var / session文件夹(希望你从未将它们添加到版本控制系统中)。

完成工作。 : - )

答案 8 :(得分:0)

按照此处的说明操作 http://www.magentocommerce.com/wiki/groups/227/moving_magento_to_another_server

并在您的计算机上设置wamp或zend服务器后将生产环境移动到本地计算机。

要做到这一点,你需要在你的登台机器上运行某种本地服务器(不需要是服务器,也可以使用你的笔记本电脑)

用于分段设置:

在临时站点后端的

baseurl和securebaseurl设置,使用“localhost”并保持托管在您自己的计算机上的暂存环境(您可以使用zend服务器或wamp / lamp在您的计算机上运行,​​具体取决于您的操作系统,而不是把整个东西复制到你的登台机器上)