Magento从1.7升级到1.9


43

我需要将Magento商店从1.7升级到1.9。我是Magento,SSH和MySQL的新手。我只是想知道在不破坏我的网站的情况下最简单的升级方法是什么。


2
Praful写的太短了。扩展名,主题,主题中缺少的部分(尤其是1.8版中的所有form_keys)都可能存在很多问题。真的,如果您不了解自己的工具,请非常小心,不要尝试您的实时环境!
Fabian Blechschmidt,2014年

我通过cpannel(称为:senore.com/ecommerce)对我的网站进行了克隆,然后升级了克隆站点,升级工作正常(在后台说现在是1.9.0.1版),但是当我打开原始文件时网站(senore.com)没有任何链接可以正常工作,只是说404错误,我必须添加“ /电子商务”才能查看任何页面。知道为什么吗?
亚当·艾伦

嗨,亚当,您好,我想您也没有创建数据库的克隆。同样,您需要在旧数据库上运行原始网站,在新创建的数据库上运行新的magento 1.9。所以,这两个网站同时工作
Praful小号扎鲁

几乎25,000次观看,只有4票赞成!!!?!!?!?!?!??
SR_Magento 2015年

老实说,聘请专业的Magento升级服务提供商(例如magecomp.com/magento-upgrade-service.html)
Gaurav Jain

Answers:


50

从1.7升级CE 1.9.0.1的路线图

  1. 备份当前数据库和当前1.7代码。在1.7代码文件夹中放置maintenance.flag文件,以使网站脱机。
  2. http://www.magentocommerce.com/download下载最新的magento
  3. 从1.7代码中删除所有文件夹和文件maintenance.flag(但您应该在某处进行备份),然后从1.9 代码中删除所有文件夹和文件。
  4. 现在从1.7合并以下自定义文件夹到1.9
    • 社区 app/code/community
    • 本地 app/code/local
    • 媒体
    • 您的主题或套餐(app/design/frontend/default/<your theme>app/design/frontend/<your package>
    • 皮肤中的自定义文件夹(用于adminhtml和前端)。
    • 将您的自定义xml文件从复制app/etc/modules/到当前app/etc/modules/
    • 来自的任何自定义管理主题文件夹adminhtml/default/yourtheme
    • 将您的自定义文件夹从adminhtml/default/default/(1.7)复制到adminhtml / default / default /(1.9)。
    • 自定义js文件(如果有)app/js/
  5. 现在转到app/etc/local.xml.edit数据库详细信息。输入您的数据库用户名,密码和数据库名称。
  6. 删除maintenance.flag文件并在浏览器中检查站点。完成了。

2
不要忘记旧版本的加密密钥。将站点升级到新安装时,请确保使用相同的加密密钥
Mohamed23gharbi,2015年

这种方法对我来说效果很好。但是,某些扩展程序可能需要重新安装。
yldziner 2015年

12
我会说这不是一个完整的指南。在某些特定情况下,它可以工作,但是例如,如果您的自定义主题更改了登录页面-您的客户将不再能够登录。请参阅:stackoverflow.com/questions/20565688/… 另外,提到maintenance.flag时建议可以现场直播。绝对不要在实际环境中升级Magento。总是先对开发人员/舞台进行测试,以发现像我提到的情况那样的情况,因为还有很多事情可能出错。
2015年

1
另外,不要忘记将formkeys添加到新模板中,否则您将无法使用任何表单。有关更多信息,请参见stackoverflow.com/a/20702053/564338
丹尼尔·韦斯特


7

首先,创建与当前magento 1.7相同的数据库。然后从http://www.magentocommerce.com/download下载magento 1.9.0.1

现在运行magento 1.9的安装并选择旧网站的数据库(magento 1.7.0.2)

现在,您可以将主题和外观从旧版本升级到新版本。然后在逐一检查第三方扩展从旧到新。我做到了,它将为我工作。


4

使用SSH或命令行的Magento 1.x升级说明:

1)转到您的Magento根目录

cd /path/to/your/magento/folder

2)为您的Magento网站启用维护模式

为此,您必须maintenance.flag在Magento根目录中创建一个名为空文件。

touch maintenance.flag

3)清除缓存和会话

