LAMP-电商平台-iwebshop
bash
复制代码
# 配置服务器流程:
# 1. 安装软件包
# 2. 准备相关材料
# 3. 修改配置文件
# 4. 启用并启动服务
# 5. 设置防火墙
# 6. 客户端测试
#######################################################
10.1.8.11 client.migaomei.cloud client
10.1.8.20 www.migaomei.cloud www
10.1.8.20 proxy.migaomei.cloud proxy
10.1.8.21 company.migaomei.cloud company
10.1.8.22 iwebshop.migaomei.cloud iwebshop
proxy 作为代理节点:
1. 当访问www.migaomei.cloud,代理节点默认主页
2. 当访问www.migaomei.cloud/shop/,代理到iwebshop.migaomei.cloud/shop/
3. 当访问www.migaomei.cloud/company/,代理到company.migaomei.cloud/company/
company 作为公司站点,提供欢迎界面:欢迎来到万和IT教育。
iwebshop 作为商城站点,提供欢迎界面:欢迎来到万和购物天堂。
#######################################################
# 准备后端真实服务器
[root@company ~ 10:02:05]# yum install -y nginx
[root@company ~ 10:02:15]# vim /etc/nginx/nginx.conf
......
server {
# 设置字符集,为了能让网页端显示的中文正常
charset utf-8;
listen 80;
......
[root@company ~ 10:03:05]# systemctl enable nginx --now
[root@company ~ 10:03:06]# mkdir /usr/share/nginx/html/company/
[root@company ~ 10:03:06]# echo '欢迎来到万和 IT 教育' > /usr/share/nginx/html/company/index.html
[root@iwebshop ~ 10:02:05]# yum install -y nginx
[root@iwebshop ~ 10:02:15]# vim /etc/nginx/nginx.conf
......
server {
# 设置字符集
charset utf-8;
listen 80;
......
[root@iwebshop ~ 10:02:43]# systemctl enable nginx --now
[root@iwebshop ~ 10:03:00]# echo '欢迎来到万和购物天堂' > /usr/share/nginx/html/shop/index.html
#搭建 Nginx 反向代理服务器,核心目的是:让用户通过同一台代理服务器(proxy 主机)的不同路径,访问背后两台不同的目标服务器,同时还保留了默认的本地静态网页访问功能。
[root@proxy ~ 10:08:59]# yum install -y nginx
[root@proxy ~ 10:09:10]# cp /etc/nginx/nginx.conf /etc/nginx/conf.d/proxy.conf
[root@proxy ~ 10:09:34]# vim /etc/nginx/conf.d/proxy.conf
server {
listen 80;
listen [::]:80;
server_name _;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
}
location /company/ {
proxy_pass http://company.migaomei.cloud;
}
location /shop/ {
proxy_pass http://iwebshop.migaomei.cloud;
proxy_set_header Host $host; # 传递客户端访问的域名
proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #传递IP链路
proxy_set_header X-Forwarded-Proto $scheme; # 传递请求协议(http/https)
}
}
[root@proxy ~ 10:11:35]# systemctl enable nginx --now
| 配置项 |
作用说明 |
listen 80; listen [::]:80; |
同时监听 IPv4 和 IPv6 的 80 端口(HTTP 协议默认端口) |
server_name _; |
匹配所有未明确配置的域名(默认服务器块,适合作为通用反向代理或默认站点) |
include /etc/nginx/default.d/*.conf; |
引入默认目录下的额外配置(可用于拆分零散配置,保持主配置整洁) |
location / |
根路径 / 访问本地静态文件,根目录为 /usr/share/nginx/html(Nginx 默认静态文件目录) |
location /company/ |
路径 /company/ 反向代理到远程服务 http://company.migaomei.cloud |
location /shop/ |
路径 /shop/ 反向代理到远程服务 http://iwebshop.migaomei.cloud,并传递关键请求头 |
bash
复制代码
# 访问测试
[root@client ~ 10:16:34]# curl http://www.migaomei.cloud/company/
欢迎来到万和 IT 教育
[root@client ~ 10:16:35]# curl http://www.migaomei.cloud/shop/
欢迎来到万和购物天堂
################## 准备商城运行环境 ##############################
# 商城运行环境需要的php版本是5.5-7.3之间
# 这里以7.2版本为例
[root@iwebshop ~ 11:40:05]# yum install -y yum-utils
[root@iwebshop ~ 11:40:05]# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@iwebshop ~ 11:40:05]# yum-config-manager --disable 'remi-php*'
[root@iwebshop ~ 11:40:05]# yum-config-manager --enable remi-php72
[root@iwebshop ~ 11:40:05]# yum install -y php php-fpm
[root@iwebshop ~ 11:20:01]# systemctl enable php-fpm --now
| 命令 |
作用 |
yum install -y yum-utils |
安装 yum 工具集(提供 yum-config-manager 命令,用于管理 repo 源) |
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm |
安装 Remi 仓库(CentOS 7 第三方 PHP 仓库,提供多个 PHP 版本) |
yum-config-manager --disable 'remi-php*' |
禁用 Remi 仓库中所有 PHP 相关子仓库(避免版本冲突) |
yum-config-manager --enable remi-php72 |
单独启用 PHP 7.2 仓库(指定安装目标版本) |
yum install -y php php-fpm |
安装 PHP 7.2 核心组件 + PHP-FPM(FastCGI 进程管理器,用于 Nginx/Apache 解析 PHP) |
systemctl enable php-fpm --now |
开机自启 + 立即启动 php-fpm 服务 |
bash
复制代码
# 配置 Nginx支持 PHP
[root@iwebshop ~ 10:20:29]# vim /etc/nginx/default.d/php.conf
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@iwebshop ~ 10:21:04]# systemctl restart nginx
| 配置项 |
作用 |
location ~ \.php$ |
匹配所有以 .php 结尾的请求(~ 表示正则匹配) |
try_files $uri =404 |
先检查请求的 PHP 文件是否存在,不存在直接返回 404(防止路径遍历攻击) |
fastcgi_pass 127.0.0.1:9000 |
转发 PHP 请求到本地 PHP-FPM 的 9000 端口(需确保 PHP-FPM 已启动并监听该端口) |
fastcgi_index index.php |
若请求路径是目录(如 /test/),默认查找 index.php |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name |
告诉 PHP-FPM 脚本的真实路径(关键配置,缺失会导致 PHP 报 "文件不存在" 错误) |
include fastcgi_params |
引入 Nginx 内置的 FastCGI 通用参数(如 REQUEST_METHOD、QUERY_STRING 等) |
bash
复制代码
# 测试php
[root@iwebshop ~ 10:22:24]# cat > /usr/share/nginx/html/phpinfo.php << 'EOF'
<?php phpinfo(); ?>
EOF
#<?php ... ?>:PHP 代码的开始和结束标记(告诉服务器这部分内容需要用 PHP 解析器执行)。
#phpinfo();:PHP 内置函数,功能是打印出当前 PHP 环境的完整信息
[root@client ~ 10:27:35]# curl http://www.migaomei.cloud/shop/phpinfo.php
# 配置数据库
[root@iwebshop ~ 10:29:05]# yum install -y mariadb-server
[root@iwebshop ~ 10:29:05]# systemctl enable mariadb --now
# 安全初始化,设置root密码为123
[root@iwebshop ~ 10:29:22]# mysql_secure_installation
[root@iwebshop ~ 10:30:22]# mysql -u root -p123
MariaDB [(none)]> CREATE DATABASE iwebshop;
MariaDB [(none)]> CREATE USER iwebshop@localhost IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON iwebshop.* TO iwebshop@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
| 操作 |
作用 |
CREATE DATABASE iwebshop; |
创建了名为 iwebshop 的数据库(项目数据将存储在这里) |
CREATE USER iwebshop@localhost IDENTIFIED BY '123'; |
创建了专用数据库用户 iwebshop(仅允许本地连接),密码 123 |
GRANT ALL PRIVILEGES ON iwebshop.* TO iwebshop@localhost; |
授权该用户操作 iwebshop 数据库的所有权限(增删改查、建表等) |
FLUSH PRIVILEGES; |
刷新权限表,让授权立即生效 |
bash
复制代码
################## 准备商城运行环境 ##############################
################## 配置商城 ##############################
# 安装网站需要的依赖包
[root@iwebshop ~ 11:40:05]# yum install -y php-mysqlnd php-gd php-xml php-mbstring php-json php-opcache php-cli php-pecl-zip
# php-fpm需要以nginx身份运行,因为nginx账户对目录/usr/share/nginx/html/iwebshop读写权限
[root@iwebshop ~ 11:22:46]# vim /etc/php-fpm.d/www.conf
# 修改以下参数,其他保持默认
user = nginx
group = nginx
[root@iwebshop ~ 11:20:01]# systemctl restart php-fpm
# 准备网站文件,找老师获取商城材料
[root@iwebshop ~ 11:10:08]# ls
anaconda-ks.cfg iwebshop-v.5.15.zip upload.zip
[root@iwebshop ~ 11:12:59]# unzip iwebshop-v.5.15.zip
[root@iwebshop ~ 11:13:18]# unzip upload.zip
[root@iwebshop ~ 11:13:18]# mv iwebshop-v.5.15 /usr/share/nginx/html/shop
[root@iwebshop ~ 11:14:58]# cp -a upload/* /usr/share/nginx/html/shop/upload/
[root@iwebshop ~ 11:21:36]# chown -R nginx:nginx /usr/share/nginx/html/shop/
# 配置虚拟主机
[root@iwebshop ~ 11:10:10]# cp /etc/nginx/nginx.conf /etc/nginx/conf.d/vhost-shop.conf
[root@iwebshop ~ 11:10:36]# vim /etc/nginx/conf.d/vhost-shop.conf
server {
charset utf-8;
listen 80;
listen [::]:80;
server_name www.migaomei.cloud;
root /usr/share/nginx/html;
index index.php index.html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
}
[root@iwebshop ~ 11:16:10]# systemctl restart nginx
migaomei123
################## 配置商城 ##############################
商城 LNMP LAMP
Linux
Nginx Apache
MySQL MariaDB
PHP Python Perl
www.migaomei.cloud
代理:
1. 默认代理节点
2. 公司宣传站点
3. 商城
开发一个简单的shell脚本
bash
复制代码
开发脚本monitor.sh,用来监控操作系统以下资源:
1. 收集硬件CPU、内存、硬盘、网卡主要信息
2. 查看cpu、内存、文件系统使用率
3. 监控当前系统网络IO和磁盘IO
使用简单的命令和管道处理,不要使用sed、awk、命令替换等高级用法
#!/bin/bash
echo hello world
vim monitor.sh
[root@proxy ~ 16:32:14]# cat monitor.sh
#!/bin/bash
# 系统资源监控脚本 monitor.sh
# 功能:收集CPU、内存、硬盘、网卡信息,监控使用率及IO状态
# 依赖:ifstat(若未安装可执行 yum install -y ifstat 安装)
echo "========================================"
echo " 系统资源监控报告"
echo "========================================"
# 1. 收集硬件基础信息
echo -e "\n【1. 硬件基础信息】"
echo -e "\n--- CPU 硬件信息 ---"
cat /proc/cpuinfo | grep "model name" | grep -v grep
cat /proc/cpuinfo | grep "cpu cores" | grep -v grep
echo -e "\n--- 内存硬件信息 ---"
cat /proc/meminfo | grep "MemTotal" | grep -v grep
echo -e "\n--- 硬盘硬件信息 ---"
lsblk | grep "disk" | grep -v grep
echo -e "\n--- 网卡硬件信息 ---"
ip link show | grep "UP" | grep -v grep
# 2. 查看CPU、内存、文件系统使用率
echo -e "\n\n【2. 资源使用率】"
echo -e "\n--- CPU 使用率(整体负载) ---"
uptime | grep -v grep
echo -e "\n--- 内存使用率 ---"
free -h | grep "Mem" | grep -v grep
free -h | grep "Swap" | grep -v grep
echo -e "\n--- 文件系统使用率 ---"
df -h | grep -v "tmpfs" | grep -v "udev"
# 3. 监控网络IO和磁盘IO
echo -e "\n\n【3. IO 监控】"
echo -e "\n--- 网络IO(实时5秒) ---"
ifstat -t 1 5 | grep -v "Time"
echo -e "\n--- 磁盘IO(实时状态) ---"
iostat -d -x 1 3 | grep -v "Device" | grep -v "avg-cpu"
echo -e "\n========================================"
echo " 监控完成 $(date)"
echo "========================================"
bash
复制代码
[root@storage ~ 16:39:25]# ./monitor.sh
========================================
系统资源监控报告
========================================
【1. 硬件基础信息】
--- CPU 硬件信息 ---
model name : AMD Ryzen 9 5900HX with Radeon Graphics
model name : AMD Ryzen 9 5900HX with Radeon Graphics
cpu cores : 1
cpu cores : 1
--- 内存硬件信息 ---
MemTotal: 4026124 kB
--- 硬盘硬件信息 ---
sda 8:0 0 20G 0 disk
sdb 8:16 0 20G 0 disk
--- 网卡硬件信息 ---
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
【2. 资源使用率】
--- CPU 使用率(整体负载) ---
16:39:27 up 40 min, 1 user, load average: 0.00, 0.01, 0.05
--- 内存使用率 ---
Mem: 3.8G 184M 3.4G 11M 278M 3.4G
Swap: 2.0G 0B 2.0G
--- 文件系统使用率 ---
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.7G 16G 10% /
/dev/sda1 1014M 139M 876M 14% /boot
【3. IO 监控】
--- 网络IO(实时5秒) ---
#kernel
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate
RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
--- 磁盘IO(实时状态) ---
Linux 3.10.0-1160.71.1.el7.x86_64 (storage.migaomei.cloud) 01/22/2026 _x86_64_ (2 CPU)
scd0 0.00 0.00 0.01 0.00 0.43 0.00 114.22 0.00 1.33 1.33 0.00 1.00 0.00
sda 0.00 0.05 2.71 0.49 110.10 6.09 72.55 0.00 0.40 0.40 0.39 0.22 0.07
dm-0 0.00 0.00 2.24 0.55 105.14 5.24 79.35 0.00 0.45 0.46 0.42 0.24 0.07
dm-1 0.00 0.00 0.04 0.00 0.91 0.00 50.09 0.00 0.22 0.22 0.00 0.09 0.00
sdb 0.00 0.00 0.04 0.00 1.32 0.00 61.75 0.00 0.21 0.21 0.00 0.18 0.00
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
========================================
监控完成 Thu Jan 22 16:39:29 CST 2026
========================================
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
========================================
监控完成 Thu Jan 22 16:39:29 CST 2026
========================================