window+nginx+php

今天在Windows上配置了下nginx,看了不少其他大牛们记录的博客,自己也操作了一番,记录一下备忘。

nginx download: http://nginx.org/en/download.html
php download: http://php.net/

windows下nginx+php的安装配置如下:
1、安装php(D:/php)
2、配置php.ini

    extension_dir = "./ext"; 更改为 extension_dir = "D:/php/ext";
    去掉如下两句的注释符,这两句是php连接mysql的必须链接库
    ;extension=php_mysql.dll
    ;extension=php_mysqli.dll
    去掉下句的注释符
    ;cgi.fix_pathinfo=1    

3、安装nginx(D:/nginx)

4、配置nginx.conf
    打开D:/nginx/conf/nginx.conf,找到

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    先将前面的“#”去掉

    root  html;     //该句表示站点根目录,可以更换为你想要的目录

  再把标记为红色的/scripts改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,当然也可以更换为绝对路径。这是改完后的:

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
         root           html;
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_index  index.php;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          include        fastcgi_params;
    }

    输入如下命令启动phpcgi:
    D:/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/php/php.ini    
    然后启动nginx,即nginx目录下的nginx.exe。

    为了方便你也可以自己写一个bat脚本来快速执行以上命令,代码如下:
    启动脚本:

    @echo off  
    REM Windows 下无效  
    REM set PHP_FCGI_CHILDREN=5  
 
    REM 每个进程处理的最大请求数,或设置为 Windows 环境变量  
    set PHP_FCGI_MAX_REQUESTS=1000  
   
    echo Starting PHP FastCGI...
    RunHiddenConsole D:/xampp/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/xampp/php/php.ini  
   
    echo Starting nginx...  
    D:/nginx-1.5.5/nginx.exe 

    停止脚本:

  @echo off  
  echo Stopping nginx...  
  taskkill /F /IM nginx.exe > nul  
  echo Stopping PHP FastCGI...  
  taskkill /F /IM php-cgi.exe > nul  
  exit 

其中RunHiddenConsole.exe为隐藏命令提示符窗口的一个工具。以上执行以后窗口可以关闭,nginx、phpcgi服务会在后台执行。

RunHiddenConsole.exe下载地址http://pan.baidu.com/share/link?shareid=364654&uk=2819113184跟脚本放到同一个目录下

=============================

在配置的时候出现了一个问题,对于新手来说估计有写也会遇到这个问题,当然网上也有很多的答案,这里记录一下解决方案。
    问题:出现No input file specified问题
    (1) 路径不合

    root     html;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    (2)配置不当

  在php.ini(/usr/local/php/etc/php.ini)的配置中中找到
     cgi.fix_pathinfo=0; 将其改成cgi.fix_pathinfo=1

我是一个nginx菜鸟,入门都不算,如果哪位路过的大牛有好的教程或资料,望能够分享一下,3Q。[505600376@qq.com]

原文地址:https://www.cnblogs.com/MonkeyF/p/3348721.html