分类目录归档:Linux 服务器

apache缓慢的http拒绝服务攻击修改办法

在httpd.conf中添加 LoadModule reqtimeout_module modules/mod_reqtimeout.so

查看是否存在mod_reqtimeout.so模块

[root@localhost ~]# rpm -ql httpd |grep .so

/usr/lib64/httpd/modules/mod_reqtimeout.so

添加配置

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500

LoadModule reqtimeout_module modules/mod_reqtimeout.so

重启apache

service httpd restart

2021年超级巨惠买阿里云服务器攻略(全新阿里云小站篇)

本文首要讲经过阿里云小站便宜购买阿里云服务器的攻略,力求将可获取的优惠完好清晰的列出来,以供阿里云新老用户参考。云小站所提供的优惠包含代金券优惠、今天限时秒杀、新用户专享1折起、企业新用户特惠、心选建站以及其他抢手活动引荐。

地址:阿里云小站

一:代金券优惠
首要,有一张金额为20元的云服务器ECS代金券,虽然金额比较小,可是假如你是购买1核1G 1核2G这种装备比较低的阿里云服务器还是很有用的,这张20元的代金券是只需订单金额满100元即可运用,云小站上有一款1核2G5M带宽的云服务器,优惠价格是197.47元,运用这张代金券就能够抵扣20元,实际购买只需177.47元。
要留意的是:20元的代金券只能是新用户才能收取,并且有效期是7天,因此,收取了之后请赶快运用哦。

假如你需要购买的阿里云服务器装备比较高,那么这张20元的代金券作用就不是很大了,订单金额比较高的,就需要用到其他几张代金券了,别的几张可用于购买阿里云服务器运用的代金券金额分别是:100元云服务器专用代金券、300元云产品通用代金券、800元云产品通用代金券,小编现已收取过了,根据小编了解的方针,这几张代金券的运用订单限制是:100元的订单满1000元可运用,300元的订单满3000元可运用,800元的订单满8000元可运用。
需要留意的是:这几张代金券的有效期是30天,咱们能够收取了今后运用,可是这几张代金券仅限产品新购才能用,假如咱们是老用户,想用这个代金券去续费阿里云服务器运用,是用不了的。
代金券.png

二、今天限时秒杀
限时秒杀所推出的这几款阿里云服务器,小编觉得是最经济实惠的,详细装备和秒杀价额如下下图所示:
限时秒杀.png
假如你是个人用户,放的网站流量不是很高,也没有在线视频这些吃带宽比较高的内容,引荐购买秒杀价格只需320.20元的这款同享型s6实例2核4G1M带宽的秒杀云服务器。假如您是企业用户,对云服务器性能要求高一点,引荐购买秒杀价格为636.72元一年的这款装备为同享型s6实例4核8G5M带宽的云服务器,这个装备能够满意绝大部分企业用户的上云需求了。

三、新用户专享1折起
新用户1折起专区所展现的优惠云产品,首要汇集了当下阿里云其他优惠活动中所推出的一些爆款云产品及装备,也就是用户购买最多的一些阿里云服务器装备和其他云产品,目前现已上架了27款云产品,除了阿里云服务器之外,还有云数据库MySQL高可用版、国内通用短信套餐包、云数据库SQL Server、SSL证书等云产品。

小编比较引荐的是活动价格为1166.40元起,实例标准为核算型c5的这款2核4G1M带宽的阿里云服务器,放一些干流的网站是没问题的,比如企业官网之类的。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
同享型 s62核8G2M460.80元/1年 1209.60元/3年
同享型 s64核8G5M1910.16元/3年
通用型 g52核8G1-5M可选1576.80元/1年起
通用型 g62核8G1-5M可选1495.80元/1年起
通用型 g64核16G1-5M可选2791.80元/1年起
核算型 c62核4G1-5M可选1209.60元/1年起
核算型 c64核8G1-5M可选2219.40元/1年起
核算型 c52核4G1M1166.40元/1年
核算型 c54核8G5M2954.88元/1年

