在apache中启用php很简单,apache有phpmodule模块,集成进去就OK。在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 会得到:

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_parames文件加上上述行,也可以在要使用配置的地方动态添加。使得该配置生效。

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

我的系统环境是Ubuntu 18.04,安装nginx和php:

apt install nginx php php-fpm php-cgi

配置nginx,打开/etc/nginx/site-enabled/default

在server {} 括号中添加如下:

location ~ \.php$ {

fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

这里我直接指定sock。重启nginx:

systemctl restart nginx

在/var/www/html下新建test.php,内容如下:

phpinfo();

?>

在浏览器中访问:localhost/test.php,打印出php信息,说明安装成功。

nginx增加php支持,Nginx启用php支持相关推荐

  1. Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持

    2019独角兽企业重金招聘Python工程师标准>>> Nginx SSL+tomcat集群 Nginx tomcat no 不用https 最近做了个Web项目, 架构上使用了 N ...

  2. nginx配置php 9000,Nginx支持php配置

    Nginx本身是不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用.FastCGI接口在Linux 下是socket,(这个socket可以是文件sock ...

  3. nginx安装配置、Nginx支持php

    认识Nginx Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igo ...

  4. https nginx phpstudy_让phpStudy2018 Nginx 支持WordPress自定义链接

    只适合Windows本地环境(服务器上没试过),默认phpStudy2018 Nginx并不支持WordPress自定义链接,可以通过修改配置文件支持让其支持. 用文本编辑工具打开PHPTutoria ...

  5. 创建支持nginx服务的docker镜像

    环境: [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-n ...

  6. linux如何开启sni服务,Nginx开启单IP多SSL证书支持-TLS SNI support

    Nginx支持单IP多域名SSL证书需要OpenSSL支持,由于CentOS5.X系统自带的OpenSSL版本太低不支持,所以首先需要编译安装一个高版本的openssl,CentOS 6.X的系统自带 ...

  7. Nginx系列之使用ssl模块配置支持代理HTTPS链接

    Nginx系列之使用ssl模块配置支持HTTPS访问 1.博客前言介绍 最近在用nginx代理https的第三方链接,因为不是做运维,所以对nginx并不是特殊熟悉,所以到处询问摸索了挺久 2.查看s ...

  8. Nginx增加m3u8流视频文件功能模块 推流和拉流

    Nginx增加m3u8流视频文件功能模块 推流和拉流 FastDFS分布式文件系统安装和配置_亲测成功 ./configure --prefix=/u06/data/apps/nginx-rtmp \ ...

  9. 为 CefSharp 应用内置 C++ 运行环境并启用 AnyCPU 支持

    一个 CefSharp 应用程序要想正确运行,有两个必要条件: .NET Framework 4.5.2 VC++ 2015 在部署 CefSharp 应用时经常会遇到因为没有 VC++ 2015 而 ...

最新文章

  1. MyBatis之级联——一对一关系
  2. 学生电脑哪个牌子好_面包冷藏车哪个牌子好
  3. asp删除mysql_asp php 清空access mysql mssql数据库的代码
  4. 答题闯关php,成语答题闯关红包流量主小程序源码
  5. jeewx-api.jar入门教程
  6. 如何给Xcode添加我们常用的插件呢?
  7. 第二十:如何把Jenkins+Allure2生成的报告发送邮件(重点超详细)
  8. MySQL中的事务隔离级别
  9. 基于 asp access人人享二手车直卖网
  10. iOS base64编解码
  11. java访问网络接口_Java网络访问 java调用http java调用其他接口
  12. YUI Compressor Maven
  13. 安装SQL SERVER 2005后,没有SSMS界面管理的问题
  14. 排列组合思维导图_排列组合——组合数专题
  15. 蔡康永:我要的三国就是威力无双。0氪玩家玩了两个礼拜后
  16. Application.streamingAssetsPath在android和ios和pc上的读取
  17. 在家做什么可以赚钱?适合在家的5个小项目!
  18. 层次聚类sklearn.cluster包AgglomerativeClustering
  19. 分享一个做简历的网站
  20. redis incr和incrBy的使用

热门文章

  1. ActivityRouter
  2. 解决×××无法上网的心得
  3. Math.ceil(),Math.floor()与Math.round()三个函数的定义。
  4. 一点想法--- 做一个轻便的程序编辑器
  5. 基于C语言STC89C52单片机电子密码锁的设计与仿真
  6. 一个程序员的小笑话.(纯属虚构)
  7. JVM GC一次调优实战
  8. python 删除list中的第一个元素
  9. php 远程代码执行漏洞复现 cve-2019-11043
  10. linux 设备管理工具 udev 规则编写