1.nginx与PHP的关系

首先来看nginx与php的关系,

FastCGI的关系(而不是像apache那样安装成nginx的模块)

FastCGI的意思是, 快速的通用网关接口:CGI Common Gateway Interface, 通用网关接口, 典型的web服务器与处理程序通讯的方式.

FPM, PHP'提供的用于管理FastCGI进程的功能.

2.安装带有FPM功能的PHP

linux

还是之前的PHP源码包, 还是原来的安装步骤.

仅仅在配置PHP安装时, 增加选项,开启FPM即可:

--enable-fpm

安装过程没有变化!

windows

可以提供FPM功能, 默认都提供:

由 php-cgi.exe 完成.

基本不需要处理. 一点, TS和NTS的选择需要注意:

以模块的方式安装, 通常需要安装TS版本, 线程安全版本.

以FPM的形式安装, 建议安装NTS版本, 非线程安全版本.

解压, 拷贝即可. 不需要配置与web服务器的模块加载.

3.管理PHP-FPM

PHP的FPM需要独立运行, 有自己的独立的配置文件. 等等.

默认情况下, FPM监听某个(127.0.0.1:9000)端口, 等待nginx(或者其他的web服务器)将请求转过来.

由于PHP独立运行了, 再修改PHP的配置, 就不需要重启web服务器(nginx)了, 重启PHP-FPM即可.

仅仅去参考 nginx与PHP来看: 理解成: Nginx是PHP的客户端, PHP为nginx提供服务(执行PHP程序的服务).

fpm的配置文件

先拷贝获取fpm的独立配置文件, 在etc/目录中:

编辑 etc/php-fpm.conf

几个必要的配置

1.守护进程化(后台执行)

2.运行用户

3.所监听的IP和端口

4.主进程号

开启, 关闭, 重载配置操作

开启: sbin/php-fpm

通过信号的方式, 进行重启, 关闭, 重载配置文件等处理:

停止:kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

平滑停止:kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`

重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

重新打开日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`

4.配置Nginx将PHP请求转发给PHP-FPM

nginx的配置文件结构:

http段的server段, 就表示一台主机(虚拟主机).

在每台虚拟主机, server段中, 提供对请求脚本的解析工作:

location指令, 匹配请求的URL脚本. 以.php结尾的请求, 交给PHP-FPM处理:

示例配置如下:

重新加载nginx

建立phpinfo.php测试文件

测试效果, 要保证 nginx与PHP-FPM都执行.

5.将php.ini放在合理的目录

拷贝默认配置

修改必要的配置

6.重启 php-fpm

7.虚拟主机的配置

虚拟主机

http中的server就是一个虚拟主机,增加server段, 就是增加虚拟主机:

重启nginx

建立测试项目

还是通过git clone, 配置nginx虚拟主机后出现404Not Found 测试发现动作不能被解析

原因是Nginx对pathinfo不支持

pathinfo: URL的一部分, 请求脚本到请求参数间的部分, 称之为pathinfo.

PHP程序要处理pathinfo, 前提是web服务器支持URL的pathinfo部分才可以.

解决方法:通过额外的解析pathinfo指令可以完成:

在 location ~ \.php$ 解析段中, 增加分析pathinfo的功能:

nginx.conf中:

重启nginx sbin/nginx -s reload

此时pathinfo的url的就可以解析.到此Nginx下配置php虚拟主机到此结束。

如何在Nginx下配置PHP程序环境的更多相关文章

  1. 如何在IIS7下配置ASP+ACCESS环境

    如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...

  2. Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

    前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fi ...

  3. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  4. # 如何在Windows下运行Linux程序

    如何在Windows下运行Linux程序 一.搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTs ...

  5. [原创]IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135)

    IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135) http://user.qzone.qq.com/93701178/blog/1398155812 操作系统更新至Win7或Wi ...

  6. nginx下配置多个web服务

    参考 nginx配置详解  nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...

  7. NGINX下配置404错误页面的方法分享

    NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下   1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcg ...

  8. Linux下配置PHP开发环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

  9. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

随机推荐

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)

    上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...

  3. .net Elasticsearch 学习入门笔记

    一. es安装相关1.elasticsearch安装  运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...

  4. 零OCR基础6行代码实现C#验证码识别

    这两天因为工作需要,要到某个网站采集信息,一是要模拟登陆,二是要破解验证码,本想用第三方付费打码,但是想想网上免费的代码也挺多的,于是乎准备从网上撸点代码下来,谁知道,撸了好多个都不行,本人以前也没接 ...

  5. spring remoting源码分析--Hessian分析

    1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...

  6. C++ 11 多线程--线程管理

    说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...

  7. 那些年【深入.NET平台和C#编程】

    一.深入.NET框架 1..NET框架具有两个组件:CLR(公共语言运行时)和FCL(框架类库),CLR是.NET框架的基础 2.框架核心类库: System.Collections.Generic: ...

  8. ABP领域层

    1.实体Entites 1.1 概念 实体是DDD(领域驱动设计)的核心概念之一. 实体是具有唯一标识的ID且存储在数据库总.实体通常被映射成数据库中的一个表. 在ABP中,实体继承自Entity类. ...

  9. Android Bitmap 和 ByteArray的互相转换

    Android Bitmap 和 ByteArray的互相转换 移动平台图像处理,需要将图像传给native处理,如何传递?将bitmap转换成一个 byte[] 方便传递也方便cpp代码直接处理图像 ...

  10. Mono 3.2.3 Socket功能迎来一稳定的版本

    由于兴趣自己业余时间一直在搞.net下面的通讯应用,mono的存在得以让.NET程序轻松运行在Linux之下.不过经过多尝试Socket相关功能在Mono下的表现并不理想.不管性能还是吞吐能力方面离我 ...