四、企业新用户特惠
企业新用户特惠是阿里云最近才在云小站上推出的全新板块,扣头低至2.6折,只需是企业认证且初次购买ECS的新用户均能够购买此版块的云服务器。这个专区所推出的云服务器首要以核算型c5 核算型c6和通用型g5 通用型g6为主,装备包含了2核4G、4核8G、2核8G、4核16G等,这些装备都是企业用户最常购买的一些装备。
别的,企业新用户特惠专区所推出的云服务器带宽均为1-10M带宽可选,这就给了企业用户在挑选带宽上很大的灵活空间,由于企业用户的网站一般来说流量都比较高,最高10M足能够敷衍网站的流量顶峰了。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
同享型 s62核4G1-10M可选301.44元/1年起
同享型 s62核8G1-10M可选572.88元/1年起
同享型 s64核8G1-10M可选731.28元/1年起
核算型 c52核4G1-10M可选699.84元/1年起 2021.76元/3年起
核算型 c54核8G1-10M可选1279.80元/1年起 3697.20元/3年起
同享型 s62核4G1-10M可选904.32元/3年起
同享型 s62核8G1-10M可选1484.28元/3年起
同享型 s64核8G1-10M可选2094.12元/3年起
通用型 g52核8G1M946.08元/1年
核算型 c52核4G1-10M可选1166.40元/1年起 2954.88元/3年起
核算型 c54核8G1-10M可选2133.00元/1年起 5403.60元/3年起
核算型 c58核16G1-10M可选4066.20元/1年起
核算型 c62核4G1-10M可选1209.60元/1年起
核算型 c64核8G1-10M可选2219.40元/1年起
核算型 c68核16G1-10M可选4239.00元/1年起
通用型 g62核8G1-10M可选1495.80元/1年起 3789.36元/3年起
通用型 g64核16G1-10M可选2791.80元/1年起
通用型 g68核32G1-10M可选5383.80元/1年起
通用型 g52核8G1-10M可选1576.80元/1年起
通用型 g54核16G1-10M可选2953.80元/1年起
通用型 g58核32G1-10M可选5707.80元/1年起

五、爆款云产品5折起
这个专区是阿里云专为老用户开设的优惠购买通道,虽然整体价格还是没有新用户那么便宜,可是提供优惠的产品还是比较丰富的,包含云服务器ECS、云数据库Mysql、CDN流量包、Web使用防火墙、短信套餐包,这些应该都是老用户经常用到的产品,别的还提供了商标注册、企业工商注册等服务。
详细云服务器产品及价格如下表:

实例标准装备带宽云小站报价
核算网络增强型sn1ne2核4G1M2386.80元/1年
核算网络增强型sn1ne4核8G1M4396.20元/1年
核算网络增强型sn1ne8核16G1M8415.00元/1年
内存网络增强型se1ne2核16G1M3671.40元/1年
内存网络增强型se1ne4核32G1M6965.40元/1年
内存网络增强型se1ne8核64G1M13553.40元/1年
通用网络增强型sn2ne2核8G1M2951.40元/1年
通用网络增强型sn2ne4核16G1M5525.40元/1年
通用网络增强型sn2ne8核32G1M10673.40元/1年

六、心选建站
心选建站是阿里云最近上架的建站产品专区,产品包含模板站根底版、模板站标准版、模板站企业版、定制站标准版、定制站高级版、定制站尊贵版。目前首要的优惠为云·企业官网类建站产品能够享受买一年送半年,下单抽iphone11奖品的优惠。

七、抢手活动引荐
这儿汇总了阿里云全站一切抢手的优惠活动,假如云小站上所展现的云产品或者装备不是自己想要的,你能够经过该板块了解阿里云当下正在进行哪些抢手活动,经过其他抢手活动去选购自己想要的阿里云服务器或者其他云产品。

apache缓慢的http拒绝服务攻击修改办法

在httpd.conf中添加 LoadModule reqtimeout_module modules/mod_reqtimeout.so

查看是否存在mod_reqtimeout.so模块

[root@localhost ~]# rpm -ql httpd |grep .so

/usr/lib64/httpd/modules/mod_reqtimeout.so

添加配置

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500

LoadModule reqtimeout_module modules/mod_reqtimeout.so

重启apache

service httpd restart

2020年小米電視&小米盒子通用去廣告教程

簡單1.2.3步 本教程小米電視任意刪除文件,不用root,不怕黑屏,變磚。保留小米電視切換信號源,投屏等功能。 附帶黑屏、變磚恢復方法,操作簡單。妳還在等什麽?

1.需要準備U盤壹個,安裝任意壹款妳喜歡的電視桌面軟件 這裏我安裝的是當貝桌面。 進入開發者模式,打開ADB調試(電視操作部分請參見錄像)

