跳转至

Magento 开源电子商务系统

本文档由长沙零栈网络科技有限公司提供,用于指导用户使用 Magento 镜像, Magento (麦进斗) 是一套专业开源的电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。其面向企业级应用,可处理各方面的需求,以及建设一个多种用途和适用面的电子商务网站。 包括购物、航运、产品评论等等,充分利用开源的特性,提供代码库的开发,非常规范的标准,易于与第三方应用系统无缝集成。

Magento-2020-12-06-19-57-38

快速入门

1. 获取一键部署镜像

阿里云
方法一:通过云市场订阅
  1. 选择 magento 镜像
  2. 单击 "立即购买"
方法二: 购买ECS时
  1. 购买ECS创建实例,镜像选择 “云市场镜像”,点击 “从镜像市场获取更多选择(含操作系统)” 搜索 “零栈 magento”
  2. 选择 magento 镜像,点击使用
  3. 继续创建实例
方法三: 已有ECS使用镜像
  1. 登录阿里云控制台
  2. 停止需要使用镜像的实例,点击 “更多” 在 “磁盘和镜像” 中选择 “更换操作系统”,镜像选择 “云市场镜像”,点击“从镜像市场获取更多选择(含操作系统)”搜索 “零栈 magento”
腾讯云
方法一:通过云市场订阅
  1. 选择 magento 镜像
  2. 单击 "立即购买"
方法二: 通过控制台
  1. 登录腾讯云CVM控制台
  2. 新建,新建服务器的时候镜像选择 “镜像市场”,点击 “从镜像市场选择” 搜索 “零栈 magento”
  3. 选择 magento 镜像,点击使用
  4. 继续创建实例
方法三: 已有 CVM 使用镜像
  1. 请先在店铺中搜索并选择 magento,复制镜像全称
  2. 登录腾讯云CVM控制台
  3. 选择需要使用镜像的实例点击 “更多” > “重装系统” > “镜像来源” 中选择 “服务市场”,镜像选择对应类型,点击下拉列表搜索之前复制的镜像名称

2. 设置安全组端口

云服务器中,外部访问需要先设置安全组,开启端口。

名称 端口号 协议 源/授权对象
HTTP 80 TCP 0.0.0.0/0
HTTPS 443 TCP 0.0.0.0/0

3. 获取镜像用户账号密码

用户名 密码 数据库名
root <当前服务器实例ID> -
magento <当前服务器实例ID> magento
用户名 密码
admin <当前服务器实例ID>

4. 远程登录服务器(可选)

在本地计算机上远程登录服务器,不同操作系统登录方式可能有所差异,详细参考:如何登录远程服务器?

5. 安装向导

Tip

magento 2.4 版本后官方不再支持 WEB 向导模式安装,镜像开机后需要等待几分钟自动初始化安装,初始化完成后在浏览器中访问服务器公网 IP 即可打开商店首页, magento 后台地址:http://服务器公网IP/admin/

如需使用外部数据库(如云厂商提供的云数据库或者自建其他远程数据库),请参考以下操作

  1. 远程登录服务器
  2. 进入 magento 程序目录
    cd /var/wwwroot/magento/
    
  3. 删除初始化安装生成的 magento 配置文件
    rm -rf app/env.php
    
  4. 根据实际情况修改以下命令行参数后运行
    php bin/magento setup:install \
    --base-url=http://www.xxx.com/ \     # 网站Url
    --db-host=localhost \                # 数据库主机地址
    --db-name=magento \                  # 数据库名称
    --db-user=magento \                  # 管理员用户名字
    --db-password=magento \              # 数据库密码
    --admin-firstname=admin \            # 管理员用户名字
    --admin-lastname=admin \             # 管理员用户姓
    --admin-email=admin@admin.com \      # 管理员电子邮箱
    --admin-user=admin \                 # 管理员用户名
    --admin-password=admin123 \          # 管理员密码
    --language=en_US \                   # 语言
    --currency=USD \                     # 货币
    --timezone=America/Chicago \         # 时区
    --use-rewrites=1                     # 使用伪静态
    
  1. 浏览器上访问服务器公网 IP 或者解析完成的域名, 点击 Agree and Setup Magento 进入下一步 Magento-2020-12-06-19-59-48

  2. 检查环境是否有问题 Magento-2020-12-06-20-00-03

  3. 配置数据库连接信息 Magento-2020-12-06-20-00-23

  4. 设置访问地址和后台地址 Magento-2020-12-06-20-00-38

  5. 设置区域时间和语言 Magento-2020-12-06-20-01-01

  6. 设置管理员账号 Magento-2020-12-06-20-02-11

  7. 安装中..(等待几分钟) Magento-2020-12-06-20-02-36

  8. 安装成功 Magento-2020-12-06-20-02-57

