电脑安全

您当前的位置:主页 > 电脑安全 >

Windows 下 Apache 1.3 以 FastCGI 模式运行 PHP-网络编程

来源:[db:来源]标题:   模式    编辑:电脑技术全能网 时间:2019-09-18 16:50

原标题:Windows 下 Apache 1.3 以 FastCGI 模式运行 PHP-网络编程
   我始终以来都是以 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 的应用还停顿在很低级的阶段,仅看成抛砖引玉,盼望有更成熟的处理计划呈现。

上一篇:php 静态化页面 生成静态页面-网络编程

下一篇:没有了