5

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

Magento可以做到这一点吗,默认情况下似乎没有办法做到这一点?

4

9 回答 9

12

有很多方法,不需要额外扩展的最简单的方法之一是

-> 创建

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

并且不要版本控制 local.xml

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

于 2012-01-25T23:00:14.683 回答
6

汤姆,

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

于 2011-02-09T17:21:23.170 回答
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
  • 生产.setup.sql
  • 暂存.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:

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 是什么。很简单,只需要在数据库上做这样的查询:

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

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

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

祝你好运!

于 2012-09-06T13:08:01.473 回答
1

Magento 分期和制作

于 2011-02-09T23:04:52.603 回答
1

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

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

于 2012-03-07T14:36:02.217 回答
0

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

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

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

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

任务完成。:-)

于 2012-07-16T10:22:26.773 回答
0

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

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

为此,您需要在登台机器上运行某种本地服务器(不需要是服务器,也可以使用您的笔记本电脑)

对于分期设置:

baseurl 和securebaseurl 设置在登台站点的后端,使用“localhost”并将登台环境托管在您自己的机器上(您可以根据您的操作系统使用在您的机器上运行的zend服务器或wamp/lamp来做到这一点,而不是复制整个事情都交给你的登台机器)

于 2012-10-03T14:11:52.357 回答
0

你可以这样做。

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

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

于 2011-02-09T17:18:17.430 回答
0

不确定这是否可能。

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

完成此操作后,请确保它不能从外部世界获得。

于 2011-02-09T17:39:40.550 回答