2.ADB官方下載地址 https://developer.android.com/studio/… 解壓縮到C盤或者D盤根目錄取壹個簡單的名字 例如本例解壓縮到D盤,該文件夾名稱為123。

3.保持電腦與小米電視在同壹路由器下查看小米電視的IP地址 Win鍵+R打開運行輸入CMD回車,輸入命令進行操作。(以下不需要輸入復制粘貼即可) adb connect 192.168.3.8:5555(妳電視的IP地址加:5555) 此時屏幕上會彈出壹個提示框“允許USB調試嗎?”,選擇“確定”。

刪除小米桌面 adb shell pm uninstall –user 0 com.mitv.tvhome

刪除系統更新,如要更新請恢復出廠設置。系統更新以後廣告會隨之而來。

adb shell pm uninstall –user 0 com.xiaomi.mitv.upgrade

應用商店 adb shell pm uninstall –user 0 com.xiaomi.mitv.appstore

米家 adb shell pm uninstall –user 0 com.xiaomi.smarthome.tv

小米商城 adb shell pm uninstall –user 0 com.xiaomi.mitv.shop

小米支付 adb shell pm uninstall –user 0 com.xiaomi.mitv.payment

小米錢包 adb shell pm uninstall –user 0 com.mipay.wallet.tv

遊戲中心 adb shell pm uninstall –user 0 com.xiaomi.mibox.gamecenter

redis实现高并发下的抢购/秒杀功能

之前写过一篇文章,高并发的解决思路(点此进入查看),今天再次抽空整理下实际场景中的具体代码逻辑实现吧:
抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢?

常规写法:

查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数

这里我就只谈redis的解决方案吧…
我们先来看以下代码(这里我以laravel为例吧)是否能正确解决超抢/卖的问题:

复制代码
<?php
 
 $num = 10;   //系统库存量
 $user_id =  \Session::get('user_id');//当前抢购用户id
 $len = \Redis::llen('order:1');  //检查库存,order:1 定义为健名
 if($len >= $num)
   return '已经抢光了哦';

$result = \Redis::lpush('order:1',$user_id);  //把抢到的用户存入到列表中
if($result)
  return '恭喜您!抢到了哦';
复制代码

如果代码正常运行,按照预期理解的是列表order:1中最多只能存储10个用户的id,因为库存只有10个。
然而,但是,在使用jmeter工具模拟多用户并发请求时,最后发现order:1中总是超过5个用户,也就是出现了“超抢/超卖”。
分析问题就出在这一段代码:

 $len = \Redis::llen('order:1');  //检查库存,order:1 定义为健名
 if($len >= $num)
   return '已经抢光了哦';

在抢购进行到一定程度,假如现在已经有9个人抢购成功,又来了3个用户同时抢购,这时if条件将会被绕过(条件同时被满足了),这三个用户都能抢购成功。而实际上只剩下一件库存可以抢了。
在高并发下,很多看似不大可能是问题的,都成了实际产生的问题了。要解决“超抢/超卖”的问题,核心在于保证检查库存时的操作是依次执行的,再形象的说就是把“多线程”转成“单线程”。即使有很多用户同时到达,也是一个个检查并给与抢购资格,一旦库存抢尽,后面的用户就无法继续了。
我们需要使用redis的原子操作来实现这个“单线程”。首先我们把库存存在goods_store:1这个列表中,假设有10件库存,就往列表中push10个数,这个数没有实际意义,仅仅只是代表一件库存。抢购开始后,每到来一个用户,就从goods_store:1中pop一个数,表示用户抢购成功。当列表为空时,表示已经被抢光了。因为列表的pop操作是原子的,即使有很多用户同时到达,也是依次执行的。抢购的示例代码如下:
比如这里我先把库存(可用库存,这里我强调下哈,一般都是商品详情页抢购,后来者进来看到的库存可能不再是后台系统配置的10个库存数了)放入redis队列:

复制代码
 $num=10; //库存
 $len=\Redis::llen('goods_store:1'); //检查库存,goods_store:1 定义为健名
 $count = $num-$len; //实际库存-被抢购的库存 = 剩余可用库存
 for($i=0;$i<$count;$i++)
   \Redis::lpush('goods_store:1',1);//往goods_store列表中,未抢购之前这里应该是默认滴push10个库存数了

 //echo \Redis::llen('goods_store:1');//未抢购之前这里就是10了
复制代码

