nginx上迄今为止较为完美的PHP支持配置文件
时间:2010-08-11
来源:互联网
本帖最后由 hightman 于 2010-08-11 16:13 编辑
由于某些原因,开始考虑nginx来作为一部分WEB服务器,而 nginx 对于 PHP的支持由于内在原理只能通过FASTCGI的方式,而 NGINX 本身的各种模块也都基于 location 等规则指令。
最典型的 php 配置(包括官方推荐的各种配置说明书)都是检测URL是否以 .php 结尾,而当需要支持PATH_INFO时则只是简单检测URL中是否包含 .php 。
这个做法最明显的缺陷是当存在包含.php的目录时,访问该目录或目录下的相关文件都会不正确,很多朋友的解决办法就是避免出现这样的目录。现提供一个完美也安全的配置供参考(不会出现80SEC中提到的所谓严重BUG)
复制代码
其中 fastcgi.conf 懂 nginx 的应该都懂的,无非是一些 fastcgi_param 的指定,这里就不贴了。
附,如果不需要PATHINFO支持其实只要第一段就够了,也不用这么复杂了。
由于某些原因,开始考虑nginx来作为一部分WEB服务器,而 nginx 对于 PHP的支持由于内在原理只能通过FASTCGI的方式,而 NGINX 本身的各种模块也都基于 location 等规则指令。
最典型的 php 配置(包括官方推荐的各种配置说明书)都是检测URL是否以 .php 结尾,而当需要支持PATH_INFO时则只是简单检测URL中是否包含 .php 。
这个做法最明显的缺陷是当存在包含.php的目录时,访问该目录或目录下的相关文件都会不正确,很多朋友的解决办法就是避免出现这样的目录。现提供一个完美也安全的配置供参考(不会出现80SEC中提到的所谓严重BUG)
- ## PHP scripts support
- location ~ \.php$ {
- if (-d $request_filename) {
- rewrite ^ $uri/ redirect;
- }
- if (!-f $request_filename) {
- return 404;
- }
- include fastcgi.conf;
- }
-
- ## PHP with pathinfo
- location ~ \.php/ {
- try_files $uri $uri/ @fastcgi;
- }
-
- ## FastCGI handler
- location @fastcgi {
- fastcgi_split_path_info ^(.+?\.php)(/.*)$;
- if (!-f $document_root$fastcgi_script_name) {
- return 404;
- }
- include fastcgi.conf;
- }
附,如果不需要PATHINFO支持其实只要第一段就够了,也不用这么复杂了。
作者: hightman 发布时间: 2010-08-11
学习了~

作者: HH106 发布时间: 2010-08-11
nginx 好安装不。有机会一定尝试一下。都用APACHE了。
作者: renxiao2003 发布时间: 2010-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28