项目目标:部署一个php电子商务网站
部署前的系统规划图
-
0 实现效果
-
1 画一个简单的架构图
-
2 使用到的技术进行简单说明
-
3 主机规划
-
4 搭建步骤
-
5 脚本一键式部署完成
-
1.1 架构设计图
-
1.2 使用的技术简单说明
技术栈:
lvs,keepalived,mysql,nginx,rsync,nfs,php,pssh
服务器简单说明 | 安装的技术服务 |
---|---|
nginx服务器 | 主要进行负载均衡,访问的分流 |
动态web服务器 | 处理用户的动态界面访问 |
静态web服务器 | 为用户提供静态的浏览,图片,附件等 |
NFS存储服务器 | 上传的图片,附件,头像等 |
mysql服务器 | 存储数据,进行主从备份 |
rsync服务器 | 数据库的定时备份 |
-
3.1 主机规划
-
4.1 网站搭建流程
-
因为时间原因,我就不源码安装程序的,全部使用yum进行安装,真实企业环境中,一定要在本地测试,性能进行优化,安装安全工具,进行系统检查
-
(1)节约时间进行lnmp的搭建
两台机器同时进行搭建,可以使用ansible进行搭建,我这里使用轻量级的pssh工具进行自动化 -
4.1.1mariadb源下载地址:
-
4.1.2nginx源下载地址:
-
4.1.3php源码下载地址:
yum remove php php-common
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w php70w-opcache
yum install php70w-fpm php70w-opcache
yum install php70w-pdo
-
4.1.4配置镜像源
wget-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
-
4.1.5使用轻量级的自动化工具pssh
-
4.1.6创建mariadb源,推送ssh密钥
-
4.1.7推送nginx+mariadb
-
4.1.8测试pssh
-
4.1.9安装mariadb+nginx
最好用脚本,写一个很简单
下载太慢,看看今天能不能搞完吧,那就简单搞了,不优化了,跑起来就行了
部署php,写个脚本直接运行
!/bin/bash
php_install(){
#php编译安装
#和nginx使用相同的用户,如果没有就创建
`id www` &> /dev/null
[ $? -ne 0 ] && useradd -s /sbin/nologin -M www
#解决依赖
yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel
#解压
tar xvf php-7.2.12.tar.gz
cd php-7.2.12
#编译安装php
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-libzip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts && make && make install
#配置文件初始化
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm服务配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#php-fpm服务子配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
#配置服务及其环境变量
cp /root/soft/php-7.2.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
echo 'PATH=/usr/local/php/bin:$PATH' >> /etc/profile
}
#脚本开始时间
start_time=`date +%s`
#执行的脚本代码
php_install
#脚本结束时间
end_time=`date +%s`
#脚本执行花费时间
const_time=$((end_time-start_time))
echo 'Take time is: '$const_time's'
查看开源项目的db.php 得知用户连接demo密码是demo
-
4.1.10直接访问电子商城网站
-
4.1.10 测试负载均衡访问
-
4.2 数据库主从复制
下载(php电子商务系统代码 两套项目)
- 最近比较忙,没时间看看这个代码,就简单跑起来,导入数据到数据库
下载没有提供zip使用Git下载
php电子商务商场系统效果图
- 最近比较忙,没时间看看这个代码,就简单跑起来,导入数据到数据库