(十)RHEL系统之基于LAMP架构部署商城系统

基于LAMP架构部署商城系统

接上篇:(九)RHEL系统之linux自有服务
任务背景

小王经过一段时间学习,慢慢的了解到公司的一些业务架构,发现好几个项目不是LAMP架构就是Nginx+Tomcat,于是小王决定,慢慢的吃透这些架构,先学习LAMP架构,再研究Nginx+Tomcat架构。所以,小王就给自己定一个任务,在自己的虚拟机环境下,构建LAMP环境。由于自己所维护的业务正好是一个电商平台,决定上线一个电商的 项目。

任务需求
1、任务具体要求

使用yum(dnf)工具一键部署LAMP环境 发布电商项目上线
① 能够实现web界面注册会员账号
② 能够实现web界面进行后台商品及会员的管理

2、项目选型
㈠ PHPSHE商城系统概述

PHPSHE商城系统是将商品管理、品牌管理、规格管理、折扣管理、拼团管理、优惠券管理、在线购物、订单管理、 资金管理、提现管理、支付管理、文章管理、会员管理、权限管理、通知管理、评价管理、数据统计等功能相结合, 并提供了简易的操作、实用的功能,快速让用户建立独立个性化的网上商店,为用户提供了一个低成本、高效率的网上商城建设方案;也是一套通用的网上商城软件系统。
(十)RHEL系统之基于LAMP架构部署商城系统_第1张图片

㈡ PHPSHE架构分析

PHPSHE网上商城主要基于PHP+MySQL进行设计与架构。
编写语言:PHP语言
数据库系统:MySQL
LAMP架构:
(十)RHEL系统之基于LAMP架构部署商城系统_第2张图片

㈢ 下载PHPSHE源代码

官方地址:http://www.phpshe.com/phpshe
演示网站:http://www.phpshe.com/demo/phpshe

(十)RHEL系统之基于LAMP架构部署商城系统_第3张图片

理论储备
聊一聊LAMP架构
1、LAMP分别代表什么

L代表服务器操作系统使用Linux
A代表网站服务使用的是Apache软件基金会中的httpd的软件
M代表网站后台使用的数据库时MySQL数据库
P代表网站是使用PHP/Perl/Python等语言开发

2、Apache/MySQL/PHP各自有什么作用

说在前面:
Ø 我们可以将LAMP架构理解为饭店!饭店!饭店!
Ø 我们家饭店很特别,我们的前台小姐姐灰常漂亮,我们的服务生和厨师很丑
Ø 服务生和厨师丑到不能见人的那种(自行脑补哈),所以你去饭店就只能看见前台小姐姐

㈠ 聊聊Apache(httpd)

像极了前台
作用:提供web服务,接受用户的连接请求!
(十)RHEL系统之基于LAMP架构部署商城系统_第4张图片

注意:Apache或Nginx都只支持静态页面的解析
当客户端请求的是静态资源时,web服务(httpd程序)会直接返回静态资源给客户端

① 静态网页

静态网页指使用HTML(超文本标记语言)编写,一般后缀为.htm、.html等;网页文件中没有程序代码
静态网页,用户双击打开,看到的效果与web服务器是相同的,因为网页的内容在用户访问之前,就已经确定

② 动态网页

动态网页指网站使用特定的编程语言编写,网页文件中除了HTML标记以外,还包括一些实现特定功能的程序代 码
服务器端可以根据客户端的不同请求动态产生网页内容 动态网页后缀一般为.php、.asp、.aspx、cgi、.perl、.jsp等
常见的留言板、论坛、注册、发帖都是用动态网页实现的

③ 小结
1)什么是web服务?

答:提供网页浏览功能的网站服务。
即安装了web服务软件如,httpd/nginx等软件,并启动。客户通过浏览器可以访问网站

2)什么是Web服务器?

答:简单来理解就是安装web服务软件,并能提供Web服务的机器。

3)Web一般是分为客户端与服务器端,两者是如何交互的呢?

答:通过HTTP协议http://www.itcast.cn

4)Apache(httpd)的作用和特点?
答:Apache用于接受用户连接请求;只负责静态页面的解析.
㈡ 聊聊PHP

