Cgi模式和模块dll加载办法比较:

Cgi模式下

apache调用外部实行器php.exe实行php代码,并将阐明后天生的html代码和原html整合,再通报给apache做事器。

其在实行时每次都须要重新解析php.ini、重新载入全部dll扩展并重初始化全部数据构造,运行速率非常慢,但由于是外部加载实行器,

apache自动执行phpphp在apache运行的几种方法 Python

php代码实行出错不会导致apache崩溃。

在模块化(DLL)

PHP是与Web做事器一起启动并运行的。
以是从某种角度上来说,以apache模块办法安装的 PHP4有着比CGI模式更好的安全性以及更好的实行效率和速率。

Cgifastcgi模式比较:

Fastcigcgi的升级版,Cgifastcgi事情模式大抵相同,但fastcgi模式中fastcgi的进程管理器可用来管理cgi阐明器,

该管理器在cgi阐明器完成要求后,会处于挂起状态,用以等待接下来的要求,

由于向比较cgi每次都须要重新解析php.ini、重新载入全部dll扩展并重初始化全部数据构造,fastcig模式明显要快很多。

三种模式在apache中利用的办法如下:

一、CGI模式

PHP Apache 2中的 CGI模式。
编辑Apache 配置文件httpd.conf 如下:

# PHP4 版写法

ScriptAlias /php/ \"大众D:/php/\"大众

AddType application/x-httpd-php .php

Action application/x-httpd-php \"大众/php/php.exe\"大众

# PHP5 版写法

ScriptAlias /php/ \"大众D:/php/\"大众

AddType application/x-httpd-php .php

Action application/x-httpd-php \公众/php/php-cgi.exe\"大众

二、Apache模块模式

PHP Apache 2中的 模块模式。
编辑Apache 配置文件httpd.conf 如下:

# PHP4 版写法

LoadModule php4_module \"大众D:/php/php4apache2.dll\"大众

AddType application/x-httpd-php .php

# 别忘了从 sapi 目录中把php4apache2.dll 拷贝出来!

# PHP5 版写法

LoadModule php5_module \"大众D:/php/php5apache2.dll\公众

AddType application/x-httpd-php .php

PHPIniDir \"大众D:/php\"大众

# PHPIniDir 是用来指明php配置文件php.ini 的路径

三、FastCGI模式

Apache下的FastCGI模块目前网上有两个版本 mod_fastcgi mod_fcgid
推举用 mod_fcgid

利用 mod_fcgid 配置fastCGI模式

下载的 mod_fcgid,将压缩包中的“mod_fcgid.so”文件复制到apache“modules”目录。
打开Apachehttpd.conf 文件,在末了加入如下配置:

LoadModule fcgid_module modules/mod_fcgid.so <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php #php.ini的存放目录 FcgidInitialEnv PHPRC\公众D:/PHP\"大众 # 设置PHP_FCGI_MAX_REQUESTS大于或即是FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有要求前退出 FcgidInitialEnvPHP_FCGI_MAX_REQUESTS 1000 #php-cgi每个进程的最大要求数 FcgidMaxRequestsPerProcess1000 #php-cgi最大的进程数 FcgidMaxProcesses 5 #最大实行韶光 FcgidIOTimeout 120 FcgidIdleTimeout 120 #php-cgi的路径 FcgidWrapper \公众D:/PHP/php-cgi.exe\"大众 .php AddType application/x-httpd-php .php </IfModule>

mod_proxy 代理模块

mod_proxy 代理模块

详细见 http://tcspecial.iteye.com/blog/2070075

mod_fastcgi 模块在windows上表现差强人意,极不稳定, 何况良久没掩护更新了, 不适宜用在生产环境. 在 apache 2.4 版本供应了 mod_proxy 代理模块, 可以将远端做事器映射到本地 URL 空间中,完备可以更换 mod_fastcgi

下载 apache2.4 或以上版本, 安装后会创造 modules 目录有很多代理模块 mod_proxy_ftp , mod_proxy_fcgi , mod_proxy_http 等, 实现了多种协议

#启用 fastcgi,http 协议: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_http_module modules/mod_proxy_http.so #添加代理做事: ProxyPass /baidu http://www.baidu.com ProxyPass /fcgi/ fcgi://192.168.1.82:9000/