• 转载:配置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   摘自 大尾巴自留地

  • 相关阅读:
    行规
    不要在对抽象类接口abstract virtual什么的混淆不清了
    MQ与Webservice的区别
    Asp.net MVC流程简述
    Lambda表达式树
    mysql用户管理、权限管理
    mysql锁、事务、存储引擎、索引
    mysql新增、删除、修改
    mysql基础
    linux的任务计划与mail
  • 原文地址:https://www.cnblogs.com/naniannayue/p/1794525.html
Copyright © 2020-2023  润新知