实验——实现基于LNMP的电子商务平台架构

一、 环境准备: centos系统、nginx源码、 yum源(安装mysqlphp-fpm

二、 安装步骤:

1、先确定一下防火墙都清空了

2、安装nginx(推荐源码编译安装)

3、yum方式安装mariadb、mariadb-server、 php-mysql、 php、 php-fpm 

4、下载小米商城源码, 解压缩到/data/web目录, 修改权限为nobody

新建目录,然后解压缩到目录下

发现所有文件的属主属组都是root,权限太大

于是我们将它改为nobody

三、 修改配置文件:

1、修改nginx配置, 把nginx.conf.default模板复制为配置文件进行修改,指定网站访问目录为/data/web, 并设置默认用户和配置与php-fpm交互

将模板复制为配置文件

修改配置文件

用户为nobody

启用info日志,更改日志的路径(如果没有这个路径记得自己去建好)

连接数改大一点,改为65535

将日志去掉注释,并修改存放路径

设置其他属性

写上端口和服务名(名随便起),指定网站访问目录为/data/web

因为上面定义了路径,因此下面这行就可以删掉了:

删掉后如下:

与PHP交互,将PHP那段代码取消注释,并将php扩展解析文件路径(fastcgi_param那行)修改为如下代码:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

修改完毕,保存退出,然后可以使用nginx -t查看是否有语法错误

它显示warn警告说连接数设置的有些大,超过了1024

于是我们修改一下允许打开的最大文件数:

然后再测一下,没有语法错误了

然后使用systemctl start nginx启动一下服务

2、 修改PHP.ini中功能配置

编辑配置文件

修改时钟配置 date.timezone = Asia/Shanghai

设置short_open_tag = On

然后保存退出,使用systemctl start php-fpm启动一下服务

同样,使用systemctl start mariadb启动一下数据库服务

修改好之后我们可以先验证一下,看看之前设置的路径是否正确,我们就在/data/web/下建一个test.html文件

然后访问一下

访问成功,说明路径设置正确了。

四、网站部署和验证

登录数据库,创建一个新的数据库,起名叫xiaomi

exit退出数据库。

我们发现php程序的用户是apache,但是我们nginx程序之前设置的只有nobody才能写进去

于是我们要修改php的配置文件

这里用户和组都是apache

我们将它改为nobody

使用systemctl restart php-fpm重启服务

然后我们就可以去浏览器上访问IP/ebak/index.php了

用户名为admin,密码为123456,登陆

登陆之后点击参数设置,然后写上参数:

点击提交,就将配置文件修改成功了。如果网站方法无法使用,可以手动去改配置文件,方法如下:

找到配置文件,在/data/web/data下,有一个config.php文件

将数据库名称改为xiaomi,密码改成空

然后就可以恢复数据了,点击“恢复数据”:

点击“选择目录”

选择database_20170529184126

选择要导入的数据库为xiaomi

点击开始恢复

恢复完成

然后我们就可以访问啦!输入IP/index.php

访问成功!!

五、后台管理

先要把/var/lib/nginx/下的tmp文件夹的属主属组也修改成nobody

因为nginx里很多默认安装路径都是/var/lib/nginx/下的tmp,所以以后会有修改此文件夹下的内容,需要给nobody权限

编辑nginx的配置文件

添加一个index.php

检测一下,没有问题

使用systemctl restart nginx重启服务

访问一下IP/admin(因为刚才改过配置文件,所以其实它自动去找admin下的index.php页面去访问的,如果你不想改配置文件,那么输入IP/admin/index.php也可以访问)

输入账号admin,密码为admin888

就可以开始管理了

配置Nginx状态监控页面

#Nginx运行状态,StubStatus模块获取Nginx自启动的工作状态(编译时要开启对应功能)

首先编辑nginx配置文件

开启模块功能

保存退出,nginx -t检测是否有错,然后systemctl
restart nginx重启服务

然后访问页面IP/status

出来状态页面了。

我们也可以给它加个日志,然后也可以再加个密码

同样,编辑nginx配置文件/etc/nginx/nginx.conf

保存退出,用nginx -t检查一下没有错误。然后systemctlrestart nginx重启服务。

然后进入/etc/nginx目录,敲htpasswd命令,生成htpasswd文件,给nginx用户设置密码

然后再次访问status页面的时候就需要输入用户名和密码了~

Nginx实现路由-URL重定向

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参

数外的字符串起作用

举例:http://www.magedu.com/index.php =>http://www.magedu.com/new/index.php

表明看rewritelocation功能有点像,都能实现跳转,主要区别在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器。很多情况下rewrite也会写在location里,它们的执行顺序是:

1、执行server块的rewrite指令

2、执行location匹配

3、执行选定的location中的rewrite指令

如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回500Internal Server Error错误。

语法rewrite regexreplacement [flag];

flag标志位

last: 相当于Apache[L]标记,表示完成rewrite

break: 停止执行当前虚拟主机的后续rewrite指令集

redirect: 返回302临时重定向,地址栏会显示跳转后的地址

permanent: 返回301永久重定向,地址栏会显示跳转后的地址

因为301302不能简单的只返回状态码,还必须有重定向的URL

这就是return指令无法返回301,302的原因了。这里 last break区别有点难以理解:

last一般写在serverif中,而break一般使用在location

last不终止重写后的url匹配,即新的url会再从server走一遍匹配流程,而break终止重写后的匹配breaklast都能组织继续执行后面的rewrite指令

if判断指令

语法为if(condition){...},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:

当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false直接比较变量和内容时,使用=!=

~正则表达式匹配, ~*不区分大小写的匹配, !~区分大小写的不匹配

-f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录

-e和!-e用来判断是否存在文件或目录

-x和!-x用来判断文件是否可执行

常见全局变量

$host :请求主机头字段,否则为服务器名称。

$http_user_agent :客户端agent信息

$http_cookie :客户端cookie信息

$limit_rate :这个变量可以限制连接速率。

$request_method :客户端请求的动作,通常为GET或POST。

$remote_addr :客户端的IP地址。

$request_filename :当前请求的文件路径,由root或alias指令与URI请

求生成。

$scheme : HTTP方法(如http, https)。

$server_protocol :请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

$server_addr :服务器地址,在完成一次系统调用后可以确定这个值。

$server_name :服务器名称。

$server_port :请求到达服务器的端口号。

$request_uri :包含请求参数的原始URI,不包含主机名,如:

”/foo/bar.php?arg=baz”

案例

实验

比如我们来配一个:如果是IE浏览器,就跳转到手机端界面(就是上面的案例1)

编辑nginx配置文件

添加如下三行代码:

保存退出,检查语法错误,重启服务。

然后使用IE浏览器访问一下界面,果然变成手机版了。

类似的,如果改为如下代码的话

就是用IE浏览器访问界面,都会跳转到百度页面去。(redirect表示跳转)

时间: 2024-07-30 12:32:47

实验——实现基于LNMP的电子商务平台架构的相关文章

实现基于小米的电子商务平台架构

在Centos7中实现基于LNMP的电子商务网站 一.环境准备: 搭建电子商务网站之前首先要准备一个好的安装环境 systemctl status firewalld(查看一下防火墙的状态) systemctl stop firewalld(关闭防火墙) iptables -F(清空防火墙里面的规则) getenforce(查看selinux状态是否是:disabled) 这时候安装环境已经准备好了,接下来就是正式的安装了 二.安装步骤 1,用yum方式安装mariadb.mariadb-ser

实验----实现基于LNMP的电子商务网站

实现基于LNMP的电子商务网站 一.准备LNMP环境所需的包: yum install mariadb-server php-fpm php-mysql nginx 二.准备网站: mkdir -p /data/web          建站点 unzip -d /data/web xiaomi.zip  导入小米网站的源码包并解压到/data/web cd /data/web :chown -R nobody.nobody .  修改所有文件所属人所属组为nobody,防止被劫持造成巨大损失

实现基于LNMP的电子商务网站

---------------------------实现基于LNMP的电子商务网站---------------------- 一.环境准备:centos系统.nginx源码.yum源(安装mysql与php-fpm). 实验前先关闭httpd服务,防止干扰 二.安装步骤: 1.下载nginx源代码,并编译安装到/usr/local/nginx目录中 2.yum方式安装mariadb.mariadb-server.php-mysql.php.php-fpm yum install mariad

[Tizen开发]基于Web App的平台架构简介

Tizen平台为众多的设备提供一个标准的软件平台.下面我们将要对Tizen软件平台架构的描述,仅包含支持智能手机和平板电脑的部分,其他设备类型的架构描述将会在不久后定义.Tizen软件平台支持web程序,它为web应用程序的开发提供了丰富的API接口. 下图描述了Tizen平台针对智能手机和平板电脑的架构,它分为3个层次:应用层,核心层和内核. The Application Layer(应用层) Tizen应用层由web程序组成,Tizen web应用程序将全面地体现Tizen平台的优势,其性

基于AWS的电子商务网站架构——营销与推荐服务

用AWS可以建立一个营销与推荐服务,来管理有针对性的营销活动,并为正在浏览电子商务网站的客户提供个性化的产品推荐. 为了建立这样一个服务,你必须处理非常大量来自多个数据源的数据.由此产生的客户配置文件信息必须是可用的,以完成电子商务网站对客户实时产品. 获得有关客户的评论,也可以用于管理针对特定客户群的个性化营销活动.通过AWS提供的工具,可以通过不同的渠道构建高度可扩展的推荐服务,如动态产品推荐,或对客户有针对性的电子邮件营销. 1.  Amazon ElasticMapReduce (Ama

实现基于LNMP 的电子商务网站

一:准备工作 1.检查防火墙和SELinux是否关闭,如果二者不关闭,会严重影响实验. 关闭防火墙:iptables -F 临时清除 可靠关闭:systemctl stop firewalld 关闭selinux:setenforce 0 永久关闭:修改配置文件vim /etc/sysconfig/selinux SELINUX=disabled 2.小米商务网站源码包-zip 二.安装需要的包 1. yum安装nginx 2 .yum 方式安装mariadb .mariadb-server.p

基于AWS的电子商务网站架构——Web前端

用AWS可以建立一个高可用的电子商务网站提供灵活的产品目录和业务扩展.维护一个电子商务网站的一个大型产品目录和全球客户群是具有挑战性的.该目录是可搜索,以及单个产品的网页应该包含丰富的信息集,例如图像,PDF手册,以及客户的评论. 客户希望快速找到他们感兴趣的产品,同时希望网页能够快速加载.世界各地的客户希望能够在任何时间进行购买,所以网站应该具有高可用性.随着你的产品目录和客户群增长,应对这些挑战变得更加困难.通过AWS提供的工具,你可以建立一个令人信服的,可扩展的网站,以及可搜索产品目录,同

基于AWS的电子商务网站架构——结账服务

用AWS建立电子商务网站安全且高可用的结账服务及业务扩展.管理结帐过程涉及许多步骤,必须协调工作.其中的一些步骤,如信用卡交易,应有特定的监管要求.这个过程的其他部分涉及人工操作,如从仓库中采摘,包装和运输物品. 客户希望自己的私人资料,如他们的购买历史和自己的信用卡信息,能够通过安全的基础设施和应用程序进行管理.AWS已取得相关的电子商务业务多重安全认证, 包括支付卡行业(PCI)的数据安全标准(DSS).通过AWS提供的工具,可以构建从采购到订单到完成这样一个安全结算服务的管理流程. 1. 

实现基于LNMP的电子商务网站的搭建

一 环境准备:centos系统  yum源(安装mysql,nginx,和php-fpm) 二:安装步骤:用yum的方式安装mariadb,mariadb-server,php-mysql,php-fpm,nginx 下载需要搭建网站的源码,我搭建的是基于小米网站的搭建,然后解压缩到data/web目录 修改权限为nobody(在这里之所以不用root,是为了安全的考虑,因为root的权限太大) 三  修改配置文件 修改nginx配置,把nginx.conf.default模板复制为配置文件进行