zoukankan      html  css  js  c++  java
  • Win7配置Nginx+PHP7

    Nginx

    Nginx有官方native build的32bit版本, 也有cygwin build的64bit版本, 出于稳定性的考虑, 还是选了官方的32bit.

    解压, 本例中使用的路径是 C:Servers ginx-1.9.12 , 创建两个bat, 用于启动和关闭nginx:

    start_nginx.bat

    @echo off
    set NGINX_HOME=C:Servers
    ginx-1.9.12
    start /D %NGINX_HOME% %NGINX_HOME%
    ginx.exe
    pause

    stop_nginx.bat

    @echo off
    set NGINX_HOME=C:Servers
    ginx-1.9.12
    cd %NGINX_HOME%
    nginx.exe -s quit
    pause


    PHP

    选的版本是 7.0.4 64位 NTS(非线程安全) VC14, 本例中解压至目录 C:Serversphp-7.0.4-nts-Win32-VC14-x64 ,

    使用php.ini-development 创建 php.ini, 修改以下几处, (参考 http://man.chinaunix.net/develop/php/php_manual_zh/html/ini.core.html )

    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

    添加扩展, 修改以下几处

    extension_dir = "./ext"
    # 指定win7下的扩展目录
    # 并取消用到的扩展前面的注释

    启动的命令是

    C:>Serversphp-7.0.4-nts-Win32-VC14-x64php-cgi.exe -b 127.0.0.1:9000

    如果需要后台启动PHP CGI, 使用vbs, 创建 startup.vbs

    createobject("wscript.shell").run "c:Serversphp-7.0.4-nts-Win32-VC14-x64php-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:WindowsSysWOW64
    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还未升级的, 安装会失败.

  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/milton/p/5244387.html
Copyright © 2011-2022 走看看