好吧,抢购时间到了:

 /* 模拟抢购操作,抢购前判断redis队列库存量 */
 $count=\Redis::lpop('goods_store:1');//lpop是移除并返回列表的第一个元素。
 if(!$count)
    return '已经抢光了哦';
 /* 下面处理抢购成功流程 */
\DB::table('goods')->decrement('num', 1);//减少num库存字段

用户抢购成功后,上面的我们也可以稍微优化下,比如我们可用将用户ID存入了order:1列表中。接下来我们可以引导这些用户去完成订单的其他步骤,到这里才涉及到与数据库的交互。最终只有很少的人走到这一步吧,也就解决的数据库的压力问题。
我们再改下上面的代码:

复制代码
$user_id =  \Session::get('user_id');//当前抢购用户id
/* 模拟抢购操作,抢购前判断redis队列库存量 */
$count=\Redis::lpop('goods_store:1');
if(!$count)
  return '已经抢光了哦';

$result = \Redis::lpush('order:1',$user_id);
if($result)
  return '恭喜您!抢到了哦';
复制代码

为了检测实际效果,我使用jmeter工具模拟100、200、1000个用户并发进行抢购,经过大量的测试,最终抢购成功的用户始终为10,没有出现“超抢/超卖”。

上面只是简单模拟高并发下的抢购思路,真实场景要比这复杂很多,比如双11活动远远比这更复杂多啦,很多注意的地方如抢购活动页面做成静态的,通过ajax调用接口
再如上面的会导致一个用户抢多个,思路:
需要一个排队队列(比如:queue:1,以user_id为值的列表)和抢购结果队列(比如:order:1,以user_id为值的列表)及库存队列(比如上面的goods_store:1)。高并发情况,先将用户进入排队队列,用一个线程循环处理从排队队列取出一个用户,判断用户是否已在抢购结果队列,如果在则已抢购,否则未抢购,接着执行库存减1,写入数据库,将此user_id用户同时也进入结果队列。

安全狗安装时出现相关问题解决方法

今天博主无聊准备在ECS服务器安装个安全狗了看看,结果在安装时出现几个问题,博主在网上搜了相关问题找到了解决方法,在此分享一下。

此次博主主要遇到了两个问题

问题①:在执行安全狗最后一步安装也就是 ./install.py这个命令时提示Need system command ‘locate’ to install safedog for linux.Installation aborted!

出现这个问题是因为缺少搜索命令组件

远行      yum -y install mlocate

命令后再次安装即可

 

问题②博主远行刚刚命令后再次安装又出现了Need system command ‘dmidecode’ to install safedog for linux.

这个问题也是由于服务器缺少组件造成安装出错

输入      yum install -y dmidecode

再次安装即可

还要一个问题博客没有遇到,不过也写下了给遇到这个问题的朋友,那就是安装时提示Need system command ‘lspci’ to install safedog for linux.Installation aborted!

问题产生因为是lspci未安装

输入    yum -y install pciutils

ALIYUN以数据安全之名!数据备份OSS–AMH4.2使用指南

AMRewrite模块:提供伪静态规则管理工具,自带WordPress,Discuz的伪静态规则
AMChroot模块:在Chroot模式下部分功能会出错,需要换为normal模式
AMFTP模块:在线管理文件,方便使用
Memcache-2.2.7-v2            模块:Memcached缓存PHP拓展支持,使用OCS时会用到
ZendOpcache-7.0.2模块:ZendOpcache字节码加速拓展
PDO_MYSQL-1.0.2模块:PDO_MySQL支持
MySQLi            模块:MySQLi 支持
ALiOSS-1.1            模块:备份至OSS模块

 

以上模块都是我在使用中总结出来的必用模块,对于普通用户来说,可以对照我的列表安装需要的模块,不需要太多。

 

数据安全是我们做网站最关注的一点,如果数据丢失,那么我们之前所做的一切都将成为浮云,损失无法估计。

 

所以,本次教程教大家使用Alioss模块备份数据到OSS
oss的存储价格很低,非常适合大家备份数据。
首先,登陆到面板,进入模块拓展-》下载模块

 
搜索OSS,下载ALioSS模块
下载完成后点击管理模块

进入模块管理界面,点击安装模块

 

安装完成模块后,返回上一页面。
之前的安装模块已经变成了管理模块。
点击管理模块,添加oss实例

需要注意的一点是,OSS目前的上传接口改变。

 

不能使用原有的通用接口,要使用带endpoint的地址。

 

