浏览文章

文章信息

Magento2 升级系统版本 | Magento2 upgrade system vesion 14273

前序:由于购买的插件支持Magento版本的问题,我只能将Magento2.2升级到Magento2.3.6,下面就记录一下Magento2的完整升级过程。


重要提示:如果克隆了Magento 2 GitHub存储库,请不要使用此方法进行升级。

请导航到 Magento2 升级之Github克隆的项目升级 | Magento2 Upgrade when code clone from Github 升级。



一、升级准备

(1)环境

所有命令在项目目录下进行

文件系统所有者必须和服务器同组,最好不要用root。所有文件都要属于一个用户和组。

可以用 ls -al /www/html/magento  查看


(2)Magento的cron作业正常运转。


(3)设置DATA_CONVERTER_BATCH_SIZE值

设置时请使用Magento文件系统所有者来执行,避免升级时由于用户组权限问题,读不到这个值。

例如在www用户bash环境下执行:

www@DEV$ export DATA_CONVERTER_BATCH_SIZE=100000

提示:这个是数据转换的每批次批量大小,如果太小,明显在数据量大的情况下数据转移会很慢。

提示:升级完要删掉

www@DEV$ unset DATA_CONVERTER_BATCH_SIZE


(4)检查PHP脚本版本

检测是否支持升级后的Magento支持的PHP版本。

检测PHP内存设置,请先设置到尽量大的内存使用,因为后面的 composer update 会使用大量内存

提示:尽量不要跨大版本升级导致PHP版本不支持,如果需要就写脚本升级。


二、开始升级

(1)开启维护模式

www@DEV$ bin/magento maintenance:enable


(2)备份

备份数据库

备份网站代码

备份composer数据composer.json

www@DEV$ cp composer.json composer.json.bak


(3)升级

非必要:移除不必要的程序,如果是升级专业版,需要删除

www@DEV$ composer remove magento/product-community-edition --no-update

必要:添加要升级的composer源

1、选择前查看有哪些版本

开源:

www@DEV$ composer show magento/product-community-edition 2.3.* --all | grep -m 1 version

专业:

www@DEV$ composer show magento/product-enterprise-edition 2.3.* --all | grep -m 1 versions

2、选择好以后添加源

开源:

www@DEV$ composer require magento/product-community-edition=2.3.6 --no-update

专业:

www@DEV$ composer show magento/product-enterprise-edition 2.3.* --all | grep -m 1 versions

非必要:可以添加附加的程序代码

www@DEV$ composer require --dev allure-framework/allure-phpunit:~1.2.0 friendsofphp/php-cs-fixer:~2.14.0 lusitanian/oauth:~0.8.10 magento/magento-coding-standard:~3.0.0 magento/magento2-functional-testing-framework:2.4.5 pdepend/pdepend:2.5.2 phpmd/phpmd:@stable phpunit/phpunit:~6.5.0 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:~3.4.0 --sort-packages --no-update

非必要:删除不需要的程序包

如果要从2.2.x升级到2.3.x,请使用以下命令删除未使用的软件包。如果要从2.3.x升级,则不需要它

www@DEV$ composer remove --dev sjparkinson/static-review fabpot/php-cs-fixer --no-update

必要:更新目录update

备份update/目录。

创建一个Composer项目。

开源:

www@DEV$ composer create-project --repository=https://repo.magento.com magento/project-community-edition=2.3.6 temp_dir --no-install

专业版:

www@DEV$ composer create-project --repository=https://repo.magento.com magento/project-enterprise-edition=2.3.6 temp_dir --no-install

删除旧update/目录并移至temp_dir/update/该update/目录:

www@DEV$ rm -rf update
www@DEV$ mv temp_dir update
www@DEV$ rm -rf temp_dir

必要:重新构建setup目录以及app目录覆盖

www@DEV$ mkdir Magento236
www@DEV$ cd Magento236
www@DEV$ composer create-project --repository=https://repo.magento.com magento/project-community-edition=2.3.6 ./
www@DEV$ rm -rf ../setup
www@DEV$ cp -rf setup ../
www@DEV$ cp -rf app ../
www@DEV$ cp -rf update ../
www@DEV$ cd ../
www@DEV$ rm -rf Magento236


3、升级

www@DEV$ composer update

4、清理旧内容

www@DEV$ rm -rf var/cache/*
www@DEV$ rm -rf var/page_cache/*
www@DEV$ rm -rf generated/code/*

有redis缓存的请清除

www@DEV$ su root
root@DEV$ echo flushall | redis-cli
root@DEV$ exit
www@DEV$


5、清理Magento缓存

www@DEV$ bin/magento cache:clean

6、更新数据库架构和数据

www@DEV$ bin/magento setup:upgrade

7、禁用维护模式

www@DEV$ bin/magento maintenance:disable

8、去除变量DATA_CONVERTER_BATCH_SIZE

www@DEV$ unset DATA_CONVERTER_BATCH_SIZE


原创