rm -rf var/cache/* var/session/*

4)检查编译,如果启用则禁用

检查编译器状态

php -f shell/compiler.php -- state

如果Compiler Status为,Disabled则可以跳过此步骤,然后继续进行下一步。

如果Compiler Status是,Enabled则必须使用以下命令将其禁用:

php -f shell/compiler.php -- disable

5)授予所有Magento文件和文件夹的写权限

chmod -R 777 .

6)给550权限法师文件

Mage文件是一个shell脚本文件。拥有550许可,我们仅使文件不可写+只能由用户和组读取和执行。

chmod 550 ./mage

7)将配置设置更改为稳定

./mage config-set preferred_state stable

8)升级Magento

您可以使用以下命令列出所有已安装的软件包:

./mage list-installed

您可以使用以下命令列出所有可升级的软件包:

./mage list-upgrades

以下命令将升级所有软件包:

./mage upgrade-all --force

完成升级将需要一些时间。

9)重新编制索引数据

完成升级后,我们应该为所有数据重新编制索引。

php shell/indexer.php reindexall

10)然后,再次清除缓存和会话。

rm -rf var/cache/* var/session/*

11)仅在升级之前启用编译时才启用编译

检查上面的步骤4)。

如果在步骤4)中未启用“编译”,则可以跳过此步骤,然后转到下一步。

如果为您的网站启用了编译功能,而您在步骤4)中已将其禁用,则必须使用以下命令将其启用:

php -f shell/compiler.php -- enable

12)更改文件权限

升级之前,我们已将所有文件和文件夹的权限更改为777。您还应该对Magento网站的所有文件和文件夹赋予适当的权限。

将文件权限转换为644,将文件夹权限转换为755

find . -type f -exec chmod 644 {} \; && find . -type d -exec chmod 755 {} \;

授予读写完全权限,即var和media文件夹为777。

chmod -R 777 var media

授予550权限以使用Mage Shell脚本文件

chmod 550 ./mage

13)检查已安装的软件包版本

检查已安装软件包的版本。这些软件包应该显示最新版本,因为它们已经被升级。

./mage list-installed

14)列出可升级的软件包

列出可升级的软件包(需要升级的软件包)。这应该导致出现一条消息,提示“没有可用的升级,因为所有软件包都已升级到最新版本。

./mage list-upgrades

15)禁用维护模式以使站点处于活动状态

rm -f maintenance.flag

这将删除文件maintenance.flag,然后该站点将再次启用。

现在,您可以登录Magento管理员,并在页脚部分看到显示的Magento版本。它应该显示最新的版本号。

来源:Magento 1.x –通过浏览器和命令行更新/升级到最新版本


3
Current Version Magento CE 1.7.0.2

Admin panel -> System -> Magento Connect -> Magento Connect Manager

Check for Upgrades

Mage_All_Latest -> select Upgrade to 1.9.0.1 

确保需要考虑第三方扩展和本地自定义,进行适当的备份。


17
永远不要使用Magento Connect Manager ...它有很多问题...
Simon

1
同样,在使用Connect升级时,您将不知道它做了哪些修改。
Mohamed23gharbi

1
@Simon(或其他人),您可以澄清您的陈述吗,也许还有消息来源?我进行了从1.7到1.9的测试升级,一切正常。
阿基夫

@Akif只是用谷歌搜索它。例如参见integer-net.com/...magento.stackexchange.com/q/40359/142
西蒙(Simon)

1
@Simon谢谢,我不明白为什么一个人不应该基于第一个链接的参数使用它,考虑到一个人知道他或她在做什么。对于非专业人员,我认为大多数论点都是有效的。我希望这能使您的发言更加清楚,以供将来参考。它应该更像;“除非您知道自己在做什么,否则请不要使用它”。
阿基夫

1

为什么有人不提出真正最简单的方法-正如问题所要求的。

只是去 System >> Configuration >> Connect Manager

并使用密钥 http://connect20.magentocommerce.com/community/mage_all_latest

Magento1 Connect管理器

如果需要特定版本,可以将其下载并作为软件包上传到同一magento连接中

Magento Connect Manager软件包升级


+1这实际上是我更新所有三个单独的Magento安装的方式。如果不是我需要彻底检查和测试所有内容,那么每次更新大约需要20秒。我们从1.7开始,并且很容易(除了1.8的form_keys)已增量更新为1.9.4.0。通过Magento Connect开始更新过程之前,只需清除pkginfo /和var / package目录。
MagentoAaron

0

请按照以下步骤将您的Magento 1.7商店升级到Magento 1.9:

  1. 从系统>工具>编译>禁用进行Magento编译

  2. 从系统>缓存管理>全选>操作:禁用>提交的Magento缓存

  3. 从您的Magento v1.7目录中删除所有文件和文件夹(确保将备份保存在安全的地方),并从Magento v1.9.x软件包中放置所有文件和文件夹。

  4. 打开您喜欢的网络浏览器,转到您的链接。系统将要求您安装新的Magento v1.9.x商店,但请不要担心,请继续操作,以及何时到达“配置”页面。使用与以前的Magento v1.7商店相同的信息来填写它,包括SQL DB Server主机名,SQL DB名称,SQL Server用户名,SQL Server密码,基本URL和管理路径。

  5. 完成安装后,请勿访问前端或后端页面。从您的Magento v1.7文件和文件夹备份中,将以下文件和文件夹复制并合并到新的Magento v1.9.x存储目录中:

    • 社区文件夹:ROOT>应用程序>代码>社区

    • 本地文件夹:ROOT>应用程序>代码>本地

    • 根目录中的媒体文件夹:ROOT>媒体

    • 您的主题文件夹:ROOT>应用程序>设计>前端>默认(程序包名称)>“ your_theme”(如果您为主题使用“默认”程序包,则只需复制主题文件夹,否则您需要复制包括主题的整个程序包夹)

    • 根目录中的皮肤文件夹:“根”>“皮肤”

    • 模块的自定义XML文件:ROOT> app> etc> modules>“ your_custom_XML_files”

    • 管理员主题文件夹:根>应用程序>设计> adminhtml>默认

    • 自定义JS文件夹:ROOT>应用> js

    • 现在,最后从ROOT> var>缓存以及ROOT> var>会话中删除所有内容,以清除所有会话和缓存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.