比如我的OSS是北京节点,使用的HOST是:oss-cn-beijing-internal.aliyuncs.com
外网主机用的地址就是:oss-cn-beijing.aliyuncs.com

添加完成后,保存。并测试链接

显示连接成功就正确鉴权了。不过我们还要测试上传。
登陆SSH
执行如下命令

 

  1. amh backup Y Y

然后返回如下图所示时才是正确的。

测试完成,就可以在amh 面板添加备份任务计划了。
我设置的是每日12点备份网站文件和数据库

反正OSS存储便宜,每日全备份也不心疼呢~

CentOS 7 上安装 LNMP(LEMP)服务 Linux,Nginx,MySQL,PHP

介绍

LNMP 是现在非常流行的 web 环境, 是Linux,Nginx,MySQL(使用MariaDB),PHP的缩写。数据存储在MySQL中,动态内容由 PHP 处理。 在本指南中,我们将演示如何在 CentOS 7 服务器上安装 LNMP 服务。

在本指南中,我们将在CentOS 7 VPS上安装一个LEMP堆栈。CentOS将满足我们的第一个要求:一个Linux操作系统。

第一步 – 安装Nginx

为了向我们的网站访问者显示网页,我们将使用 Nginx,一种现代化的高效网页服务器。

要添加CentOS 7 EPEL存储库,请打开终端并使用以下命令:

sudo yum install epel-release

由于我们使用sudo命令,这些操作将以 root 用户权限执行。它会询问您的常规用户密码,以验证您是否有权利以 root 权限运行命令。

现在,您的服务器上安装了 Nginx 存储库,请使用以下 yum 命令安装 Nginx :

sudo yum install nginx

一旦安装,您可以在启动 Nginx:

sudo systemctl start nginx

您可以立即进行检查,通过访问您的网络浏览器中的服务器的公共IP地址或者域名来验证一切是否都按计划进行:

http://server_domain_name_or_IP/

您将看到默认的CentOS 7 Nginx网页,这是为了信息和测试目的。它应该看起来像这样:

welcome to nginx 如果您看到此页面,则您的Web服务器现在已正确安装。

在继续之前,您将要做的是启动 Nginx 启动。使用以下命令执行此操作:

sudo systemctl enable nginx

第二步 – 安装 MySQL(MariaDB)

现在我们的Web服务器启动并运行了,现在是安装MariaDB的时候了,MariaDB 是开源版本的 MySQL 分支,在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前 MariaDB 是发展最快的 MySQL 分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。

再次,我们可以yum用来获取和安装我们的软件。这一次,我们还将安装一些其他“帮助”软件包,帮助我们使组件相互通信:

sudo yum install mariadb-server mariadb

安装完成后,我们需要使用以下命令启动 MariaDB:

sudo systemctl start mariadb

现在我们的 MySQL 数据库正在运行,我们希望运行一个简单的安全脚本,它将删除一些危险的默认值,并锁定对我们的数据库系统的访问。运行以下操作启动交互式脚本:

sudo mysql_secure_installation

提示将询问您当前的 root 密码。既然你刚刚安装了 MySQL,你很可能没有一个,所以按 Enter 键留空。然后提示将询问您是否要设置 root 密码。继续输入Y,并按照以下步骤进行:

Enter current password for root (enter for none):


OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.

New password: password Re-enter new password: password Password updated successfully! Reloading privilege tables.. ... Success!

对于其余的问题,您应该通过每个提示点击“ENTER”键接受默认值。这将删除一些示例用户和数据库,禁用远程 root 登录,并加载这些新规则,以便 MySQL 立即尊重我们所做的更改。

最后一件事就是让 MariaDB 开机启动。使用以下命令执行此操作:

sudo systemctl enable mariadb

在这一步,您的数据库系统现在已经建立起来,我们可以继续。

第三步 – 安装 PHP

PHP是我们设置的组件,它将处理代码以显示动态内容。它可以运行脚本,连接到我们的MySQL数据库以获取信息,并将处理的内容交给我们的Web服务器进行显示。

我们可以再次利用yum系统来安装我们的组件。我们还将包括 php-mysql 和 php-fpm 包:

sudo yum install php php-mysql php-fpm

配置PHP处理器

我们现在已经安装了我们的 PHP 组件,但是我们需要进行一些轻微的配置更改,使我们的安装更加安全。

使用 root 权限打开主 php-fpm 配置文件:

sudo vi /etc/php.ini