组件

  • Magento 目录: /var/wwwroot/magento
  • Magento 配置文件 /var/wwwroot/magento/app/env.php

系统包管理安装

组件 功能 参考
Apache/Nginx Web 应用服务器 Apache(LAMP) /Nginx(LNMP)
MySQL 数据库服务器 MySQL
Redis 数据库、缓存服务器 Redis
PHP-FPM PHP FastCGI 管理器 PHP

其他内置软件包

组件 功能 参考
phpMyAdmin MySQL数据库 Web 管理工具 phpMyAdmin
Certbot 自动生成部署 LetsEncrypt 证书 Certbot

如何访问已安装的其他软件

访问 phpMyAdmin

浏览器中访问 http://服务器公网IP/phpmyadmin/

phpMyAdmin 和 MySQL 共享用户名和密码

可选设置

启用 HTTPS

设置 SSL 证书可以在 Web 服务器上启用 HTTPS,从而保护服务器与浏览器之间的流量。

Certbot 是一种在服务器上自动配置免费 SSL 证书的办法

1. 注册域名

需要使用 Certbot,你需要注册域名和解析域名:

  • 将域名(例如:example.com)添加一条 A 记录到服务器公网 IP
  • 将域名(例如:www.example.com)添加一条 A 记录到服务器公网 IP

2. 将域名绑定

编辑虚拟主机配置文件(参考:Apache(LAMP) /Nginx(LNMP)

3. Certbot

运行以下命令自动生成配置 SSL 证书,根据提示操作即可完成域名自动配置

certbot

4. 证书自动续订

建议运行以下命令,将默认使用 crontab 添加计划任务(镜像以配置可跳过)

echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

上传文件

您可以使用SFTP或其他支持SFTP协议的工具将文件上传到服务器,我们推荐使用 WinSCP

卸载演示数据

如需要删除演示数据,远程登陆服务器在 /var/wwwroot/magento/ 目录下执行以下命令:

php bin/magento sampledata:remove

magento 配置 Redis 缓存

Tip

使用远程 Redis 或者 云服务商提供的 Redis,参考命令修改主机地址、端口、密码、数据库名等信息

远程登录服务器在 /var/wwwroot/magento/ 目录下执行以下命令:

1. 配置后端使用 Redis 缓存

php bin/magento setup:config:set \
--cache-backend=redis \
--cache-backend-redis-server=127.0.0.1 \          # redis 主机地址
--cache-backend-redis-port=6379  \                # redis 主机端口(可选)
--cache-backend-redis-db=0 \                      # redis 数据库编号,建议默认缓存数据库编号分配给 0
--cache-backend-redis-password=redis_password \   # redis 密码(可选)

2. 配置页面使用 Redis 缓存

php bin/magento setup:config:set \
--page-cache=redis \
--page-cache-redis-server=127.0.0.1 \            # redis 主机地址
--page-cache-redis-port=6379  \                  # redis 主机端口(可选)
--page-cache-redis-db=1 \                        # redis 数据库编号,建议页面缓存数据库编号分配给 1
--page-cache-redis-password=redis_password \     # redis 密码(可选)

3. 配置会话存储(session storage)使用 Redis

php bin/magento setup:config:set \
--session-save=redis \
--session-save-redis-host=127.0.0.1 \            # redis 主机地址
--session-save-redis-port=6379  \                # redis 主机端口(可选)
--session-save-redis-db=2    \                   # redis 数据库编号,建议会话存储缓存数据库编号分配给 2
--session-save-redis-password=redis_password \   # redis 密码(可选)
--session-save-redis-log-level=4                 # 会话日志级别

详细请参考:

Use Redis for the Magento page and default cache

Use Redis for session storage

magento 配置 SMTP

1. 安装 SMTP 扩展

远程登录服务器在 /var/wwwroot/magento/ 目录下执行以下命令:

composer require mageplaza/module-smtp
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

2. 启用 STMP

登录到 Magento 管理面板,转到Mageplaza > SMTP > Configuration > General Configuration

配置 "Enable Mageplaza SMTP" 为 YES

Magento-2021-01-19-14-47-58

3. 配置 SMTP

在常规配置区域,向下滚动找到 "SMTP Configuration Options" Magento-2021-01-19-14-49-59

详细参考: SMTP Configuration Options

常见问题

magento 如何关闭 TwoFactor Auth(双因素认证)?

远程登录服务器在 /var/wwwroot/magento/ 目录下执行以下命令:

php bin/magento module:disable Magento_TwoFactorAuth

如何重置 magento 密码?

远程登录服务器在 /var/wwwroot/magento/ 目录下执行以下命令:

php bin/magento admin:user:create \
--admin-user="admin" \
--admin-password="new_password" \
--admin-email="admin@admin.com" \
--admin-firstname="Admin" \
--admin-lastname="Admin"