手动搭建Magento电商网站

Magento是一个用PHP编写的开源电子商务平台。它的架构是可扩展和模块化的,使其成为构建大中型网站的绝佳选择。Magento支持从5.6到7.1的PHP版本,并利用MySQL数据库进行数据存储。本文将为您介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电商网站。

先决条件

• 创建阿里云账号。如需创建阿里云账号,请进入注册阿里云页面。

• 在ECS实例的安全组中添加入方向规则,允许80和3306端口的流量。关于如何添加安全组规则,请参考添加安全组规则。

注意:在大多数情况下,客户端位于LAN内,可以将其专用IP地址映射到公共IP地址,以便与外部资源进行通信。因此,ipconfig 或 ifconfig 命令返回的 IP 地址可能不是客户端的实际公网 IP 地址。如果客户端在构建后无法访问Magento网站,请验证客户端的公网IP地址。

规则方向行动协议类型端口范围授权类型授权对象
入境允许HTTP的 (80)80/80IPv4 网段CIDR 块包含需要访问 Magento 网站的所有客户端的公共 IP 地址。网段之间用逗号(,)分隔。
要允许所有客户端访问Magento网站,请指定0.0.0.0/0作为授权对象。
入境允许MySQL数据库 (3306)3306/3306IPv4 网段包含需要访问MySQL数据库服务的所有客户端的公网IP地址的网段。网段之间用逗号(,)分隔。
要允许所有客户端访问Magento网站,请指定0.0.0.0/0作为授权对象。

背景信息

在本文中,我们将使用具有以下配置的 ECS 实例:

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

IP 地址:公网 IP 地址

注意:如果您打算构建 Magento 服务器,则所选实例类型的最小内存必须为 2 GiB。

对于示例过程,使用以下软件版本:

• Apache HTTP 服务器:2.4.6
• MySQL:5.7• PHP:7.0

• 作曲家:1.8.5
• Magento:2.1

如果您使用的是不同的软件版本,则可能需要相应地调整命令和参数设置。

程序

按照以下步骤在阿里云ECS实例上搭建Magento电子商务网站:

• 第 1 步:安装和配置 Apache HTTP 服务器
• 第 2 步:安装和配置 MySQL
• 第 3 步:安装和配置 PHP
• 第 4 步:创建 Magento 数据库
• 第 5 步:安装和配置 Composer
• 第 6 步:安装和配置 Magento• 第 7 步:配置 Magento
客户端
• 第 8 步:添加 cron 作业

步骤 1:安装和配置 Apache HTTP 服务器

1. 安装 Apache。

a) 运行以下命令以安装 Apache:

yum install httpd -y

b) 执行以下命令,查看Apache是否安装成功。

httpd -v

以下命令输出结果表示已安装 Apache。

1

2. 配置 Apache。

a) 执行以下命令,打开Apache的配置文件。

vim /etc/httpd/conf/httpd.conf

