网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络服务ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络服务ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
文档首页/ 弹性云服务器 ECS/ 最佳实践/ 搭建网站/ 搭建Magento电子商务网站/ 手工搭建Magento电子商务网站(Linux)
更新时间:2025-01-26 GMT+08:00
分享

手工搭建Magento电子商务网站(Linux)

简介

本文主要介绍了如何使用弹性云服务器的Linux实例手工搭建Magento电子商务系统。Magento是一款开源电子商务系统,设计灵活,具有模块化架构体系和丰富的功能,可为大中型站点提供解决方案。Magento采用PHP开发,数据存储使用MySQL。

您还可以选择Solution as Code一键式部署方式自动部署Magento电子商务网站,详细内容请参见基于Magento快速构建电商网站

前提条件

  • 已购买一台弹性云服务器,且已为其绑定弹性公网IP。
  • 弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表1 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    IPv4

    TCP: 22

    允许SSH远程连接Linux弹性云服务器的客户端IP地址。如允许所有IP访问,请设置为0.0.0.0/0,出于安全考虑,不建议您设置为允许所有IP访问。

    入方向

    1

    允许

    IPv4

    TCP: 80

    允许访问Magento网站的客户端IP地址。如允许所有IP访问,请设置为0.0.0.0/0。

    入方向

    1

    允许

    IPv4

    TCP : 3306

    允许远程访问MySQL数据库的客户端IP地址。如允许所有IP访问,请设置为0.0.0.0/0,出于安全考虑,不建议您设置为允许所有IP访问。

资源规划

本次实践所用的资源配置及软件版本如表2中所示。当您使用不同的硬件规格或软件版本时,本指导中的命令及参数可能会发生改变,需要您根据实际情况进行调整。

表2 资源规划

资源

类别

规格/版本

ECS配置

实例规格

c6s.large.2

vCPUs

2vCPUs

内存

4GiB

操作系统

CentOS 7.2

软件资源

Apache

2.4.6

MySQL

5.7

获取方式:

http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

PHP

7.0.33

获取方式:

https://repo.ius.io/ius-release-el7.rpm

https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Composer

1.10.19

获取方式:

https://getcomposer.org/installer

Magento

2.1.0

获取方式:

https://github.com/magento/magento2.git

为保证所搭建网站正常运行,所选的ECS实例规格建议为2GiB及以上。

步骤一:安装配置Apache

  1. 远程登录弹性云服务器,操作方法请参考登录Linux弹性云服务器
  2. 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?
  3. 使用root用户执行以下命令更新软件包,并安装Apache。

    yum -y update
    yum -y install httpd

    如果执行命令过程中报错,提示无法解析域名时,可以在“/etc/resolv.conf”配置文件中增加一个DNS服务器。

  4. 打开Apache配置文件。

    vim /etc/httpd/conf/httpd.conf

    如果没有安装vim,可使用yum install -y vim*命令进行安装。

  5. i键进入编辑模式,修改如下两处内容:

    • 将下图所示位置的配置参数“AllowOverride None ”改为“ AllowOverride all ”:

    • 在配置文件末新增一行配置参数:
      LoadModule rewrite_module modules/mod_rewrite.so

      如下图所示:

  6. Esc键退出编辑模式,并输入:wq保存后退出。
  7. 依次执行以下命令,启动Apache服务并设置开机自启动。

    systemctl start httpd
    systemctl enable httpd

