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

nginx怎样给站点配置php?

411 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 1362
宝塔面板无法打开phpMyAdmin怎么办?
宝塔面板无法打开phpMyAdmin怎么办?

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

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

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

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

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

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

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

1 303
宝塔面板nginx的gzip_comp_level怎样设置?
宝塔面板nginx的gzip_comp_level怎样设置?

宝塔面板nginx配置中有一个gzip_comp_level,作用是压缩文件,我们要怎样设置最...

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

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

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

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

1 330
随机Linux开发教程
yum安装的nginx怎样添加多个站点?
yum安装的nginx怎样添加多个站点?

对于大多数客户来说,nginx配置多站点是一种刚需。今天,鸥哥就yum安装的nginx...

14 844
nginx添加多站点报错Job for nginx.service failed because the control process exited with error code.
nginx添加多站点报错Job for nginx.service failed because the control process exited with error code.

nginx添加多站点报错Job for nginx.service failed because the control pr...

13 878
yum安装的nginx怎样配置站点根目录?
yum安装的nginx怎样配置站点根目录?

yum安装的nginx默认站点目录藏的很深,位于/usr/share/nginx/html/ ,操作起来...

11 547
Linux系统CentOS 7.5怎样用yum安装nginx?
Linux系统CentOS 7.5怎样用yum安装nginx?

CentOS 7.5下使用yum安装nginx非常简答,几行代码统统搞定,请查看下方介绍。...

16 641
Linux系统怎样用yum安装php7.2?
Linux系统怎样用yum安装php7.2?

在不允许使用面板的情况下,手动配置服务器就成为了刚需。那么,怎样使用yum安...

9 917
yum怎样改为国内源加快软件安装速度?
yum怎样改为国内源加快软件安装速度?

要想服务器安装程序快,国内yum源必不可少。那么,怎样将yum源更换为国内呢?...

25 423
Linux系统编译安装rz sz上传下载
Linux系统编译安装rz sz上传下载

SSH工具是linux系统必不可少的,同样必不可少的还有上传下载功能。如果此时再...

8 929
Linux系统目录解读
Linux系统目录解读

要熟练操作Linux系统,一定要对Linux系统的目录结构有一个清晰的认识。今天,笔...

11 614
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入