像极了服务生
作用:PHP主要负责PHP脚本程序的解析以及实现与MySQL数据库的交互工作,我们项目中的注册/登录/下单/ 支付等大多数功能都是基于PHP+MySQL进行实现。PHP是一种通用开源脚本语言。
(十)RHEL系统之基于LAMP架构部署商城系统_第5张图片

  1. 当客户端请求的是动态资源时,Apache(httpd程序)会调用libphpX.so模块进行相应的解析
  2. 如果解析处理需要用到后台数据库相关数据,此时php程序也会连接后台数据库
  3. 最终php程序将解析后的结果返回给Apache(httpd程序),让Apache返回给客户端

㈢ 聊聊MySQL

像极了大厨
作用:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。其主要作用用于永久的存储数据。
(十)RHEL系统之基于LAMP架构部署商城系统_第6张图片

3、LAMP架构是什么

像极了饭店
(十)RHEL系统之基于LAMP架构部署商城系统_第7张图片

1)Apache像极了饭店前台,专门用来接受客户请求,并做一些静态页面处理(只买酒水饮料)
2)PHP像极了服务器,他专门用来解析处理由前台不能处理的”订单”,如用户想吃一碗意大利面,服务生就需要和后厨沟通,并做相应的安排处理.然后将处理后的结果返回给前台,由前台再给用户,因为服务生太丑了,见不得人.
3)MySQL像极了后厨,专门用来存放食材,并且只能由中间的服务生和后厨沟通,来获取什么食材
(十)RHEL系统之基于LAMP架构部署商城系统_第8张图片1)客户端发送请求连接web服务器的80端口,由Apache相应并处理用户的静态请求
2)如果客户端请求的是动态资源,由Apache加载调用libphpX.so模块(安装php程序带来)进行解析处理
3)如果处理需要和后台数据库沟通,那么由php程序去完成
4)Php程序将处理完后的结果再返回给Apache,由Apache返回给客户端

任务解决方案
一、一键部署LAMP环境
1、环境准备
㈠ 关闭防火墙和selinux

[root@rhel8 ~]# systemctl stop firewalld.service
[root@rhel8 ~]# systemctl disable firewalld.service
[root@rhel8 ~]# systemctl list-unit-files |grep firewalld
firewalld.service
disabled
[root@rhel8 ~]# setenforce 0
[root@rhel8 ~]# getenforce
Permissive
[root@rhel8 ~]# vim /etc/selinux/config
...
SELINUX=disabled
....

㈡ 配置本地软件仓库

[root@rhel8 ~]# mount -o ro /dev/sr0 /mnt
[root@rhel8 ~]# echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local
[root@rhel8 ~]# chmod +x /etc/rc.d/rc.local
[root@rhel8 ~]# cd /etc/yum.repos.d/
[root@rhel8 yum.repos.d]# cat local.repo
[BaseOS]
name=BaseOS yum
baseurl=file:///mnt/BaseOS/
enabled=1
gpgcheck=0
[App]
name=Appstream yum
baseurl=file:///mnt/AppStream/
enabled=1
gpgcheck=0

2、一键构建LAMP环境
㈠ 安装Apache(httpd)软件

说明:RedHat8默认自带httpd-2.4.37版本
[root@rhel8 ~]# yum install httpd -y

㈡ 安装PHP相关软件
说明:RedHat8默认php-7.2版本

yum -y install php-xml-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-json-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-mysqlnd-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-common-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-fpm-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-bcmath-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-cli-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-gd-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-pdo-7.2.11-1.module+el8+2561+1aca3413.x86_64 \
php-devel-7.2.11-1.module+el8+2561+1aca3413.x86_64

㈢ 安装Mariadb数据库软件

说明:从RedHat7以后,系统默认自带Mariadb数据库
[root@rhel8 ~]# yum install mariadb-server mariadb

3、启动相应服务
㈠ 启动后台数据库

[root@rhel8 ~]# systemctl start mariadb.service
[root@rhel8 ~]# systemctl enable mariadb.service
[root@rhel8 ~]# netstat -nltp|grep 3306
tcp6   0    0 :::3306   :::*   LISTEN      45368/mysqld
[root@rhel8 ~]# mysqladmin -u root password '123'

(十)RHEL系统之基于LAMP架构部署商城系统_第9张图片㈡ 启动前端web服务

[root@rhel8 ~]# systemctl start httpd.service
[root@rhel8 ~]# systemctl enable httpd.service
[root@rhel8 conf]# netstat -nltp|grep :80
tcp  0   0 0.0.0.0:80   0.0.0.0:*   LISTEN   45593/httpd

