【ECS生长万物之开源】手动搭建Magento电子商务网站

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: Magento是一款开源电商网站框架,其丰富的模块化架构体系及拓展功能可为大中型站点提供解决方案。Magento使用PHP开发,支持版本范围从PHP 5.6到PHP 7.1,并使用MySQL存储数据。本教程主要介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电子商务网站。

Magento是一款开源电商网站框架,其丰富的模块化架构体系及拓展功能可为大中型站点提供解决方案。Magento使用PHP开发,支持版本范围从PHP 5.6到PHP 7.1,并使用MySQL存储数据。本教程主要介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电子商务网站。

前提条件

  • 已注册阿里云账号。如还未注册,请先完成账号注册
  • 已完成实名认证。如还未认证,请先完成实名认证
  • 已在ECS实例安全组的入方向已添加规则并放行端口80和3306。具体操作,请参见添加安全组规则

说明: 大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfigifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法访问Magento网站,请重新确认其公网IP地址。

规则方向 授权策略 协议类型 端口范围 授权类型 授权对象
入方向 允许 HTTP(80) 80/80 IPv4地址段访问 所有要访问Magento站点的客户端公网IP地址,多个地址之间用逗号隔开。

允许所有客户端访问时,授权对象为0.0.0.0/0。

入方向 允许 MySQL(3306) 3306/3306 IPv4地址段访问 所有要访问MySQL数据库服务的客户端公网IP地址,多个地址之间用逗号隔开。

允许所有客户端访问时,授权对象为0.0.0.0/0。

背景信息

本教程使用的ECS实例硬件配置如下:

  • 实例规格:ecs.c6.large
  • 操作系统:公共镜像CentOS 7.2 64位
  • CPU:2 vCPU
  • 内存:4 GiB
  • 网络类型:VPC
  • IP地址:公网IP

说明: 搭建Magento服务器,所选实例规格内存不能小于2GiB。

示例步骤使用以下软件版本:

  • Apache:2.4.6
  • MySQL:5.7
  • PHP:7.0
  • Composer:1.8.5
  • Magento:2.1

当您使用不同软件版本时,可能需要根据实际情况调整命令和参数配置。

操作流程

在阿里云ECS实例上搭建Magento电子商务网站的操作流程如下:

  • 步骤一:安装并配置Apache
  • 步骤二:安装并配置MySQL
  • 步骤三:安装并配置PHP
  • 步骤四:创建Magento数据库
  • 步骤五:安装并配置Composer
  • 步骤六:安装配置Magento
  • 步骤七:配置Magento客户端
  • 步骤八:添加cron作业

步骤一:安装并配置Apache

1.安装Apache。

a.运行以下命令安装Apache。

yum install httpd -y

b.运行以下命令查看Apache是否安装成功。

httpd -v

  返回结果如下图所示,表示安装成功。

2.配置Apache。

a.运行以下命令打开Apache配置文件。

vim /etc/httpd/conf/httpd.conf

