Nginxphp
Nginx有官方native build的32bit版本, 也有cygwin build的64bit版本, 出于稳定性的考虑, 仍是选了官方的32bit.html
解压, 本例中使用的路径是 C:\Servers\nginx-1.9.12 , 建立两个bat, 用于启动和关闭nginx:mysql
start_nginx.batnginx
@echo off set NGINX_HOME=C:\Servers\nginx-1.9.12 start /D %NGINX_HOME%\ %NGINX_HOME%\nginx.exe pause
stop_nginx.batc++
@echo off set NGINX_HOME=C:\Servers\nginx-1.9.12 cd %NGINX_HOME% nginx.exe -s quit pause
PHPweb
选的版本是 7.0.4 64位 NTS(非线程安全) VC14, 本例中解压至目录 C:\Servers\php-7.0.4-nts-Win32-VC14-x64 , redis
使用php.ini-development 建立 php.ini, 修改如下几处, (参考 http://man.chinaunix.net/develop/php/php_manual_zh/html/ini.core.html )sql
date.timezone = Asia/ChongQing
enable_dl = On #容许用户在运行时加载PHP扩展,即在脚本运行期间加载 cgi.force_redirect = 0 # 启用时, 防止任何人经过如 http://my.host/cgi-bin/php/secretdir/script.php 这样的 URL 直接调用 PHP。PHP 在此模式下只会解析已经经过了 web 服务器的重定向规则的 URL. 在大多数 web 服务器中以 CGI 方式运行 PHP 时颇有必要用 cgi.force_redirect 提供安全。PHP 默认其为 On。能够将其关闭,但风险自担。注: Windows 用户:能够安全地在 IIS 之下将其关闭,事实上必须这么作。要在 OmniHTTPD 或 Xitami 之下使用也必须将其关闭。 cgi.fix_pathinfo=1 #1:PHP CGI 以 / 为分隔符号从后向前依次检查请求的路径, 对 CGI 提供了真正的 PATH_INFO/PATH_TRANSLATED 支持。之前 PHP 的行为是将 PATH_TRANSLATED 设为 SCRIPT_FILENAME,而无论 PATH_INFO 是什么。有关 PATH_INFO 的更多信息见 cgi 规格。将此值设为 1 将使 PHP CGI 修正其路径以遵照规格。设为 0 将使 PHP 的行为和从前同样。默认为零。用户应该修正其脚本使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。 fastcgi.impersonate = 1 #IIS(在基于 WINNT 的操做系统上)中的 FastCGI 支持模仿客户端安全令牌的能力。这使得 IIS 可以定义运行时所基于的请求的安全上下文。Apache 中的 mod_fastcgi 不支持此特性(03/17/2002)。若是在 IIS 中运行则设为 1。默认为 0。 cgi.rfc2616_headers = 1 #指定 PHP 在发送 HTTP 响应代码时使用何种报头。若是设定为 0,PHP 发送一个 Status: 报头,Apache 和其它 web server 都支持。若是此选项设定为 1,PHP 将发送 RFC 2616 兼容的报头。除非你知道本身在作什么,不然保留其值为 0。
添加扩展, 修改如下几处shell
extension_dir = "./ext" # 指定win7下的扩展目录 # 并取消用到的扩展前面的注释
启动的命令是api
C:\>Servers\php-7.0.4-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9000
若是须要后台启动PHP CGI, 使用vbs, 建立 startup.vbs
createobject("wscript.shell").run "c:\Servers\php-7.0.4-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9000",0,false
中止PHP CGI, 建立shutdown.bat
@echo off taskkill /fi "imagename eq php-cgi.exe" pause
Nginx 启用 PHP
修改nginx.conf
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; }
重启nginx
注:PHP5.6及如下, 须要将mysql 的 libmysql.dll 拷贝至 C:\Windows\SysWOW64 PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql, 故libmysql.dll已经不须要若是提示api-ms-win-crt-runtime-l1-1-0.dll丢失, 请安装 visual c++ redistributable 2015, 从微软官网上能够下载. 安装对系统的要求必须在win7 sp1以上, 若是win7还未升级的, 安装会失败.