4、测试是否可以解析php页面

[root@rhel8 ~]# vim /var/www/html/index.php
[root@rhel8 ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>

(十)RHEL系统之基于LAMP架构部署商城系统_第10张图片二、网站商城项目上线
1、上传网站源代码到web服务器

[root@rhel8 ~]# mkdir /lamp
[root@rhel8 ~]# ls /lamp/
phpshe1.7.zip

2、解压并将其拷贝到指定位置

解压并拷贝网站源码文件到指定位置
 [root@rhel8 ~]# cd /lamp/
[root@rhel8 lamp]# unzip phpshe1.7.zip
[root@rhel8 lamp]# mv phpshe1.7/* /var/www/html/
更改网站源码文件权限
[root@rhel8 lamp]# chown -R apache.apache /var/www/html/

3、安装商城系统

http://192.168.159.100/install

4、重启web服务(可选)
三、测试验证

前台访问(http://192.168.159.100)
(十)RHEL系统之基于LAMP架构部署商城系统_第11张图片后台访问(http://192.168.159.100/admin.php)
(十)RHEL系统之基于LAMP架构部署商城系统_第12张图片

课后补充扩展
一、阿里云部署商城项目(可选)
1、特别说明

阿里云操作,非强制要求,如果受到网络、使用费用等条件限制也可以不采用云平台,直接使用虚拟机也可以完成实战项目。

2、注册与登陆

地址:https://www.aliyun.com

(十)RHEL系统之基于LAMP架构部署商城系统_第13张图片3、购买云服务器ECS
(十)RHEL系统之基于LAMP架构部署商城系统_第14张图片(十)RHEL系统之基于LAMP架构部署商城系统_第15张图片㈠ 选择按量付费(最省钱)
注意:选择CPU(推荐2核4G)

(十)RHEL系统之基于LAMP架构部署商城系统_第16张图片㈡ 选择镜像(CentOS7.6 x86_64)
(十)RHEL系统之基于LAMP架构部署商城系统_第17张图片说明:网络选择默认专有网络即可
(十)RHEL系统之基于LAMP架构部署商城系统_第18张图片㈢ 设置root密码
(十)RHEL系统之基于LAMP架构部署商城系统_第19张图片㈣ 设置资源组(默认组)
(十)RHEL系统之基于LAMP架构部署商城系统_第20张图片㈤ 设置释放时间
(十)RHEL系统之基于LAMP架构部署商城系统_第21张图片确认订单,购买完成,最终效果:
(十)RHEL系统之基于LAMP架构部署商城系统_第22张图片

4、远程连接云主机
(十)RHEL系统之基于LAMP架构部署商城系统_第23张图片5、一键搭建LAMP环境
㈠ 检查防火墙和selinux

说明:默认都是关闭的!
(十)RHEL系统之基于LAMP架构部署商城系统_第24张图片㈡ 检查软件仓库是否配置好
说明:默认软件仓库都是配置好的
(十)RHEL系统之基于LAMP架构部署商城系统_第25张图片㈢ 安装相关软件
① 安装Apache软件

安装httpd软件
[root@yunwei-huislee ~]# yum -y install httpd
启动web服务
[root@yunwei-huislee ~]# systemctl start httpd.service

查看80端口是否监听
在这里插入图片描述② 安装Mariadb数据库

说明:Centos 7+发行版本中,默认自带Mariadb数据库
安装数据库服务端及客户端软件
[root@yunwei-huislee ~]# yum install mariadb-server mariadb mariadb-devel
启动数据库
[root@yunwei-huislee ~]# systemctl start mariadb.service
设置数据库管理员root密码
[root@yunwei-huislee ~]# mysqladmin -u root password '123'
测试本地登录数据库
[root@yunwei-huislee ~]# mysql -uroot -p
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20201104161807412.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTc4NzY1Mg==,size_16,color_FFFFFF,t_70#pic_center)


**③ 安装PHP相关软件**

```bash
# yum install php php-devel php-gd php-pdo php-mysqlnd php-mbstring

④ 测试是否可以解析PHP页面
编写php测试页

[root@yunwei-huislee ~]# vim /var/www/html/index.php
[root@yunwei-huislee ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>

浏览器访问测试
(十)RHEL系统之基于LAMP架构部署商城系统_第26张图片6、网站商城项目上线
㈠ 上传项目源代码并解压

[root@yunwei-huislee ~]# ls
phpshe1.7.zip
[root@yunwei-huislee ~]# unzip phpshe1.7.zip
-bash: unzip: command not found
原因:没有安装unzip解压缩工具
解决:使用yum工具安装即可
[root@yunwei-huislee ~]# yum -y install unzip
再次解压完毕后,在当前目录下出现phpshe1.7目录
[root@yunwei-huislee ~]# ls
phpshe1.7 phpshe1.7.zip

㈡ 将网站源码移动到默认数据目录
说明:

  1. 默认情况下,httpd默认的网站数据目录为/var/www/html
  2. 我们也可以自定义,也可以通过虚拟主机方式发布多个网站

① 移动网站源码到默认数据目录

删除之前的测试页面
[root@yunwei-huislee ~]# rm -rf /var/www/html/*
移动或拷贝网站源码文件到默认数据目录下
[root@yunwei-huislee ~]# mv phpshe1.7/* /var/www/html/

② 更改数据文件权限

[root@yunwei-huislee ~]# chown -R apache.apache /var/www/html/*

㈢ 安装网上商城系统
(十)RHEL系统之基于LAMP架构部署商城系统_第27张图片(十)RHEL系统之基于LAMP架构部署商城系统_第28张图片㈣ 安装完毕后访问网站

前台访问地址
说明:如果有自己的域名,可以直接通过域名访问到网上商城首页
网站首页:http://47.244.168.246

(十)RHEL系统之基于LAMP架构部署商城系统_第29张图片

后台访问地址
后台管理页面:http://47.244.168.246/admin.php

(十)RHEL系统之基于LAMP架构部署商城系统_第30张图片(十)RHEL系统之基于LAMP架构部署商城系统_第31张图片二、彩蛋来一波(宝塔面板)

以上操作都是我们运维人员一步一步手动操作部署搭建,如果有一款工具,一切都是自动帮你完成,你只需要动动手指,就可以构建自己的LAMP环境,还可以部署一些开源的项目,是不是很开心呢?惊喜马上呈现...
宝塔官网:https://www.bt.cn

(十)RHEL系统之基于LAMP架构部署商城系统_第32张图片1、首先你得有一台服务器
2、其次你需要安装宝塔

安装教程:https://www.bt.cn/bbs/thread-19376-1-1.html
(十)RHEL系统之基于LAMP架构部署商城系统_第33张图片(十)RHEL系统之基于LAMP架构部署商城系统_第34张图片Centos系统安装命令:

安装wget命令
# yum install -y wget
使用wget命令下载安装脚本
# wget -O install.sh http://download.bt.cn/install/install_6.0.sh
执行脚本安装宝塔
# sh install.sh

(十)RHEL系统之基于LAMP架构部署商城系统_第35张图片3、通过宝塔面板进行你的日常运维工作
㈠ 阿里云主机放行8888端口

(十)RHEL系统之基于LAMP架构部署商城系统_第36张图片(十)RHEL系统之基于LAMP架构部署商城系统_第37张图片㈡ 浏览器登录宝塔面板
(十)RHEL系统之基于LAMP架构部署商城系统_第38张图片㈢ 面板基本配置
(十)RHEL系统之基于LAMP架构部署商城系统_第39张图片㈣ 一键部署LAMP环境
(十)RHEL系统之基于LAMP架构部署商城系统_第40张图片(十)RHEL系统之基于LAMP架构部署商城系统_第41张图片日常的一些管理维护工作,可以通过左边任务栏进行
(十)RHEL系统之基于LAMP架构部署商城系统_第42张图片㈤ 根据需求发布项目上线
(十)RHEL系统之基于LAMP架构部署商城系统_第43张图片部署一个自己的博客系统
(十)RHEL系统之基于LAMP架构部署商城系统_第44张图片(十)RHEL系统之基于LAMP架构部署商城系统_第45张图片㈥ 浏览器安装博客系统
访问地址:http://47.244.168.246/index.php
(十)RHEL系统之基于LAMP架构部署商城系统_第46张图片(十)RHEL系统之基于LAMP架构部署商城系统_第47张图片(十)RHEL系统之基于LAMP架构部署商城系统_第48张图片安装完毕后登录
(十)RHEL系统之基于LAMP架构部署商城系统_第49张图片最后的效果
(十)RHEL系统之基于LAMP架构部署商城系统_第50张图片

你可能感兴趣的:(Linux,#,RHEL,linux,redhat,rhel)