b.在Include conf.modules.d/*.conf的下一行,添加LoadModule rewrite_module modules/mod_rewrite.so。具体步骤如下:

i)移动光标到Include conf.modules.d/*.conf下一行的行首。

ii)按下i键进入编辑模式。

iii)输入LoadModule rewrite_module modules/mod_rewrite.so

添加后的内容,如下图所示。

c.将下列内容中的AllowOverride None更改为AllowOverride All

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#在行首添加#注释掉本行内容
#AllowOverride None
#添加下列内容
AllowOverride All

修改后的内容,如下图所示。

d.按下Esc键后,输入:wq并回车以保存并关闭配置文件。

3.运行以下命令启动Apache服务。

systemctl start httpd

4.运行以下命令添加Apache服务开机自启动。

systemctl enable httpd

步骤二:安装并配置MySQL

1.安装MySQL。

a.运行以下命令添加MySQL YUM源。

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

b.运行以下命令安装MySQL。

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

2.运行以下命令启动MySQL服务。

systemctl start mysqld

3.运行以下命令设置MySQL服务开机自启动。

systemctl enable mysqld

4.配置MySQL。

a.运行以下命令查看/var/log/mysqld.log文件,获取并记录root用户的初始密码。

grep 'temporary password' /var/log/mysqld.log

  命令的返回结果如下:

2016-12-13T14:57:47.535748Z 1 [Note] A temporary password is generated for root@localhost: p0/G28g>lsHD


说明: 下一步重置root用户密码时,会使用该初始密码。

b.运行下列命令配置MySQL的安全性。

mysql_secure_installation

  安全性的配置包含以下五个方面:

i)设置root账号密码。

Enter password for user root: #输入上一步中获取的root用户密码
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

ii)输入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.

iii)输入Y禁止root账号远程登录。

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #禁止root远程登录,输入Y
Success.

iv)输入Y删除test库以及对test库的访问权限。

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #是否删除test库和对它的访问权限,输入Y
- Dropping test database...
Success.

v)输入Y重新加载授权表。

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否重新加载授权表,输入Y
Success.
All done!

更多详情,请参见MySQL文档

步骤三:安装并配置PHP

1.安装PHP。

a.运行以下命令添加ius源。

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

b.运行以下命令添加Webtatic源。

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

c.运行以下命令安装PHP7及所需扩展。

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

d.运行以下命令查看PHP版本。

php -v

  返回结果如下所示,说明PHP安装成功。

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

2.配置PHP。

a.运行以下命令打开PHP配置文件。

vim /etc/php.ini

b.移动光标至最后一行的行尾。具体操作步骤如下:

i)输入:$并回车,光标将移动至文件最后一行。

ii)按下$移动光标至行尾。

c.按下i键进入编辑模式。

d.在文件最后添加关于内存限制和时区的配置。

; 允许为PHP脚本分配的最大内存值。您可根据实际情况增加或减少内存限制
memory_limit = 1024M
; 设置时区为上海
date.timezone = Asia/Shanghai

  添加后如下图所示。

e.按下Esc键后,输入:wq并回车以保存并关闭文件。

f.重启Apache服务。

systemctl restart httpd

步骤四:创建Magento数据库

1.运行以下命令使用root用户和密码登录MySQL。

mysql -u root -p

2.运行以下命令创建magento数据库。

mysql> CREATE DATABASE magento; #根据实际情况将magento替换为您需要创建的数据库名称

3.依次运行以下命令为magento数据库创建用户。

mysql> GRANT ALL ON magento.* TO <YourUser>@localhost IDENTIFIED BY '<YourPass>'; #替换<YourUser>和<YourPass>为您需要创建的账号和密码
mysql> FLUSH PRIVILEGES;

  例如,创建账号为magentoUser、密码为magentoUser1@3的用户,运行的命令为:

mysql> GRANT ALL ON magento.* TO magentoUser@localhost IDENTIFIED BY 'magentoUser1@3';
mysql> FLUSH PRIVILEGES;

4.输入exit并回车以退出MySQL。

5.可选:验证新建的Magento数据库和用户是否可用。具体步骤如下:

a.运行以下命令使用新建账号和密码登录MySQL。

mysql -u <YourUser> -p   #替换<YourUser>为您创建的账号

b.运行以下命令查看新建的magento数据库。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| magento            |
+--------------------+
2 rows in set (0.00 sec)

c.运行以下命令并回车以退出MySQL。

mysql> exit

步骤五:安装并配置Composer

Composer是PHP的一个依赖管理工具。Composer允许您申明项目所依赖的代码库,并帮您在项目中安装依赖的代码库。

1.运行以下命令安装Composer。

curl -sS https://getcomposer.org/installer | php

2.运行以下命令配置Composer全局使用。

mv /root/composer.phar /usr/bin/composer

3.运行命令composer -v查看Composer版本。返回结果如下,表示Composer安装成功。

/ ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.5 2019-04-09 17:46:47


说明: 因最新版Composer与Magento暂不兼容,所以您需要安装与Magento兼容的Composer版本。你可以使用以下命令来让最新版Composer转换至兼容版本。如Composer 1.8.5版本。

composer self-update 1.8.5

步骤六:安装配置Magento

您可以使用不同的方法安装Magento,可以选择是否安装示例数据。

  • 如果安装Magento仅用于测试,您可以选择安装示例数据。
  • 如果安装Magento用于生产环境,建议您安装全新的Magento,从头开始配置。

本教程介绍使用Git下载Magento,并使用Composer安装Magento的操作步骤。

1.下载Magento。

a.运行以下命令安装Git。

yum -y install git

b.进入Web服务器的默认根目录。

cd /var/www/html/

c.下载Magento。

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

2.可选:运行以下命令将Magento切换到稳定版本。

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

  命令执行后的结果如下:

Switched to a new branch '2.1.0'


  说明: 默认情况下,Git下载安装的Magento是最新的开发版本。如果您在生产环境中使用,建议切换到稳定版本,否则未来将无法升级安装。

3.运行以下命令将安装文件移到Web服务器根目录下。

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


  说明: 运行此命令后,您可以通过https://<ECS实例公网IP地址>访问您的Magento站点。否则,您只能通过https://<ECS实例公网IP地址>/magento2访问。

4.依次运行下列命令为Magento文件设置适当的权限。

chown -R :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

5.运行命令composer install安装Magento。

步骤七:配置Magento客户端

1.打开浏览器。

2.在浏览器地址栏中,输入http://<ECS实例公网IP地址>出现如下图所示页面,表示Magento安装成功。


3.单击Agree and Setup Magento开始配置Magento。具体步骤如下:

a.准备性检查。

i)单击Start Readiness Check

ii)检查完成后,单击Next

b.添加数据库。

i)输入之前创建的数据库用户的账号和密码。本教程中创建的示例用户账号为magentoUser、密码为magentoUser1@3

ii)输入之前创建的数据库的名字。本教程中创建的示例数据库名字为magento

iii)单击Next

c.填写Web访问设置,并单击Next

d.填写定制商店,并单击Next

e.填写管理员账号信息,并单击Next

f.单击Install Now进行安装。

出现如下图所示界面,表示Magento配置完成。

步骤八:添加cron作业

完成以下操作,添加cron作业:

1.运行crontab -u apache -e设置cron运行调度工作。

2.按下i键进入编辑模式。

3.输入下列配置信息。

*/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

