# 通过命令和composer进行升级和更新

**URL:** https://forum.magentochina.org/t/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E5%92%8Ccomposer%E8%BF%9B%E8%A1%8C%E5%8D%87%E7%BA%A7%E5%92%8C%E6%9B%B4%E6%96%B0/845
**Category:** Magento 2.X
**Tags:** 教程, magento2
**Created:** [2020 年9 月 30 日 06:21 UTC](https://forum.magentochina.org/t/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E5%92%8Ccomposer%E8%BF%9B%E8%A1%8C%E5%8D%87%E7%BA%A7%E5%92%8C%E6%9B%B4%E6%96%B0/845 "2020-09-30T06:21:01Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### 作者： ![Vicky](https://forum.magentochina.org/letter_avatar_proxy/v4/letter/v/b19c9b/32.png) [@Vicky](https://forum.magentochina.org/u/Vicky)
#### 发布日期： [2020 年9 月 30 日 06:21 UTC](https://forum.magentochina.org/t/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E5%92%8Ccomposer%E8%BF%9B%E8%A1%8C%E5%8D%87%E7%BA%A7%E5%92%8C%E6%9B%B4%E6%96%B0/845/1 "2020-09-30T06:21:01Z")

</div>

本文由Mageplaza的专家研究，指导用户使用命令行和 composer 升级 Magento 2 版本，让我们根据教程一步一步的来操作。

### 升级 Magento 2 的步骤：

- 第1步：备份你的店铺

- 第2步：开启维护模式

- 第3步：升级到 Magento 2

- 第4步：检查当前 Magento 2 的版本

### 第1步：备份你的店铺

创建 Magento 2 网站的备份是非常紧急且必要的，如果你的网站有任何的更改或者损坏，你可以通过备份管理保护你的数据不会丢失。

### 第2步：开启维护模式

在升级的时候，需要把你的店铺置于维护模式。启动维护模式：

```auto

php bin/magento maintenance:enable

```

这样将会创建一个新的文件 var/.maintenance.flag 。如果你不能禁用维护模式，你可以移除此文件（切记！）

### 第3步：升级到 Magento 2

本次举例，我要升级到 Magento 2.2.1 版本，可以去官方下载页面或者 Github releases 查看最新版本。

#### 3.1 下载安装包

首先，在终端/命令提示符（ terminal/command-prompt） 使用以下命令：

```auto

composer require magento/product-community-edition 2.2.1 --no-update composer update

```

你可能需要用户名和密码来生成公钥/私钥对，如下图：  
 ![image](https://forum.magentochina.org/uploads/default/original/1X/c8eba9b7dac2e04ee86ca652550025a065c1510f.png)

#### 3.2 刷新缓存

现在删除 cache 和 generation，在根目录打开命令行中使用以下命令：

```auto

rm -rf var/cache/* rm -rf var/page_cache/* rm -rf var/generation/*

```

#### 注意：如果你安装了 Memcached，Redis 等缓存软件，你需要手动刷新缓存。

#### 3.3 执行 Magento 升级

升级模块和数据库

```auto

php bin/magento setup:upgrade

```

#### 编译，重建索引

你应该在升级后执行编译和重建索引来获得更好的性能。

```auto

php bin/magento setup:di:compile php bin/magento indexer:reindex

```

#### 注意：在 Ubuntu/Debian Linux 中，当你遇到权限问题，记得在每个命令之前加 sudo ，例如：sudo composer update。

#### 3.5 禁用维护模式

你必须在第2步打开维护模式，现在你必须要关闭，执行以下命令来关闭它：

```auto

php bin/magento maintenance:disable

```

### 第4步：检查当前的 Magento 2 版本

接下来，运行以下命令查看 Magento 2 当前版本

```auto

php bin/magento --version

```

如果你的操作系统报缓存写入错误，你需要使用以下命令修改 pub 和 var 目录的权限：

```auto

chmod -R 777 pub var

```

### 常见问题

问：升级后我无法访问前端？

您可能会收到以下消息： We’re sorry, an error has occurred while generating this email.

回答：

那是因为Web服务器的读写权限。运行以下命令来解决该问题：

```auto

find var vendor pub/static pub/media app/etc -type f -exec chmod u+w {} \; && find var vendor pub/static pub/media app/etc -type d -exec chmod u+w {} \; && chmod u+x bin/magento

```

再次刷新缓存

```auto

rm -rf var/cache/* rm -rf var/page_cache/* rm -rf var/generation/*

```

## 本教程翻译自Mageplaza模块开发系列，其他内容请点击下面链接:

> [@Magento2模块开发中文教程索引](https://forum.magentochina.org/t/magento2%E6%A8%A1%E5%9D%97%E5%BC%80%E5%8F%91%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B%E7%B4%A2%E5%BC%95/36):
>
> 本文翻译自mageplaza的Magento2模块开发教程,而且正在翻译中. 翻译也是非常好的学习方式，希望下列表中还有我们没有翻译，而你又想分享的内容,请发表文章之后，在下面附上地址。 如果觉得本站翻译得内容对您有帮助，又没有时间帮助翻译回馈社区.请打赏我们，您的支持是我们的动力: 转载说明:非常欢迎转载，但是必须保证文章的完整性并附上原文地址和翻译原文的地址，保证阅读者不会产生歧义. 目录索引: 索 引 中 文 原 文 1 [Magento2如何创建模块](https://forum.magentochina.org/t/Magento-2%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E6%A8%A1%E5%9D%97%E6%95%99%E7%A8%8B/38)[How to Create Module in Magento 2](https://www.mageplaza.com/kb/how-create-hello-world-module-magento-2.html) 2 [控制器详解](https://forum.magentochina.org/t/Magento-2%E6%8E%A7%E5%88%B6%E5%99%A8%E8%AF%A6%E8%A7%A3%E6%95%99%E7%A8%8B/39)[Create Controllers](https://www.mageplaza.com/magento-2-module-development/how-to-create-controllers-magento-2.html) 3 [CRUD 模型](https://forum.magentochina.org/t/Magento2-CRUD%E6%A8%A1%E5%9E%8B%E8%B5%84%E6%BA%90%E9%9B%86%E5%90%88%E5%B7%A5%E5%8E%82%E5%AF%B9%E8%B1%A1%E8%AF%A6%E8%A7%A3%E6%95%99%E7%A8%8B/43)[CRUD Models](https://www.mageplaza.com/magento-2-module-development/how-to-create-crud-model-magento-2.html) 4 [视图层:块,布局和模板](https://forum.magentochina.org/t/%E8%A7%86%E5%9B%BE%E5%B1%82%E5%9D%97%E5%B8%83%E5%B1%80%E5%92%8C%E6%A8%A1%E6%9D%BF%E6%A8%A1%E6%9D%BF%E6%95%99%E7%A8%8B/50/1)[View: Block, Layouts and templates](https://www.mageplaza.com/magento-2-module-development/view-block-layout-template-magento-2.html) 5 [配置system.xml](https://forum.magentochina.org/t/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6systemxml/55)[Configuration - System.xm…](https://www.mageplaza.com/magento-2-module-development/create-system-xml-configuration-magento-2.html)

---

_[View the full topic](https://forum.magentochina.org/t/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E5%92%8Ccomposer%E8%BF%9B%E8%A1%8C%E5%8D%87%E7%BA%A7%E5%92%8C%E6%9B%B4%E6%96%B0/845)._
