分类目录归档:安装与配置

win+apache+php5.3.x+fastcgi+zend guard loader

背景:
win7+apache2.4 vc9 + php5.3.20 nts vc9 + LoadModule fcgid_module modules/mod_fcgid.so +zend gurad loader3.3
note:php5.3与zend解密组合 只能是php nts 版的 5.3版本的php包里没有php5apache2_x.dll 即不能用apache2handler方式 所以选择fastcgi

配置:
在apache的httpd.conf最下面添加如下

不能启动的问题:

1 注意如果你以前指定了PHPIniDir的位置 一定要注释掉!!!!!
2 如果出现了诡异的html无法解析 那么很有可能是缺少
DefaultType text/plain
解释:
有时会发生这样的事:服务器会被要求提供一个文档,而这个文档的类型无法由它的MIME类型映射所决定。
服务器必须通知客户端其文档的内容类型。所以当一个未知类型出现时,将会使用DefaultType 。

或者你也可以用AddType text/html .html 来指定 这句话就是指将html后缀的文件当做text/html

附加zend:
在php.ini中附加
[Zend]
zend_extension=”E:/web/php5.3.20ts/extras/ZendLoader.dll”
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3

参考资料:

http://fuzzytolerance.info/blog/apache-mod_fcgid-and-php-on-windows/

SAPI CLI CGI 名称解释

SAPI ==Server Application Programming Interface  即服务端应用编程端口
note: sapi不是isapi isapi只是sapi的一种 是微软提供的

CLI和 CGI 是不同的 SAPI。

在 PHP 4.2.0 到 PHP 4.2.3 之间的 Windows 发行包中,CLI 的文件名为 php-cli.exe,相同文件夹下的 php.exe 为 CGI。从 PHP 4.3.0 版本开始,Windows 的发行包中 CLI 的执行文件为 php.exe,被放置在一个单独的名为 cli 的文件夹下,即 cli/php.exe。在 PHP 5 中,CLI 存在于主文件夹中,名为 php.exe,而 CGI 版本名为 php-cgi.exe

从 PHP 5 起,一个名为 php-win.exe的新文件随包发布。它相当于 CLI 版本,但是 php-win 不输出任何内容,便不提供控制台(不会弹出“DOS 窗口”)。这种方式类似于 php-gtk。需要使用 –enable-cli-win32选项来配置它。

Note: 如何得知自己使用的是哪个 SAPI?

在命令行下,运行 php -v 便能得知该 php 是 CGI 还是 CLI。请参考函数 php_sapi_name() 以及常量 PHP_SAPI

string php_sapi_name ( void )

Returns a lowercase string that describes the type of interface (the Server API, SAPI) that PHP is using. For example, in CLI PHP this string will be “cli” whereas with Apache it may have several different values depending on the exact SAPI used. Possible values are listed below.

Returns the interface type, as a lowercase string.

Although not exhaustive, the possible return values include aolserverapacheapache2filterapache2handlercaudiumcgi (until PHP 5.3), cgi-fcgiclicontinuityembedisapilitespeedmilternsapiphttpdpi3webroxenthttpdtux, and webjames.

以上是引用的官方文档  从这里我们可以看出 cgi apache2handler fasctcgi isapi 都只是一种sapi而已!!!

区别我们在上一篇文章可以看到

php各种运行模式

人都搞晕了 总结一下:
php用很多运行模式 基本上我们在win下开发中常用的都是把php当做apache一个模块 通过LoadModule php5_module “E:/path/php5apache2_x.dll 来生效

这就是典型的模式了

APACHE2HANDLER
PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出 现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计 算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。
apache模块的DLL:
该运行模式是我们以前在windows环境下使用apache服务器经常使用的,而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。(是apache在CGI的基础上进行的一种扩展,加快PHP的运行效率)
isapi  apachle module (loadmodule  xxxx.dll)都是多线程
fastcgi 是多进程
nts版本的php适合fastcgi
ts版本的php适合isapi or Apache  2.x  Handler

参考资料:我就不复杂粘贴了