4.按下Esc键后,输入:wq并回车以保存并退出。

Magento上使用cron作业的更多详情,请参见Magento官方文档

常见问题

输入http://<ECS实例公网IP地址>/admin登录Magento后台,如果界面提示“One or more indexers are invalid. Make sure your Magento cron job is running.”的错误信息,请参考以下步骤解决问题。

1.远程连接Magento服务器。具体操作,请参见连接方式概述

2.运行以下命令,将PHP的安装路径建立软连接至/usr/sbin/php目录下。

ln -s /usr/local/php/bin/php /usr/sbin/php

3.运行以下命令,刷新索引。

cd /var/www/html
php bin/magento indexer:reindex

  回显信息类似如下所示,表示索引已刷新成功。

[root@iZbp1h2mquu8nb0jz99**** wwwroot]# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:00
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00

4.刷新页面后,单击Cache Management

5.选中状态为INVALIDATEDCache Types,并单击Submit当出现类似如下返回信息时,表示问题已经解决。

后续步骤

  • 访问http://<ECS实例公网IP地址>可以看到如下图所示的默认主页。
  • 访问http://<ECS实例公网IP地址>/admin,输入您在安装过程中设置的用户名和密码,成功登录管理面板后可看到如下界面。

相关文档

Magento官方文档

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
1天前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**
|
27天前
|
弹性计算 应用服务中间件 Shell
利用阿里云ECS搭建企业网站的教程
在本教程中,我们将指导如何使用阿里云ECS搭建企业网站。步骤包括:1) 注册阿里云账号并购买ECS实例,选择适当配置;2) 配置安全组,开放必要端口;3) 通过SSH连接ECS,更新系统并安装Nginx;4) 上传网站文件,配置Nginx服务器;5) 绑定域名并配置HTTPS证书。按照这些步骤,你的企业网站将在阿里云ECS上安全运行。
109 1
|
1月前
|
存储 弹性计算 固态存储
*PolarDB-PG开源版本 基于ECS+ESSD云盘共享存储的部署测评**
PolarDB-PG在阿里云ECS与ESSD云盘的组合下展现优秀性能,简化部署流程,提供高并发写入时低延迟稳定性。ESSD的高性能IOPS和读取速度优化了数据库表现,只读节点实现近乎实时数据访问。分布式部署保证高可用性,即使面对故障也能快速切换。尽管ESSD初期成本较高,但长期看能降低总体拥有成本,尤其适合高并发、大数据量场景。此解决方案平衡了性能、可用性和成本,是企业级应用的理想选择。
|
1月前
|
测试技术 PyTorch 算法框架/工具
魔搭开源推理引擎 DashInfer,助力CPU服务器解锁大模型超强推理
ModelScope推出了预训练大语言模型(LLM)推理引擎DashInfer,采用C++ Runtime编写,提供C++和Python语言接口,具有生产级别的高性能表现,适用于多种CPU架构,包括x86和ARMv9。DashInfer支持连续批处理(Continuous Batching)和多NUMA推理(NUMA-Aware),能够充分利用服务器级CPU的算力,为推理14B及以下的LLM模型提供更多的硬件选择。该项工作已开源。
|
1月前
|
安全 定位技术
外贸网站如何选择服务器
以上就是选择外贸网站服务器时需要考虑的一些关键因素。
72 8
|
1月前
外贸网站服务器该如何选择?别再踩雷了
以上因素都应在选择外贸网站服务器时考虑。在选择服务器时,不要只看价格,要全面考虑,避免踩雷。
55 0
|
3天前
|
存储 弹性计算 Linux
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
本文为大家介绍新手用户从注册阿里云账号,完成实名认证,然后试用云服务器和购买云服务器的主要流程,适合初次购买和试用阿里云服务器的新手用户参考。
阿里云账号注册、完成实名认证、试用云服务器和购买云服务器流程参考
|
1天前
|
弹性计算
阿里云ECS的使用心得
本文主要讲述了我是如何了解到ECS,使用ECS的一些经验,以及自己的感悟心得
|
5天前
|
弹性计算
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。

热门文章

最新文章

相关产品

  • 云服务器 ECS