下载鸥 > 网站下载 > 开发教程 > Linux

nginx怎样给站点配置php?

496 2021-01-03 21:06:13

收藏

简述

拉到最下方,加入红色部分的代码即可实现nginx配置php。

nginx+php是如今运用相当广泛的webserver的架构模式。在这个架构过程中,第一步需要实现的是如何让nginx正确的调用php。

由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。

今天,鸥哥主要就nginx server中配置的基本原理以及配置php调用的方法做一个简单的介绍。
 

一、nginx+php运行原理

首先简单的讲一讲原理,目前主流的nginx+php的运行原理如下:

1、nginx的worker进程直接管理每一个请求到nginx的网络请求。

2、对于php而言,由于在整个网络请求的过程中php是一个cgi程序的角色,所以采用名为php-fpm的进程管理程序来对这些被请求的php程序进行管理。php-fpm程序也如同nginx一样,需要监听端口,并且有master和worker进程。worker进程直接管理每一个php进程。

3、关于fastcgi:fastcgi是一种进程管理器,管理cgi进程。市面上有多种实现了fastcgi功能的进程管理器,php-fpm就是其中的一种。再提一点,php-fpm作为一种fast-cgi进程管理服务,会监听端口,一般默认监听9000端口,并且是监听本机,也就是只接收来自本机的端口请求,所以我们通常输入命令 netstat -nlpt|grep php-fpm 会得到:

1  tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      1057/php-fpm

这里的127.0.0.1:9000 就是监听本机9000端口的意思。 
 

4、关于fastcgi的配置文件,目前fastcgi的配置文件一般放在nginx.conf同级目录下,配置文件形式,一般有两种:

fastcgi.conf 和 fastcgi_params。
不同的nginx版本会有不同的配置文件,这两个配置文件有一个非常重要的区别:fastcgi_parames文件中缺少下列配置:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


我们可以打开fastcgi_params文件加上上述行,也可以在要使用配置的地方动态添加。使得该配置生效。

5、当需要处理php请求时,nginx的worker进程会将请求移交给php-fpm的worker进程进行处理,也就是最开头所说的nginx调用了php,其实严格得讲是nginx间接调用php。

了解了上面的这五个简单原理,在nginx中配置php调用方法就变得易如反掌。
 

二、配置文件

直接贴上代码逐行进行讲解,此处贴出一个能正常启动php脚本的最简nginx vhost配置。

server { 
    listen       80;
    server_name  demo.com;
    location ~ .php?.*$ { 
        root           /var/www/demo.com; 
        fastcgi_pass   127.0.0.1:9000; 
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name
        include        fastcgi_params; 
    

}

将红色部分粘贴到对应的.conf配置文件中,即可正常访问php页面。

本文地址:https://xzo.com.cn/develop/linux/606.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于Linux


Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

推荐Linux开发教程
Linux系统常用命令与功能解析
Linux系统常用命令与功能解析

宝塔面板无疑非常好用,简单又无比高效。但,如果客户公司不允许用宝塔怎么办?如...

30 1497
Linux系统下VIM编辑器的常用用法
Linux系统下VIM编辑器的常用用法

Linux系统下,使用vim编辑器修改源码非常高效,每个想要做大牛的程序猿都应该熟...

14 570
宝塔面板无法打开phpMyAdmin怎么办?
宝塔面板无法打开phpMyAdmin怎么办?

对于建站新手而言,宝塔面板无法打开phpMyAdmin是一个高发问题,就像无法连接ft...

20 844
宝塔面板如何屏蔽恶意访问ip
宝塔面板如何屏蔽恶意访问ip

在网站运营过程中,我们总会接触到这样那样的恶意访问,此时最好的办法就是用宝...

0 529
宝塔面板如何防止恶意网站解析?
宝塔面板如何防止恶意网站解析?

许多新人在用宝塔时,因为不曾注意,导致网站被人恶意解析,好点的是分走流量权重...

1 391
Linux配置端口转发
Linux配置端口转发

一些大型站点可能需要用到端口转发功能,通过转发实现服务器压力缓解,实现多台...

1 412
宝塔面板防火墙有什么用?
宝塔面板防火墙有什么用?

使用宝塔面板的用户非常多,但大多数人只是将宝塔作为一个安装配置简单的服务...

1 515
linux基础:VIM编辑器怎样做分屏展示?
linux基础:VIM编辑器怎样做分屏展示?

VIM编辑器是一款非常常用的linux编辑器,熟练运用vim编辑器可以让我们操作lin...

1 440
推荐插件
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 519
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 695
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1228
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 331
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 410
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 879
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

0 436
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 697
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入