步骤二:安装配置MySQL

  1. 使用root用户执行以下命令添加yum源。

    rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

  2. 安装MySQL。

    yum -y install mysql-community-server --nogpgcheck

  3. 依次执行以下命令,启动MySQL服务并设置开机自启动。

    systemctl start mysqld
    systemctl enable mysqld

  4. 执行以下命令,获取安装MySQL时自动设置的root用户密码。

    grep 'temporary password' /var/log/mysqld.log
    回显如下类似信息,其中“(n?K7jP#cirM”即为临时密码。
    2019-05-09T11:29:42.365419Z 1 [Note] A temporary password is generated for root@localhost: (n?K7jP#cirM

  5. 执行以下命令加固MySQL。

    mysql_secure_installation

    按照回显提示信息进行操作,具体操作如粗体所示:

    Securing the MySQL server deployment.
    
    Enter password for user root:    #输入上一步骤中获取的安装MySQL时自动设置的root用户密码
    The existing password for the user account root has expired. Please set a new password.
    
    New password:                    #设置root用户密码
    
    Re-enter new password:           #再次输入密码
    The 'validate_password' plugin is installed on the server.
    The subsequent steps will run with the existing configuration of the plugin.
    Using existing password for root.
    
    Estimated strength of the password: 100
    Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y   #是否更改root用户密码,输入Y
    
    New password:    #输入密码,长度为8至30个字符,须同时包含大小写英文字母、数字和特殊符号。特殊符号可以是()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
    Re-enter new password:    #再次输入密码
    Estimated strength of the password: 100
    Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y    #输入Y
    By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
    
    Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y   #是否删除匿名用户,输入Y
    Success.
    
    Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.
    
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y   #禁止root远程登录,输入Y
    Success.
    
    By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
    
    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y   #是否删除test库和对它的访问权限,输入Y
     - Dropping test database...
    Success.
    
     - Removing privileges on test database...
    Success.
    
    Reloading the privilege tables will ensure that all changes
    made so far will take effect immediately.
    
    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y   #是否重新加载授权表,输入Y
    Success.
    
    All done!

  6. 以root用户登录MySQL数据库。

    mysql -u root -p

  7. 创建一个新的数据库,其中“magento”为自定义的数据库名称。

    CREATE DATABASE magento;

  8. 执行以下命令,为数据库创建用户并为用户分配数据库的完全访问权限。

    GRANT ALL ON magento.* TO magentouser@localhost IDENTIFIED BY 'xxxxx';

    其中,“magento”为上一步骤中创建的数据库名,“magentouser”为新建的数据库用户名,“xxxxx”为对应的账户密码,可以自行设置。

  9. 执行以下命令,退出MySQL命令行。

    exit

  10. (可选)依次执行以下步骤,验证数据库和用户是否已成功创建,并退出MySQL命令行。

    1. 以新建的数据库用户“magentouser”登录MySQL命令行。
      mysql -u magentouser -p
    2. 查看数据库。
      SHOW DATABASES;

      回显如下,“magento”即为新建的数据库,说明数据库已成功创建。

      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | magento            |
      +--------------------+
      2 rows in set (0.00 sec)
    3. 执行以下命令,退出MySQL命令行。
      exit

步骤三:安装配置PHP

  1. 添加ius源和epel源。

    yum install \
    https://repo.ius.io/ius-release-el7.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

  2. 添加Webtatic源。

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  3. 安装PHP7和用于Magento安装的一些必需的PHP扩展。

    yum -y install php70w php70w-pdo php70w-mysqlnd php70w-opcache php70w-xml php70w-gd php70w-mcrypt php70w-devel php70w-intl php70w-mbstring php70w-bcmath php70w-json php70w-iconv

  4. 执行以下命令,验证PHP的安装版本。

    php -v

    回显如下类似信息:

    PHP 7.0.33 (cli) (built: Dec  6 2018 22:30:44) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
        with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies

  5. 打开PHP配置文件“php.ini”

    vim /etc/php.ini

  6. i键进入编辑模式,修改如下两处内容:

    • 根据实际情况修改参数“memory_limit”的值,设置内存限制,如下图所示:

    • 取消注释并设置参数“date.timezone”的值,指定PHP的时区,如下图所示:

  7. Esc键退出编辑模式,并输入:wq保存后退出。
  8. 执行以下命令,重启Web服务进程。

    systemctl restart httpd

步骤四:安装Composer工具

Composer是PHP编程语言的包管理器,提供管理PHP软件依赖和所需库的标准格式。

  1. 由于Magento2的依赖为Composer1.x版本,所以需确保安装的Composer版本的1.x版本。

    执行以下命令安装指定版本的Composer,并将安装路径指定为“/usr/bin/”以供全局使用。
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php --install-dir=/usr/bin/ --filename=composer --version=1.10.19

    回显如下:

    All settings correct for using Composer
    Downloading... 
    
    Composer (version 1.10.19) successfully installed to: /usr/bin/composer
    Use it: php /usr/bin/composer

  2. 执行以下命令,验证Composer否成功安装。

    composer -v

    回显如下:

       ______
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                        /_/
    Composer version 1.10.19 2020-12-04 09:14:16
    ...

步骤五:安装Magento组件

安装Magento时可以选择是否安装示例数据。如果安装Magento仅用于测试,可以选择安装示例数据。如果是在生产环境中安装Magento,建议安装全新的Magento,并从初始进行配置。

  1. 执行以下命令,安装git。

    yum -y install git

  2. 依次执行以下命令,进入Web服务器的默认根目录“/var/www/html/”并使用git下载Magento。

    cd /var/www/html/
    git clone https://github.com/magento/magento2.git

  3. 执行以下命令,将Magento切换到稳定版本。

    默认情况下前一步骤的命令会安装最新开发版本的Magento。在生产环境中使用时,建议切换到稳定版本,否则将来将无法进行升级。

    cd magento2 && git checkout tags/2.1.0 -b 2.1.0

    回显如下类似信息:

    Switched to a new branch '2.1.0'

  4. 执行以下命令,将安装文件移到Web服务器的根目录“/var/www/html/”下,其中“/var/www/html/magento2/”为Magento的当前安装目录。

    shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..

    迁移后可以通过“http://magento服务器的IP地址”访问Magento站点。否则,只能通过“http://magento服务器的IP地址/magento2”访问Magento站点。

  5. 依次执行以下命令,设置Magento文件的权限。

    chown -R apache:apache /var/www/html
    find /var/www/html -type f -print0 | xargs -r0 chmod 640
    find /var/www/html -type d -print0 | xargs -r0 chmod 750
    chmod -R g+w /var/www/html/{pub,var}
    chmod -R g+w /var/www/html/{app/etc,vendor}
    chmod 750 /var/www/html/bin/magento

  6. 安装unzip和zip。

    yum install -y unzip zip

  7. 进入Web服务器的默认根目录“/var/www/html/”,然后使用composer工具安装Magento。

    cd /var/www/html/
    composer install

  8. 安装完成后,可通过浏览器访问“http://magento服务器IP地址”,显示如下页面,说明Magento安装成功。

步骤六:配置Magento

  1. 通过浏览器访问“http://magento服务器IP地址”,单击“Agree and Setup Magento”,开始配置Magento。
  2. 单击“Start Readiness Check”,进行环境检测。检测通过后单击“Next”

  3. 填写步骤二:安装配置MySQL中创建的MySQL数据库账户“magentouser”和密码,以及对应的数据库“magento”,并单击“Next”

    如下图所示:

  4. 设置网站的访问地址和后台管理地址,并单击“Next”

    如下图所示:

    后台管理地址可自定义,请牢记设置的后台管理地址。

  5. 设置语言和时区信息,并单击“Next”

    如下图所示:

  6. 设置管理账号和密码,并单击“Next”

    如下图所示:

  7. 单击“Install Now”,等待系统安装完成。

    显示如下界面时,表示系统安装成功。

  8. 登录Magento服务器,设置cron来运行预定的作业。

    crontab -u apache -e

  9. i键进入编辑模式,添加如下内容。

    */10 * * * * php -c /etc /var/www/html/bin/magento cron:run
    */10 * * * * php -c /etc /var/www/html/update/cron.php
    */10 * * * * php -c /etc /var/www/html/bin/magento setup:cron:run

    Esc键退出编辑模式,并输入:wq保存后退出。

    更多关于Magento使用cron作业的内容,请参见Magento官方文档

  10. 打开客户端的计算机,使用浏览器访问“http://magento服务器IP地址”,显示如下图所示的默认界面。

  11. 使用浏览器访问“http://magento后台管理地址”,并使用配置Magento过程中设置的管理账号和密码登录,登录成功后显示如下图所示的界面。

    如果登录后界面提示“One or more indexers are invalid. Make sure your Magento cron job is running.”的错误信息,可在Magento根目录“/var/www/html”执行php bin/magento indexer:reindex命令。

    更多关于Magento配置信息,请参见Magento官方文档

步骤七:其余操作

  1. 购买域名。

    为了便于网站的访问和使用,可以给网站设置一个单独的域名,使用域名访问网站。您可以在华为云域名注册服务中购买域名,具体步骤请参考域名注册流程

  2. 进行备案。

    如果网站未进行备案,且需要使用华为云进行托管,则需要通过华为云备案系统进行备案。具体操作请参见备案流程

  3. 配置域名解析。

    配置域名解析后才能使用注册的域名访问网站。具体操作请参见配置域名解析

    例如,配置的域名为“www.example.com”,配置成功后,可在浏览器地址栏中输入“http://www.example.com”访问部署的网站。

相关文档