我们在这个文件中寻找的是设置cgi.fix_pathinfo的参数。这将被分号与分号(;),它默认值为“1”。

这是一个非常不安全的设置,因为它告诉PHP尝试执行最接近的文件,如果PHP文件不完全匹配,它可以找到。这基本上将允许用户以允许他们执行不应该被允许执行的脚本的方式来制作PHP请求。

我们将通过取消注释行并将其设置为“0”来更改这两个条件:

cgi.fix_pathinfo=0

完成后保存并关闭文件。

接下来,打开 php-fpm 配置文件 www.conf:

sudo vi /etc/php-fpm.d/www.conf

找到指定参数的行 listen,然后更改它,如下所示:

listen = /var/run/php-fpm/php-fpm.sock

接下来,找到设置的线条listen.ownerlisten.group并取消他们。他们应该是这样的:

isten.owner = nobody
listen.group = nobody

最后,找到 user 和 group 把 “apache” 改成 “nginx”:

user = nginx
group = nginx

然后保存并退出。

现在,我们只需要键入以下命令即可启动 PHP 处理器:

sudo systemctl start php-fpm

这将实施我们所做的改变。

接下来,设置 php-fpm 开机启动:

sudo systemctl enable php-fpm

第四步 – 配置Nginx来处理PHP页面

现在,我们安装了所有必需的组件。我们仍然需要做的唯一配置更改是告诉 Nginx 使用我们的 PHP 处理器进行动态内容。

我们在服务器块级别(服务器块类似于Apache的虚拟主机)执行此操作。通过键入以下内容打开默认的 Nginx 服务器块配置文件:

sudo vi /etc/nginx/conf.d/default.conf

目前,删除注释后,Nginx默认服务器块如下所示:

server {
listen       80;
server_name  localhost;

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}
}

我们需要对我们网站的这个文件进行一些修改。

  • 首先,我们需要添加一个 index.php 选项作为我们的索引指令的第一个值,以允许在索引目录时提供 PHP 索引文件
  • 我们还需要修改 server_name 指令以指向我们服务器的域名或公共 IP 地址
  • 实际的配置文件包括一些定义错误处理例程的注释行。我们将取消对那些包含该功能的注释
  • 对于实际的PHP处理,我们需要取消注释的一部分。我们还需要添加一个 try_files 指令,以确保 Nginx 不会将错误的请求传递给我们的 PHP 处理器

您需要做的更改在下面的文本中为红色。如果您愿意,您可以复制并粘贴所有内容,然后用server_name相应的域名或 IP 地址替换值:

server {
listen       80;
server_name  server_domain_name_or_IP;

# note that these lines are originally from the "location /" block
root   /usr/share/nginx/html;
index index.php index.html index.htm;

location / {
    try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

}

进行上述更改后,可以保存并关闭文件。

重新启动Nginx进行必要的更改:

sudo systemctl restart nginx

第五步 – 在Web服务器上测试PHP处理

为了测试我们的系统正确配置PHP,我们可以创建一个非常基本的PHP脚本。

我们将调用这个脚本info.php。为了使 Nginx 能够找到文件并正确地提供该文件,它必须保存到一个特定的目录,称为“Web根目录”。

在 CentOS 7 中,此目录位于/usr/share/nginx/html/。我们可以通过键入以下内容在该位置创建文件:

sudo vi /usr/share/nginx/html/info.php

这将打开一个空白文件。我们想在文件中放入以下文本,这是有效的PHP代码:

<?php phpinfo(); ?>

完成后,保存并关闭文件。

现在我们可以测试我们的Web服务器是否可以正确显示PHP脚本生成的内容。要想这样做,我们只需要在我们的网络浏览器中访问这个页面。您将需要您的服务器的公共IP地址。

您要访问的地址将是:

http://your_server_IP_address/info.php

你所来的页面应该是这样的:

这个页面基本上是从PHP的角度给出你关于你的服务器的信息。它对调试非常有用,并确保正确应用您的设置。

如果这是成功的,那么您的PHP正在按预期工作。

您可能希望在此测试后删除此文件,因为它可以向未经授权的用户实际提供有关您的服务器的信息。为此,您可以键入以下内容:

sudo rm /usr/share/nginx/html/info.php

如果您以后再次访问该信息,您可以随时重新创建此页面。

结论

现在您已经安装了LEMP堆栈,您可以选择下一步做什么。基本上,您已经安装了一个平台,您可以在服务器上安装大多数网站和网络软件。