本来在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目录下文件不存在,自动转到另一个服务器去取),用IIS发现很难做到这点,于是决定搭建nginx的开发环境,通过配置实现这一点。

首先,google nginx和php,分别到他们的官网把最新版本的下载回来,我当时下的PHP是5.4.3的版本,nginx是1.5.2,我把他们都放在D盘下一个叫webserver的文件夹里,然后开始做配置了。

nginx的启动很简单,进入它的目录,然后双击nginx.exe,如果没有端口冲突等问题的话,直接在浏览器输入localhost就可以访问welcome to nginx字样的网页了,这是默认的欢迎页面,放在自带的默认网页文件目录html下的。难道就这么简单吗?当然不是的。

这时如果你在html目录下建一个php文件,写上一句测试php环境的最经典的<?php phpinfo(); ?>,然后在浏览器输入这个php文件的路径进行访问,你会发现nginx根本不懂怎样去解析php代码,这是因为nginx与PHP还没有配合起来。按道理来说,当遇到php文件的时候,nginx应该把它交给php的fast-cgi来处理,然后把处理完的结果返回给客户端(浏览器)的。

怎样告诉nginx当遇到php文件时交给谁处理呢?打开nginx1.5.2的文件夹,找到conf目录,编辑目录下的nginx.conf文件,我的编辑结果如下所示,具体配置过程中需要注意什么请看注释:

server {
listen 80;
server_name localhost; charset utf-8; location / {
root E:/work/jentian/client;//html文件目录,由于我们项目的客户端代码与服务端服务是严格分开的,所以这里的root跟php的root不同
index index.html index.htm;
} location ~ \.php {
root E:/work/jentian/server; //php文件目录
fastcgi_param SCRIPT_FILENAME E:/work/jentian/server$fastcgi_script_name;//注意,$fastcgi_script_name前面的路径必须与root是一致的
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}

nginx的配置也就这么多了,很简单吧,但这时候当你刷新php页面的时候,会发现nginx现在还是没有办法解析php文件,原因在于php的fast-cgi还没有启动,如果打开一个普通的命令提示符窗口,然后输入命令启动fast-cgi时,启动后这个窗口是不能关闭的,否则fast-cgi的进程也会终止,不能继续解析php文件了,后来查了一下,原来windows是有一个运行隐形控制台的方法的,用这个方法启动fast-cgi,就不怕关闭控制台后fast-cgi也跟着结束的问题的。这个文件叫RunHiddenConsole.exe,系统是没有自带的,所以要执行下面的批处理文件之前,需要百度一下,把它下载下来放到系统的system32文件夹中就可以了。

最后,写了一个批处理文件来启动fast-cgi和nginx,这能就能一键启动nginx+php的环境了。下面是这个批处理文件的内容:

@echo off

set PHP_FCGI_MAX_REQUESTS = 1000

echo Starting PHP FastCGI...
rem 下面这里的分别替换成你的php-cgi.exe和php.ini的路径 ,后面的-b,-c等参数必须保留且注意前后空格
RunHiddenConsole D:/webServer/php-5.4.3/php-cgi.exe -b 127.0.0.1:9000 -c D:/webServer/php-5.4.3/php.ini //这里 echo Starting nginx...
rem 注意替换成你的nginx目录
D:/webServer/nginx-1.5.2/nginx.exe -p D:/webServer/nginx-1.5.2/ cd D:/webServer/nginx-1.5.2/ pause

把这个批处理文件保存到好,双击,就能启动你的nginx+php环境了,这时再刷新一下你的phpinfo页面,一切正常了。

淘宝充值小店: http://cn008.taobao.com

友情链接:井田商学院

win7下搭建nginx+php的开发环境的更多相关文章

  1. win7下搭建nginx+php的开发环境(转)

    在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目录下 ...

  2. windows下搭建nginx+php+laravel开发环境(转)

    1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: 1) 下载 nginx1.14.0(版本根据自 ...

  3. Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试

    Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...

  4. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  5. react-native —— 在Windows下搭建React Native Android开发环境

    在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...

  6. windows下搭建Apache+Mysql+PHP开发环境

    原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5. ...

  7. Linux下搭建gtk+2.0开发环境

    安装gtk2.0 sudo apt-get install libgtk2.0-dev 查看 2.x 版本 pkg-config --modversion gtk+-2.0 #有可能需要sudo ap ...

  8. Ruby on Rails入门——macOS 下搭建Ruby Rails Web开发环境

    这里只介绍具体的过程及遇到的问题和解决方案,有关概念性的知识请参考另一篇:Ruby Rails入门--windows下搭建Ruby Rails Web开发环境 macOS (我的版本是:10.12.3 ...

  9. Mac下搭建Cocos2d-x-3.2的开发环境

    配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 摘要:本文目标为在Xcode成功运行HelloWorld程序. 一.下载必要项 1.从官网下载Cocos2d-x- ...

随机推荐

  1. 转:PHP 使用ZipArchive压缩文件并下载

    原文来自于:http://courages.us/archives/176 网站上需要提供一些打印数据给用户下载,这些文件每次都需要重新生成,因为随时都会有新的数据产生.网络上关于PHP的压缩功能实现 ...

  2. 一个关于多线程和DbHelper的问题

    我的初衷是这样的:在多线程环境下,每个数据库编号对应一个DbHelper对象. 下面是代码,不知道这样写有什么问题. namespace TestDAL { public class DB { pri ...

  3. poj 1275 Cashier Employment

    http://poj.org/problem?id=1275 #include <cstdio> #include <cstring> #include <algorit ...

  4. POJ3349 Snowflake Snow Snowflakes(哈希)

    题目链接. 分析: 哈希竟然能这么用.检查两片雪花是否相同不难,但如果是直接暴力,定会超时.所以要求哈希值相同时再检查. AC代码: #include <iostream> #includ ...

  5. 【规律】【贪心】【数学】HDU 5573 Binary Tree

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5573 题目大意: 从1走到第k层,下一层的数是上一层的数*2或者*2+1,可以选择加上或者减去走的数 ...

  6. DLL入门浅析(1)——如何建立DLL

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90619.html 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮 ...

  7. Spring的MVC控制器返回ModelMap时,会跳转到什么页面?

    控制器中的方法如下: @RequestMapping("/person/personDisplay") public ModelMap defaultHandler() { Sys ...

  8. 20个Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  9. 【Python排序搜索基本算法】之Prim算法

    Prim算法是实现最简单的最小生成树(MST)算法,适合于稠密图.要实现Prim算法,我们主要关注的是增量的变化,也就是从每个非树顶点到树顶点的最短距离,使得最后生成一棵包括所有顶点的树,并且这棵树的 ...

  10. Ensures there will be no 'console is undefined' errors

    很早之前项目中遇到过这种bug, 当时没有多留意,只是暂时把笔记留了下来,今天整理笔记的时候,看到了,故先整理在此,具体用法下次遇到再好好理解理解.如果有筒子遇到过,麻烦留言说一下,先谢谢啦. //E ...