浏览文章
文章信息
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 versions2、选择好以后添加源
开源:
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 update4、清理旧内容
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:clean6、更新数据库架构和数据
www@DEV$ bin/magento setup:upgrade7、禁用维护模式
www@DEV$ bin/magento maintenance:disable8、去除变量DATA_CONVERTER_BATCH_SIZE
www@DEV$ unset DATA_CONVERTER_BATCH_SIZE