王朝网络
分享
 
 
 

Windows 下 Apache 1.3 以 FastCGI 模式运行 PHP

王朝php·作者佚名  2008-05-31
宽屏版  字体: |||超大  

我一直以来都是以 ISAPI 模式运行 PHP 的,这种方式最大的缺点就是稳定性不好,当 PHP 出错的时候,Apache进程也死掉了。后来看到网上关于 PHP 以 FastCGI 模式运行的介绍,其中提到的种种好处(稳定、安全、高性能)让我决定尝试一下。

不过事情远不如预计的那么顺利。Google 了无数次也没找到一篇如何在 Windows 下用 Apache + FastCGI 跑 PHP 的资料,IIS + FastCGI 跑 PHP 的倒是不少。其中有一篇提到 Zend 公司也推荐以 FastCGI 模式运行 PHP(http://phplens.com/phpeverywhere/fastcgi-php)。

经过几个小时的摸索,终于成功实现了 Apache 1.3 + FastCGI 跑 PHP。

准备工作:

首先访问 http://www.fastcgi.com/dist/ 下载用于 Apache 的 mod_fastcgi。我使用的是 mod_fastcgi-2.4.2-AP13.dll。下载后将这个文件复制到 Apache 的 modules 目录中。

下载 PHP(我使用的 PHP-5.0.4),并解压缩,根据需要修改 php.ini 文件。注意不需要从 PHP 所在目录复制任何文件到 Windows 目录中。

修改配置:

然后修改 httpd.conf 文件,加入下面几行:

LoadModule fastcgi_module modules/mod_fastcgi-2.4.2-AP13.dll

ScriptAlias /fcgi-php5/ "d:/usr/local/php-5.0.4/"

FastCgiServer "d:/usr/local/php-5.0.4/php-cgi.exe" -processes 3

# 说明:此处的 -processes 3 表示启动三个 php-cgi.exe 进程,

# 关于 FastCgiServer 的详细参数请参考 FastCGI 文档。

AddType application/x-httpd-fastphp5 .php

Action application/x-httpd-fastphp5 "/fcgi-php5/php-cgi.exe"

# 说明:根据你的 PHP 文件所在位置修改上面两处黑体字。

修改完成后,重新启动 Apache 即可。

常见问题:

根据我的多次试验,最容易出现的几个问题主要都是由路径引起的。因此首先检查 php.ini 和 httpd.conf 文件中的所有路径是否正确。其次就是如果系统中以前安装过 PHP,那么要将 C:Windowsphp.ini 改名或删除。

其次还要检查 PHP 文件所在目录是否有足够的权限(我都是设置为 Everyone - 完全控制,反正开发用机不用考虑那么多安全限制)。

FastCGI 模式运行 PHP 的优点:

以 FastCGI 模式运行 PHP 有几个主要的好处。首先就是 PHP 出错的时候不会搞垮 Apache,只是 PHP 自己的进程当掉(但 FastCGI 会立即重新启动一个新 PHP 进程来代替当掉的进程)。其次 FastCGI 模式运行 PHP 比 ISAPI 模式性能更好(我本来用 ApacheBench 进行了测试,但忘了保存结果,大家有兴趣可以自己测试)。

最后,就是可以同时运行 PHP5 和 PHP4。参考下面的配置文件,分别建立了两个虚拟主机,其中一个使用 PHP5,另一个使用 PHP4。

LoadModule fastcgi_module modules/mod_fastcgi-2.4.2-AP13.dll

ScriptAlias /fcgi-php5/ "d:/usr/local/php-5.0.4/"

FastCgiServer "d:/usr/local/php-5.0.4/php-cgi.exe" -processes 3

ScriptAlias /fcgi-php4/ "d:/usr/local/php-4.3.11/"

FastCgiServer "d:/usr/local/php-4.3.11/php.exe"

Listen 80

NameVirtualHost *:80

DocumentRoot d:/www

Options Indexes FollowSymlinks MultiViews

ServerName php5.localhost

AddType application/x-httpd-fastphp5 .php

Action application/x-httpd-fastphp5 "/fcgi-php5/php-cgi.exe"

IndexOptions FancyIndexing FoldersFirst

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

Listen 8080

NameVirtualHost *:8080

DocumentRoot d:/www

Options Indexes FollowSymlinks MultiViews

ServerName php4.localhost

AddType application/x-httpd-fastphp4 .php

Action application/x-httpd-fastphp4 "/fcgi-php4/php.exe"

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

使用上面的配置,访问 http://localhost/ 就使用 PHP5,而访问 http://localhost:8080/ 就使用 PHP4。所以只要合理配置,就可以让不同的虚拟主机使用不同版本的 PHP。

FastCGI 模式的一些缺点:

说完了好处,也来说说缺点。从我的实际使用来看,用 FastCGI 模式更适合生产环境的服务器。但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调试程序时,由于 FastCGI 会认为 PHP 进程超时,从而在页面返回 500 错误。这一点让人非常恼火,所以我在开发机器上还是换回了 ISAPI 模式。

最后,在 Windows 中以 FastCGI 模式存在潜在的安全漏洞。因为我还没有找到如何在 Windows 环境下实现 SuEXEC 的方法,因此 PHP 的进程总是以最高权限运行,这从安全角度来看显然不是个好消息。

结束语:

本文对 FastCGI 的运用还停留在很初级的阶段,仅当作抛砖引玉,希望有更成熟的解决方案出现。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有