如何在Nginx下配置PHP程序环境
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程序环境的更多相关文章
- 如何在IIS7下配置ASP+ACCESS环境
如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...
- Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持
前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fi ...
- 一步一步教你如何在linux下配置apache+tomcat(转)
一步一步教你如何在linux下配置apache+tomcat 一.安装前准备. 1. 所有组件都安装到/usr/local/e789目录下 2. 解压缩命令:tar —vxzf 文件名(. ...
- # 如何在Windows下运行Linux程序
如何在Windows下运行Linux程序 一.搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTs ...
- [原创]IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135)
IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135) http://user.qzone.qq.com/93701178/blog/1398155812 操作系统更新至Win7或Wi ...
- nginx下配置多个web服务
参考 nginx配置详解 nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...
- NGINX下配置404错误页面的方法分享
NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下 1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcg ...
- Linux下配置PHP开发环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- Ubuntu Nginx下配置网站ssl实现https访问
最近在看 HTTP权威指南 看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...
随机推荐
- 平台之大势何人能挡? 带着你的Net飞奔吧!
镇楼图: 跨平台系列: Linux基础 1.Linux基础学习 By dnt http://www.cnblogs.com/dunitian/p/4822807.html 环境配置 1.Hyper-v ...
- CodeSimth - .Net Framework Data Provider 可能没有安装。解决方法
今天想使用CodeSimth生成一个sqlite数据库的模板.当添加添加数据库的时候发现: .Net Framework Data Provider 可能没有安装. 下面找到官方的文档说明: SQLi ...
- 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- scp报错 -bash: scp: command not found
环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- CSS3新特性应用之结构与布局
一.自适应内部元素 利用width的新特性min-content实现 width新特性值介绍: fill-available,自动填充盒子模型中剩余的宽度,包含margin.padding.borde ...
- ios label 自动计算行高详解
在OC当中自动计算行高主要调用系统的 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ffffff } span ...
- asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...
- ubuntu+mono+jexus 搭建.net的web平台 实现.net跨平台
准备工作: vmware 用来安装 ubuntu 下载地址:VMware-workstation-9.0.1-894247.exe.tar 注册码: 1A4P8-DMK0N-FZ431-7K8NH-2 ...
- 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具
上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...