zoukankan      html  css  js  c++  java
  • 转载:配置Windows下Nginx + PHP 开发环境

    用 Windows 2008 和Windows 2008 R2 一年多了。
    为了追新和探索,一直使用的 IIS7.0/7.5 + FastCgi 的方式来运行PHP。
    1则太笨重 2来各种配置的测试不方便。
    IIS7/7.5的特性基本已经了解了,而且短期内也不准备学习.net程序,so为了保持和服务器的一致,将本机也配制成了Nginx + PHP的环境,用来开发与测试。
    1 先到以下地址下载合适的版本

    http://nginx.org/en/download.html
    http://windows.php.net/download
    我下载的版本是 Nginx/Windows-0.8.36 和 PHP-5.3.2(VC9 x86 Non Thread Safe)Zip包。
    分别解压到了
    D:\webserver\nginx

    D:\webserver\php
    2 配置nginx

    打开D:\webserver\nginx\conf\nginx.conf
    将从server开始的 每一行前面都增加#注释掉包括server,但是不要注释掉最后一个 } 。
    然后在#server前面粘贴以下内容

    server {
    listen 80;
    server_name localhost;
    root "D:/web/new/localhost";
    index index.html index.htm index.php;

    location ~ \.php {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
    }

    这代表着配置了第一个虚拟主机
    localhost域名 将配置在D:/web/new/localhost 目录下
    而这里必须使用/符号 而不能使用windows格式的\符号
    否则会启动不来,查看日志会发现被告知找不到 D:\webew 这个目录。
    在新配置的server 上一行加入

    autoindex on;

    以打开查看目录选项,便于开发。

    然后运行d:\webserver\nginx\nginx.exe
    在建立 D:\web\new\localhost
    并在该文件夹随便建立几个文件和文件夹。
    在浏览器中输入 http://localhost
    可以浏览目录,说明nginx启动成功。
    3 配置 php
    复制D:\webserver\php\php.ini-development
    并改名为 D:\webserver\php\php.ini
    打开php.ini
    查找short_open_tag = Off
    修改为 short_open_tag = On
    在文件末尾加入

    extension_dir = "D:\webserver\php\ext"

    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_sqlite.dll
    extension=php_sockets.dll
    extension=php_sqlite.dll
    extension=php_sqlite3.dll
    extension=php_exif.dll
    date.timezone = Asia/Chongqing

    以打开常用的扩展,并设置默认时区为重庆。
    保存之。
    下面运行
    D:\webserver\php\php-cgi.exe -b 127.0.0.1:9000 -c D:\webserver\php\php.ini
    再 d:\web\new\localhost 目录下建立 phpinfo.php
    输入

    <?php
    phpinfo();
    ?>

    再浏览器里输入 http://localhost/phpinfo.php
    可以看到phpinfo信息 表示配置完成。
    4 制作维护脚本,并设置为开机自启动。
    由于是开发环境,所以不必添加为系统服务,只要开机能启动就可以了。
    将 d:\webserver\nginx\nginx.exe 创建一个狂接方式,并添加到 开始菜单-->启动项 里面去。
    这样开机nginx就启动了。
    在 d:\webserver 文件夹下建立 nginx_reload.txt文件。
    里面输入

    d:
    cd \webserver\nginx\
    nginx.exe -s reload

    然后修改扩展名,为nginx_reload.bat。
    这样当修改虚拟主机配置后,或修改rewrite规则后,可直接双击该文件完成nginx配置的重新加载。
    而不必再在任务管理器内结束2个nginx.exe进程,再双击nginx.exe以完成重启。
    php的启动比较特殊,启动后控制台窗口会一直停留着,如果关闭控制台,或按Ctrl C ,则php-cgi.exe进程会被终止。
    所以要建立一个后台运行的vbs脚本。
    在 d:\webserver 文件夹下建立一个 php.txt文件
    输入

    Set objShell = CreateObject("Wscript.Shell")
    objShell.Run("tskill php-cgi"), 0, TRUE
    objShell.Run("D:\webserver\php\php-cgi.exe -b 127.0.0.1:9000 -c D:\webserver\php\php.ini"), 0, TRUE

    并改名为php.vbs
    这时候双击此文件,会杀掉所有正在运行的php-cgi.exe进程,并重新启动一个php-cgi.exe进程。
    由于是开发环境,我们只启动一个php-cgi.exe进程就可以了。
    将此文件创建一个快捷方式,并添加到 开始菜单-->启动项 里面去。
    这样 php就开机自动启动了。
    下面可以修改一下php.ini文件,和重启一下电脑测试看看是否管用。
    5 配置PATH_INFO 变量,以支持PHP框架中的URL路由。
    现有的各种php框架中,都有url路由功能,使url格式都为 http://example.com/index.php/object/action/value/
    这是基于 php的全局变量 $SERVER['PATH_INFO']的。
    而nginx只对 php-cgi.exe进行简单的代理,并不支持 PATH_INFO。
    所以我们需要略微修改配置
    打开 d:\webserver\nginx\conf\fastcgi.conf
    加入一行

    fastcgi_param PATH_INFO $fastcgi_script_name;

    打开 d:\webserver\nginx\conf\nginx.conf
    修改所有虚拟主机配置里的

    location ~ \.php$ {
    ....
    }

    去掉 \.php$ 后面的$
    (当然,本文中的已去掉)。
    然后我们运行 d:\webserver\nginx_reload.bat。
    这时 我们的nginx 就支持 url路由了。

    原文地址为:http://blog.daweiba.com/read.php/245.htm   摘自 大尾巴自留地

  • 相关阅读:
    POJ 1703 Find them, Catch them
    POJ 2236 Wireless Network
    POJ 2010 Moo University
    POJ 2184 Cow Exhibition
    POJ 3280 Cheapest Palindrome
    POJ 3009 Curling 2.0
    POJ 3669 Meteor Shower
    POJ 2718 Smallest Difference
    POJ 3187 Backward Digit Sums
    POJ 3050 Hopscotch
  • 原文地址:https://www.cnblogs.com/naniannayue/p/1794525.html
Copyright © 2011-2022 走看看