b) 在下面添加。LoadModule rewrite_module modules/mod_rewrite.soInclude conf.modules.d/*.conf

执行以下步骤:

i) 将指针移动到该行下方的行首。
ii) 按 i 键进入编辑模式。
iii) 输入 。Include conf.modules.d/*.confLoadModule rewrite_module modules/mod_rewrite.so

添加的内容如下图所示。

2

c) 将以下内容替换为 。AllowOverride NoneAllowOverride 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
#
# Add a number sign (#) at the beginning of the line to comment out this line.
#AllowOverride None
# Add the following content:
AllowOverride All

替换结果如下图所示。

3

d) 按Esc键,输入:wq,然后按Enter键保存并关闭配置文件。

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

systemctl start httpd

4. 运行以下命令,将 Apache 配置为在系统启动时运行:

systemctl enable httpd

步骤 2:安装和配置 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: # Enter the initial password that you obtained in the previous step.
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 # Enter Y to change the password of the root user.
New password: # Enter a new password that is 8 to 30 characters in length. The password must contain uppercase letters, lowercase letters, digits, and special characters. Supported special characters include ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ' < > , . ? /
Re-enter new password: # Enter the new password again.
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  # Enter Y to delete the anonymous user.
Success.

iii) 输入以拒绝 root 用户的远程访问。Y

Disallow root login remotely?(Press y|Y for Yes, any other key for No): Y # Enter Y to deny remote access by the root account.
Success.

iv) 输入以删除测试数据库和对数据库的访问权限。Y

Remove test database and access to it?(Press y|Y for Yes, any other key for No): Y # Enter Y to delete the test database and the access permissions on the database.
- Dropping test database...
Success.

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

Reload privilege tables now?(Press y|Y for Yes, any other key for No): Y # Enter Y to reload privilege tables.
Success.
All done!

有关更多信息,请参阅 MySQL 文档。

第 3 步:安装和配置 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) 输入并按 Enter 键将指针移动到文件的最后一行。:$

ii) 按 将指针移动到行尾。$

c) 按 I 键进入编辑模式。

d) 在文件末尾添加内存限制和时区的配置。

; The maximum memory value allowed for the PHP script. You can increase or decrease the memory limit.
memory_limit = 1024M
; Set the time zone to Shanghai.
date.timezone = Asia/Shanghai

结果如下图所示。

4

e) 按 Esc 键,回车,然后按 Enter 键保存并关闭配置文件。:wq

f) 重新启动 Apache。

systemctl restart httpd

步骤 4:创建 Magento 数据库

1. 执行以下命令,使用root用户的账号和密码登录MySQL。

mysql -u root -p

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

mysql> CREATE DATABASE magento; # Replace magento with the name of database that you want to create.

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

mysql> GRANT ALL ON magento.* TO <YourUser>@localhost IDENTIFIED BY '<YourPass>'; # Replace <YourUser> with the account that you want to create and <YourPass> with the password that you want to set.
mysql> FLUSH PRIVILEGES;

例如,若要创建名为 的帐户并将其密码设置为 ,请运行以下命令:magentoUsermagentoUser1@3

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

4. 输入exit,然后按Enter键退出MySQL。

5.可选:检查新的Magento数据库和用户帐户是否可用。执行以下步骤:

a) 执行以下命令,使用新账号和密码登录MySQL。

mysql -u <YourUser> -p   # Replace <YourUser> with the account that you created.

b) 运行以下命令以查看新的 magento 数据库:

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

c) 运行以下命令,然后按Enter键退出MySQL:

mysql> exit

步骤 5:安装和配置 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版本转换为兼容Magento的版本,例如Composer 1.8.5。

composer self-update 1.8.5

步骤6:安装和配置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 版本。如果您在生产环境中使用Magento,建议您将Magento切换到稳定版本。否则,将来升级和安装Magento时可能会出现问题。

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

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

注意:运行此命令后,可以使用 访问Magento网站。否则,您只能使用 .https://<ECS Public IP address>https://<ECS Public IP address>/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. 运行命令以安装 Magento。composer install

步骤 7:配置 Magento 客户端

1. 打开浏览器。

2. 在浏览器地址栏中,输入 。以下页面指示已安装Magento。http://<ECS Public IP address>

5

3. 单击“同意并设置Magento”以开始配置Magento。执行以下步骤:

a) 检查准备情况。

i) 单击“Start Readiness Check”(开始准备情况检查)。

ii) 检查完成后,单击“下一步”。

6

b) 添加数据库。

i) 输入您创建的数据库的账号和密码。在此示例中,用户帐户是 ,密码是 。magentoUsermagentoUser1@3

ii) 输入已创建数据库的名称。在此示例中,数据库名称为 。magento

iii) 单击“下一步”。

7

c) 完成 Web 访问的设置,然后单击下一步

8

d) 输入自定义商店信息,然后单击下一步

e) 输入管理员帐户信息,然后单击下一步

f) 单击“立即安装”以安装 Magento。

以下页面指示已配置Magento。

9

步骤 8:添加 cron 作业

执行以下步骤以添加 cron 作业。

1. 执行命令,配置cron操作的作业。crontab -u apache -e

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 键,回车键,然后按 Enter 键保存并关闭配置文件。:wq

有关如何在 Magento 中使用 cron 作业的详细信息,请参阅配置和运行 cron。

常见问题

当您在浏览器中输入连接到Magento网站时,如果错误消息“一个或多个索引器无效。请确保您的 Magento cron 作业正在运行“,请执行以下操作:http://<ECS Public IP address>/admin

10

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. 刷新页面,然后单击缓存管理

11

5. 选择处于“INVALIDATED”状态的“缓存类型”,然后单击“提交”。

12

类似于以下命令输出表示问题已修复。

13

下一步做什么

• 访问查看默认主页,如下图所示。http://<ECS Public IP address>

14

• 访问并输入您在安装过程中设置的用户名和密码。登录管理控制台后,将显示以下页面。http://<ECS Public IP address>/admin

15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

厘米级高精度定位系统为什么更倾向于UWB技术?

超宽带&#xff08;Ultra Wide-Band&#xff0c;UWB&#xff09;是一种新型的无线通信技术&#xff0c;根据通信委员会的规范&#xff0c;UWB的工作频带为3.1~10.6GHz&#xff0c;系统-10dB带宽与系统中心频率之比大于20%或系统带宽至少为500MHz。 UWB信号的发生可通过发射时间…

11 月 NFT 动态:交易量增长,Layer 2 格局剧变

作者&#xff1a;stellafootprint.network 11 月份&#xff0c;随着比特币和以太坊价格的提升&#xff0c;加密货币市场活动频繁&#xff0c;市场呈现进一步复苏的迹象。NFT 领域中&#xff0c;Blur 的交易量飙升&#xff0c;进一步巩固地位&#xff1b;Blast 的亮相&#xff…

基于人工智能技术的《量化投资AI系统》集群架构设计与实现

乔总&#xff1a;您好&#xff01; 前些日子你我的共同朋友潘总&#xff0c;推荐您来聊聊将ChatGPT应用于量化投资的合作。在与您及您的团队进行了超过2个多小时的沟通后&#xff0c;恕我直言&#xff0c;不客气地说&#xff0c;感觉您的团队对人工智能技术几乎是空白。为了让…

【基于大数据的人肥胖程度预测分析与可控策略】

基于大数据的人肥胖程度预测分析与可控策略 前言数据获取与清洗数据挖掘与分类建模1. K-means聚类2. 层次聚类3. DBSCAN4. 分类建模 数据可视化模型肥胖程度预测分析与可控策略结语 前言 随着现代生活方式的改变&#xff0c;肥胖问题逐渐成为全球性的健康挑战。为了更好地理解…

Nginx rewrite 参数

目录 常用的Nginx 正则表达式 rewrite 和 location的区别 location location 大致分三类&#xff1a; location 常用的匹配规则&#xff1a; location 优先级&#xff1a; rewrite rewrite跳转实现 rewrite 执行顺序如下 语法格式 flag标记说明 rewrite实际操作 基…

hdlbits系列verilog解答(Ringer)-55

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 本次我们设计一个电路以实现对手机铃声和振动的控制。当工作在振动模式时&#xff0c;开启振动&#xff0c;否则开启铃声。 尝试只使用assign语句&#xff0c;测试一下你是否能将描述转化成数字逻辑电路。 二…

微信商家收款码扣多少手续费

很多人想申请低手续费率的收款码不知从何下手&#xff0c;在参考了大量博客教学之后&#xff0c;终于搞懂了详细流程以及注意事项。在此记录一下。我申请的是一个只需要0.2%费率的微信收款码&#xff0c;申请时间是2022年2月12日。申请之前只需要准备营业执照和法人身份z&#…

成都工业学院Web技术基础(WEB)实验八:BOM、DOM基本操作

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考&#xff0c;前端变化比较大&#xff0c;按照要求&#xff0c;只能做到像&#xff0c;不能做到一模一样 3、图片和文字仅为示例&#xff0c;需要自行替换 4、如果代码不满足你的要求&#xff0c;请寻求其他的…

Java集合进阶

目录 集合体系结构 Collection集合 List集合 ArrayList集合 LinkedList集合 集合体系结构 注意:有序:存进去的数组和取出来时一样 而不是大小的那种有序 Collection集合 单列集合顶层接口Collection import java.util.ArrayList; import java.util.Collection;public cl…

SAP UI5 walkthrough step1 hello word

这里我用的VS Studio 来进行本地化学习 关于SAP UI5是啥&#xff0c;我就不再赘述了&#xff0c;另外还有VS Studio 的安装&#xff0c;请提前做好准备 下面我们直接进入正文 1.首先在你的本地新建一个文件夹&#xff0c;此处我命名为&#xff1a;walkthrough 2.在VS中打开…

中文语音标注工具FunASR(语音识别)

全称 A Fundamental End-to-End Speech Recognition Toolkit&#xff08;一个语音识别工具&#xff09; 可能大家用过whisper&#xff08;openAi&#xff09;&#xff0c;它【标注英语的确很完美】&#xff0c;【但中文会出现标注错误】或搞了个没说的词替换上去&#xff0c;所…

Pico VR眼镜(XR) Unity开发环境部署及打包教程

创建项目 我这里选择的是URP项目。URP对移动端性能比较友好&#xff0c;另外VR平台也不支持HDRP渲染管线。 然后进入unity工具栏->File -> Build Settings 点击 Android后&#xff0c;点就Switch Platform将项目转为Android项目 安装依赖包 在unity的工具栏中点击Wi…

10天玩转Python第1天:python基础知识与常用开发工具全面详解

这里写自定义目录标题 1.课程之前1.1 课程介绍1.2 今日内容1.3 Python 介绍[了解]1.4 语言的分类 2 Python 环境配置2.1 Python 解释器的安装2.2 pycharm 的配置安装2.3 路径的选择(建议) 3 使用 pycharm 书写代码3.1 双击打开 pycharm 软件3.2 创建新 项目3.3 配置项目的路径和…

展望2024年供应链安全

2023年是开展供应链安全&#xff0c;尤其是开源治理如火如荼的一年&#xff0c;开源治理是供应链安全最重要的一个方面&#xff0c;所以我们从开源治理谈起。我们先回顾一下2023的开源治理情况。我们从信通院《2023年中国企业开源治理全景观察》发布的信息。信通院调研了来自七…

【BUG】微信小程序image不会随着url动态变化

问题描述&#xff1a; 第一次打开界面&#xff0c;显示的是默认头像而不是用户头像&#xff0c;似乎image里面的src只要第一次有值就不会再更新了 解决 不要给src里面的变量设置初始值&#xff0c;而是直接赋空值

ABeam Recruiting | ABeam旗下德硕管理咨询(深圳)最新社招岗位信息

ABeam Recruiting 职等你来 POSITION 招聘岗位 1 SAP项目经理 &#xff08;FICO/PP/MM/SD模块背景&#xff09; 职责描述 1.PD&Management&#xff1a;负责项目PD和落地实施管理 2.Business&#xff1a;熟悉了解业务需求、判断并合理地将业务需求转化成信息技术需求…

upload-labs

01 随便上传个文件 发现对于上传类型有限制 查看页面代码发现是js的过滤直接关闭js 上传成功 右键图片在新建标签页打开文件 这里直接抓包改名字也行 02 抓包修改后缀名 03 发现后端做了检测抓包修改失败 大小写绕过失败&#xff0c;php特性php1等会被当成php执行 这里图片的…

MeterSphere实战(一)

MeterSphere是一位朋友讲到的测试平台&#xff0c;说这东西是开源的&#xff0c;因为我是做测试的&#xff0c;很乐意了解一些新鲜事物。在我看来&#xff0c;测试就是要专注一些领域&#xff0c;然后要啥都会一点点&#xff0c;接着融会贯通起来&#xff0c;这样就可以万变不离…

解决Error:You‘re using an RSA key with SHA-1, which is no longer allowed

一、问题 在微信开发者工具中&#xff0c;推送代码时发生错误Error:You‘re using an RSA key with SHA-1, which is no longer allowed...... 奇怪的是命令行可以正常push: 原因&#xff1a;因为生成密钥的RSA算法&#xff0c;由于安全性原因&#xff0c;现在已经不允许使用…

【unity】【WebRTC】从0开始创建一个Unity远程媒体流app-构建可同步场景

【背景】 最近在研究远程画面&#xff0c;所以就实践了一下。技术采用我认为比较合适的WebRTC。 这篇文章的基础是我的另一篇博文&#xff0c;如果希望顺利完成本篇操作&#xff0c;请先关注我后查询我的如下博文&#xff1a; 【WebRTC】【Unity】Unity Web RTC1-Unity中简单实…