手动搭建Magento电商网站

news2024/11/20 1:34:10

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何优雅使用 vue-html2pdf 插件生成pdf报表

使用 vue-html2pdf 插件 业务背景&#xff0c;老板想要一份能征服客户的pdf报表&#xff0c;传统的pdf要手撕&#xff0c;企业中确实有点耗费时间&#xff0c;于是github上面看到开源的这个插件就…废话不多说&#xff0c;直接上教程 1.使用下面命令安装 vue-html2pdf npm i…

牛客算法心得——买卖股票的最好时机三(dp)

大家好&#xff0c;我是晴天学长&#xff0c; 一个找状态的经典题&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .买卖股票的最好时机&#xff08;三&#xff09; 假设你有一个数组prices&#xff0c;…

【深度学习】AlexNet网络实现猫狗分类

【深度学习】AlexNet网络实现猫狗分类 AlexNet简介 AlexNet是一种卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;模型&#xff0c;它在2012年的ImageNet图像分类挑战赛中取得了重大突破&#xff0c;引发了深度学习在计算机视觉领域的热潮…

【C知道】帮我答疑解惑:java的entity字段是map,如何映射到数据库

目录 一、问题场景描述 二、跟【C知道】第一次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff09;我说 三、跟【C知道】第二次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff0…

iptables 命令说明

摘要 iptables是一个用于Linux系统的网络包过滤工具。它是一个基于内核的防火墙系统&#xff0c;用于配置和管理网络规则以控制网络流量。iptables可以对数据包进行过滤、转发、修改目的地、屏蔽IP等操作&#xff0c;可通过定义不同的规则和策略来确保网络的安全性和可靠性。 …

猫咪口味大考验:最受欢迎的猫罐头品牌揭晓!

养猫的这几年德罐也买了不少了&#xff0c;很早以前德罐给我的感觉就是&#xff0c;物美价廉&#xff0c;而且质量保障也不错&#xff0c;很美丽。但最近的德罐恕在下高攀不起了。 作为一个已经离职的宠物医生&#xff0c;我也发现不少人有这样的困扰吧&#xff01;其实&#x…

Linux 高级管理,基于域名的虚拟Web主机

实验环境 某公司的网站服务器使用的公网IP地址为192.168.184.50并使用该IP地址注册了两个域名 www.bdqn1.com和www.jbit.com。服务器中已经安装好了 CentOS 7操作系统.并通过源码编译的 方式安装了Web服务器软件httpd-2.4.25.现需要对httpd服务进行配置.以支持同时运行这两个 W…

mybatis多表映射-分步查询

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

LinuxC中进程通信

LinuxC中进程通信 信号&#xff08;Signals&#xff09;&#xff1a;Linux 提供了信号机制&#xff0c;允许一个进程向另一个进程发送信号以通知特定事件的发生。这是一种轻量级的通信机制&#xff0c;通常用于处理异步事件。您可以使用 kill 命令或 kill 函数来发送信号&…

小米路由器4A千兆版如何刷OpenWRT并使用固定地址远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

基于微服务架构的餐饮系统的设计与实现-计算机毕设 附源码 86393

基于微服务架构的餐饮系统的设计与实现 摘 要 近年来,我国经济和社会发展迅速,人们物质生活水平日渐提高,餐饮行业更是发展迅速,人们对于餐饮行业的认识和要求也越来越高。传统形式的餐饮行业都是以人为本,管理起来需要很多人力、物力、财力,既不方便管理者的管理,也不方便顾…

大创项目推荐 卷积神经网络手写字符识别 - 深度学习

文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例&#xff0c;那连接数据库后如何使用数据库呢&#xff1f;那么我们今天就带大家了解一下GaussDB&#xff0c;以下简称GaussDB的基本语法。 关于如何连接数据库&#xff0c;请戳这里。 学习本节课程之后&#xff0c…

C语言——输出菱形

法一&#xff1a; #include<stdio.h> #define N 7 //假设输出7层菱形 int main(){int i;//i控制第几行 int j;//j控制每一行空格的循环个数 int k;//k控制每一行*的循环次数 for(i1;i<4;i){//将图形分为两部分,前四行(第一部分) for(j1;j<4-i;j){//输出第i行的…

【带头学C++】----- 九、类和对象 ---- 9.11 面向对象模型

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注&#xff0c;不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.11 面向对象的框架模型 9.11.1 成员变量与函数的存储架构 代码举例说明&#xff1a; 9.11.2 this指针 9.11.4 this指针的应用…

线程互斥与同步

用户级线程 内核的LWP Linux线程 OS概念中经常说的 用户级线程 和 内核级线程 也就是线程实现真的是在OS内部实现&#xff0c;还是应用层或用户层实现 很明显Linux是属于用户级线程 用户级执行流&#xff08;用户级线程&#xff09; &#xff1a;内核lwp 1 : 1 也有1&…

Anaconda+Pytorch(GPU版)深度学习环境配置笔记

主要参考以下文章进行配置&#xff1a; https://blog.csdn.net/qq_43757976/article/details/131173301 配置版本略有更新&#xff0c;最新版本时间为2023.12.11 一、准备工作 个人电脑配置&#xff1a;laptop RTX4060 win11 个人配置版本&#xff1a;cuda&#xff08;12.1&…

虹科Pico汽车示波器 | 汽车免拆检修 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车&#xff0c;搭载LTG发动机&#xff0c;累计行驶里程约为10.7万km。车主反映&#xff0c;车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上提示“前照灯水平调节…

OWASP ESAPI 预防XSS跨站脚本攻击

跨站脚本攻击XSS案例&#xff1a;跨站脚本攻击XSS案例及其解决方案_xss攻击案例-CSDN博客 Java集成&#xff1a; 1、引入maven <!--OWASP ESAPI&#xff0c;防御 XSS跨站攻击--><dependency><groupId>org.owasp.esapi</groupId><artifactId>esa…

90%的人都值得学习微信商城的准备工作,7个关键步骤

如何做一个小程序卖东西&#xff1f;90%的人都不知道微信商城的准备工作 近几年&#xff0c;随着疫情的影响和电商的崛起&#xff0c;实体生意大家都变得越来越难做&#xff0c;越来越多的企业老板开始把矛头转向成本费用比实体门店更加低的微商城小程序&#xff0c;通过小程序…