在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文件的路径进行访问,你会发现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也跟着结束的问题的。最后,写了一个批处理文件来启动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页面,一切正常了。

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. su su- sudo

    su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码. linux su 命令 建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了 关于su .s ...

  2. 学习PHP:PHP提取的时间出现不准确

    php函数date("Y-n-d   H-i-s");   输出的时间与当地时间居然相差了8个小时.     原因是从php5.1.0开始,php.ini里加入了date.time ...

  3. setTag和findViewByTag的使用具体解释

    在使用ListView或者GridView的时候. 假设想要在Aciviry中获取到Item中的子View,比較频繁的使用是:getChildAt(int position): 之前自己差点儿不会去使 ...

  4. AAuto如何设置字体大小

    在代码视图中(按钮呈现的是设计视图,你再按一下就切换成代码视图了)可以设置缩放比率,右下角也可以设置字体大小   如果你的"设计视图"是灰色不可点击,那是因为你的代码根本没有按钮, ...

  5. 微软Azure公有云个人用户是否能支付得起?

    个人建立自己的站点是普通"白领"的愿望.由于,我们的大脑分泌的脑汁须要排泄渠道.怎么办呢? 依据微软公有云的公开报价(Pricing),租用单核CPU.0.75GB内存,20GB硬 ...

  6. 【Python】列表~深入篇

    列表是一列按特定顺序排列的元素组成. 在Python中,用方括号[]来表示列表 下面是一个语言列表 Language = ['Chinese','English','Franch','Deutsch' ...

  7. .net 网站登录

    如何实现,按回车键,自动登录,在相应控件上添加onkeypress事件 function CheckCodePress(e){ var e = e||window.event if (e.keyCod ...

  8. C语言重要概念汇总

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

  9. DDR电源硬件设计要点

    一.DDR电源简介 1. 电源 DDR的电源可以分为三类: a.主电源VDD和VDDQ,主电源的要求是VDDQ=VDD,VDDQ是给IO buffer供电的电源,VDD是给但是一般的使用中都是把VDD ...

  10. 将C#文档注释生成.chm帮助文档(转)

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...