window+nginx+php环境配置 附配置搭配说明

yipeiwu_com6年前PHP代码库
1,下载PHP
  php下载版本比较多,其中,
  vc9=vs2008编译,推荐使用IIS+php搭配模式,
  vc6=vs6编译,推荐使用apache+php方式搭配,
  Thread Safe,线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
  Non Thread Safe,
  再来看PHP的两种执行方式:ISAPI和FastCGI。
  ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
  而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
  官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
2,配置php
  解压到某个目录,如c:/php345
  将php.ini-development重命名为php.ini
  fastcgi.impersonate=1 默认为0,如果使用IIS,你需要开启:cgi.fix_pathinfo=1
  cgi.force_redirect=0 默认开启,如果你使用IIS,可以将其关闭
  其次指定extension_dir目录和date.timezone目录
  extension_dir = "C:/php53iis/ext"
  date.timezone= Asia/Shanghai
  修改PHP.INI配置文件中的cgi.fix_pathinfo = 1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
3,配置nginx
  解压nginx,如c:/nginx
  
  设定error.log的存放目录,将#error_log logs/error.log;的#去处,默认error.log是存放在Nginx安装目录中logs目录下。
  
  设定WEB服务器目录,类似于PHP.INI配置文件中的document_root,Nginx配置文件中的信息如下
复制代码 代码如下:

location / {
root D:/PHPWeb;
index index.php index.html index.htm;
}

复制代码 代码如下:

location ~ \.php$ {
root D:/PHPWeb;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/PHPWeb$fastcgi_script_name;
include fastcgi_params;

注意:fastcgi_param SCRIPT_FILENAME 中的/scripts修改为之前设定的WEB目录,否则会报HTTP 404错误。

  修改PHP.INI配置文件中的cgi.fix_pathinfo = 1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
4.运行
  下载RunHiddenConsole
  防火墙支援RunHiddenConsole C:/php52iis/php-cgi.exe -b 127.0.0.1:9000 -c C:/windows/php.ini

来自:http://www.cnblogs.com/ihwt/archive/2010/12/18/1909742.html

如果想比较省事的朋友可以用下面的这款软件快速部署基于Nginx的php运行环境了:
https://www.jb51.net/softs/33785.html

相关文章

PHP缓存技术的多种方法小结

1、普遍缓存技术:   数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序...

浅谈PHP的exec()函数无返回值排查方法(必看)

在安全imagemagic时 需要用到 exec很多服务器上安装失败 exec()执行外部命令失败,但没有任何错误信息。 exec执行某命令在命令行下没有问题,但是在php中就出错。这个...

php使用ob_flush不能每隔一秒输出原理分析

本文实例讲述了php使用ob_flush不能每隔一秒输出原理。分享给大家供大家参考。具体分析如下: 实现功能: 浏览器每隔一秒输出一个数字。 php.ini配置为: 版本5.3 impl...

php获取linux命令结果的实例

如果使用php命令行里想获取etho网卡的IP怎么处理呢 ? public function get_server_ip() { if (PHP_SAPI === 'cli')...

解析php中call_user_func_array的作用

一、直接调用方法复制代码 代码如下:function test($a, $b) {echo '测试一:'.$a.$b;}//调用test方法,array("asp", 'php')对应相...