博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在Nginx下配置PHP程序环境
阅读量:7195 次
发布时间:2019-06-29

本文共 1720 字,大约阅读时间需要 5 分钟。

1.nginx与PHP的关系

 

首先来看nginxphp的关系,

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 完成.

 

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

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

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

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

3.管理PHP-FPM

 

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

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

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

仅仅去参考 nginxPHP来看: 理解成: NginxPHP的客户端, PHPnginx提供服务(执行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测试文件

 

测试效果, 要保证 nginxPHP-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服务器支持URLpathinfo部分才可以.

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

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

nginx.conf:

重启nginx sbin/nginx -s reload

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

转载地址:http://oftkm.baihongyu.com/

你可能感兴趣的文章
YUV格式详解
查看>>
内核开发基础——make mrproper及mrproper的含义
查看>>
MSSQL常用操作及方法总结
查看>>
MVC 4 教程
查看>>
windows server 2012 QQ交流群:256418966
查看>>
[转]SQLiteOpenHelper
查看>>
QT在CT上的安装及运行
查看>>
Entity Framework 使用注意:Where查询条件中用到的关联实体不需要Include
查看>>
有用网站
查看>>
Android——事件处理模型一(基于回调机制的事件处理)(转)
查看>>
win8 64位+Oracle 11g 64位下使用PL/SQL Developer 的解决办法
查看>>
【转】iOS自动布局进阶用法
查看>>
其实没那么复杂!探究react-native通信机制
查看>>
利用 IHttpModule 自定义 HTTP 处理模块
查看>>
数据挖掘十大经典算法[转]
查看>>
构建高性能web之路------工具和环境准备篇(转)
查看>>
解决SharePoint中GridView导出Excel按钮的问题
查看>>
Linux上的管道信号SIGPIPE
查看>>
仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ
查看>>
JBoss发布Hibernate 4.0
查看>>