• PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题


    一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本

        VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。

        VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。

    二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本

        先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。

    三、 PHP 的两种执行方式:ISAPI 和 FastCGI。

        ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;

        而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。

    所以,对于PHP5.2选择Thread Safe版本安装,而对于PHP5.3则下载None-Thread Safe,执行PHP比较有效率

    四、相关知识讲解

       ISAPI (Internet Server Application Programming Interface) ISAPI 服务器扩展是可以被 HTTP 服务器 加载和调用的 DLLInternet 服务器扩展也称为 Internet 服务器应用程序 (ISA

       CGI(Common Gateway Interface) 通用网关接口,其实就是一段可以在服务器端运行的程序,这段程序在用户请求时运行,它接收用户通过表单或是其他方式提交过来的数据,并使用处理这些数据 (如存入数据库,生成html页面,查询数据等),然后把处理结果返回在给用户,这里的用户其实就是浏览器。具体的步骤如下:

       1、我们通过浏览器发送请求(如提交表单)给服务器。

       2、服务器根据请求,运行CGI并把用户提交的数据交给CGI.

       3、CGI完成即定的逻辑事务,并把结果返回给用户(如生成一个html页面给浏览器)

       4、浏览器显示数据。(如显示一个页面。)

     更深入的理解CGI还要去了解如何在服务器进行配置(CREN格式服务器的配置,NCSA格式服务器的配置)。

    另外,CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。

    附件

    环境变量列表

      SERVER-NAME:运行CGI序为机器名或IP地址。

      SERVER-INTERFACE:WWW服务器的类型,如:CERN型或NCSA型。

      SERVER-PROTOCOL:通信协议,应当是HTTP/1.0。

      SERVER-PORT:TCP端口,一般说来web端口是80。

      HTTP-ACCEPT:HTTP定义的浏览器能够接受的数据类型。

      HTTP-REFERER: 发送表单的文件URL。(并非所有的浏览器都传送这一变量)

      HTTP-USER-AGENT:发送表单的浏览器的有关信息。

      GETWAY-INTERFACE:CGI程序的版本,在UNIX下为 CGI/1.1。

      PATH-TRANSLATED: PATH-INFO中包含的实际路径名。  

        PATH-INFO:浏览器用GET方式发送数据时的附加路径。

      SCRIPT-NAME: CGI程序的路径名。

      QUERY-STRING:表单输入的数据,URL中问号后的内容。

      REMOTE-HOST:发送程序的主机名,不能确定该值。

      REMOTE-ADDR:发送程序的机器的IP地址。

      REMOTE-USER:发送程序的人名。

       CONTENT-TYPE:POST发送,一般为application/xwww-form-urlencoded。

       CONTENT-LENGTH:POST方法输入的数据的字节数。

  • 相关阅读:
    大数据笔记13:Hadoop安装之Hadoop的配置安装
    Android(java)学习笔记206:JNI之工具快速开发步骤
    Android(java)学习笔记205:JNI之编写jni程序适配所有处理器型号
    JS 实现Json查询方法
    js中call与apply用法
    大数运算(待续)
    HDU 2553(N皇后)(DFS)
    C++ STL:stack和queue
    快速幂取模(POJ 1995)
    位运算
  • 原文地址:https://www.cnblogs.com/mengzhongshi/p/2805078.html
Copyright © 2020-2023  润新知