@TOC
1.实验目的:实现基于LAMP架构的类京东电商网站实战案例
ShopXO 安全、稳定、高性能企业级B2C开源电商系统,基于php开发
遵循MIT开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求,安装超过100万+
官方网站:http://shopxo.net
2.环境要求
需要4台主机
节点名称 | ip地址 | 节点信息 |
---|---|---|
Rocky8 | 10.0.0.8 | eshop.wang.org网站 |
Rocky8 | 10.0.0.18 | Mysql |
ubuntu22 | 10.0.0.100 | 防火墙 |
ubuntu22 | 10.0.0.110 | DNS主服务器 |
3.前提准备
关闭SElinux
关闭防火墙
# -----
ufw disable
[09:27:58 root@ubuntu2204:~]# ufw status
Status: inactive
#如果是inactive表示已经关闭,如果是active表示已经启动
时间同步
# -----
apt -y install chrony; chronyc sources -v ; timedatectl set-timezone Asia/Shanghai
# 更新
apt update ; apt upgrade
4.实现步骤
- 4台主机直接网络关系要打通
4.1.apache+php 服务器【10.0.0.8】
yum -y install httpd php php-mysqlnd php-json
systemctl enable --now httpd
rz
unzip shopxo-v6.3.0.zip
mv shopxo-v6.3.0/* /var/www/html/
chown -R apache.apache /var/www/html/
tcpdump -i eth0 -nn port 80
4.2.Rocky linux8 安装php8.0
4.2.1.安装remi源
dnf install epel-release
dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
4.2.2.列出php版本
dnf module list php
4.2.3.变更php版本,Rocky8有提供php8版本,所以切换Rocky8提供的版本,而不是remi提供的版本,不过remi有提供php8.1和php8.2版本。
dnf module reset php
dnf module enable php:8.0
4.2.4.切换成remi提供的8.0版本
dnf module enable php:remi-8.0
4.2.5.安装php
# 报错安装
# dnf install libjpeg-turbo libtiff libwebp libXpm
dnf install php php-cli php-curl php-mysqlnd php-gd php-opcache php-zip php-intl
4.3.配置网关【10.0.0.8】
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.0.0.100
nmcli conn reload;nmcli conn up eth0
4.4.MySQL 服务器 【10.0.0.18】
mysql> create database shopxo;
Query OK, 1 row affected (0.00 sec)
mysql> create user shopxo@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all on shopxo.* to shopxo@'10.0.0.%';
Query OK, 0 rows affected (0.00 sec)
4.5.Linux防火墙
- 设置防火墙规则
iptables -nvL
iptables -t nat -A PREROUTING -d 192.168.10.100 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.8:80
- 开启ip_forward
sysctl -a | grep ip_for
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
- 新增加一个网卡
[19:06:55 root@firewalld:~]# vim /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.0.0.100/24
gateway4: 10.0.0.2
nameservers:
search:
- baidu.com
addresses: [8.8.8.8, 129.19.19.19, 233.6.6.6]
eth1:
addresses:
- 192.168.10.100/24
netplan apply
4.6.DNS主服务器
apt -y install bind9
vim /etc/bind/named.conf.options
# 修改
dnssec-validation no;
vim /etc/bind/named.conf.default-zones
# 新增
zone "wang.org" IN {
type master;
file "/etc/bind/wang.org.zone";
};
vim /etc/bind/wang.org.zone
$TTL 1D
@ IN SOA master admin (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.110
eshop A 192.168.10.100
4.7.配置网站
4.8.主页
4.9.压力测试
yum -y install php-opcache
- 测试页面
[19:53:54 root@Rocky8 ~]# vim /var/www/html/test.php
<?php
phpinfo();
?>
yum -y install httpd-tools
[20:18:30 root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
IPADDR=192.168.10.7
PREFIX=24
ONBOOT=yes
BOOTPROTO=static
DNS=192.168.10.110
#不需要网关
#不用配置DNS
[20:23:01 root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.7
PREFIX=24
GATEWAY=10.0.0.2
DNS1=192.168.10.110
ONBOOT=yes
[20:23:25 root@centos7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search 9
nameserver 192.168.10.110
# 测试
curl http://eshop.wang.org/test.php
ab -c 10 -n 100 http://eshop.wang.org/
评论