Windows下的php用IIS做Web服务好还是用Apache好

如题所述

一,在apache中php以模块的方式与apache结合的即PHPIniDir "E:\phpsite\php"(这部是设置php.ini的位置) LoadModule php5_module "E:/phpsite/php/php5apache2_2.dll"
二,在用IIS整合php时,有两种方式:ISAPI(.exe可执行文件【php.exe,php-cgi.exe】)与CGI(.dll动态链接库)模式,这两种方式,我们都可以看到phpinfo页面,但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。使用CGI就可以,这样就不必把好多文件拷到系统文件下。
三,配置文件(PHP 3 中是 php3.ini,自 PHP 4 起是 php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。
php.ini 的搜索路径如下(按顺序):
* SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令 行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)
*HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置)
*PHPRC 环境变量
*当前工作目录(对于 CLI)
*web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况)
*Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置

我在Server2003+php4的环境下遇见了这个问题,解决的方法是在前面写PATH环境变量的时候,添加一个PHPRC,指向x:\php4\php.ini,重新启动即可,如果实在还是不行的,最后还有一招就是安装zend,php加速器,因为安装zend的时候,会指定php.ini的路径,也会指定所使用的服务器是IIS还是Apache,起本质是对注册表做了修改,但是我不知道修改了哪个位置,所以我在上面的操作还是无效的情况下,最后安装Zend,终于成功解决问题了。

四,IIS下PHP的ISAPI和FastCGI比较 (2009-8-2)
1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的 用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。

3、FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载 是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。

以 ISAPI 模式运行 PHP 的,这种方式最大的缺点就是稳定性不好,当 PHP 出错的时候,Apache进程也死掉了

FastCGI 模式运行 PHP 的优点:
以 FastCGI 模式运行 PHP 有几个主要的好处。首先就是 PHP 出错的时候不会搞垮 Apache,
只是 PHP 自己的进程当掉(但 FastCGI 会立即重新启动一个新 PHP 进程来代替当掉的进程)。
其次 FastCGI 模式运行 PHP 比 ISAPI 模式性能更好

最后,就是可以同时运行 PHP5 和 PHP4

FastCGI 模式的一些缺点:
说完了好处,也来说说缺点。用 FastCGI 模式更适合生产环境的服务器。
但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调试程序时,
由于 FastCGI 会认为 PHP 进程超时,从而在页面返回 500 错误
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-08-03
微软的IIS还是不错的,只是牛的人少,不会配置。
现在有点实力的人都上linux,谁去研究windows.本回答被网友采纳

apache iis 哪个好
如果你使用的是基于Unix的系统或者需要强大的自定义和扩展能力,Apache可能是更好的选择;而如果你主要在Windows平台上工作并且习惯于使用微软技术,那么IIS可能是理想的选择。在选择时还需考虑服务器性能、扩展性、安全性等因素。

php服务器用IIS好还是用Apache好,其他的服务器怎么样
看你的项目,apache肯定好于iis的,但是apache和nginx之间也是有区别的。轻量级,同样起web 服务,比apache 占用更少的内存及资源 ,抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 ,高度模块化的设计,编写模块相对简单,社区活跃,各种高性能...

apache和iis比,有哪些方面的优点?
小提示:在windows2003系统下使用IIS比用APACHE性能要好。结论——APACHE稳定,IIS有时假死,前者占优。三、扩展性:扩展性是指WWW服务提供工具是否可以应用于多种场合,多种网络情况,多种操作系统。IIS只能在微软公司的windows操作系统下使用,离开了windows他将一事无成。无法移植到其他类型的操作系统中。...

iis apache nginx的优缺点是什么,该如何选择哪种架构
1,iis 不用说如果你程序是asp的你就只能选择iis 2,apache 这个没得说,优点很明显,稳定,强大,php可以用module的方式,如果你装了xcache,没得说apache是你最好的选择。不过apache有个很大的缺点,ddos的时候支持的并发数非常低 3,nginx 这个重点是反向代理,如果你做镜像或者网站静态页面的而且流...

php运行环境有哪些
Nginx服务器搭配PHP-FPM。Nginx是一个高性能的Web服务器和反向代理服务器,配合PHP-FPM(FastCGI进程管理器)使用,能够提供更好的PHP执行效率和性能。适合高并发、对性能要求较高的场景。Windows环境下的IIS(Internet Information Services)搭配PHP模块。在Windows操作系统中,IIS是默认的Web服务器之一,也...

在本地搭建网站环境用什么软件比较好高手给指点一下
如果你是xp或者win7系统,用iis做就行了。一般xp系统都要另外下载个iis安装包,因为很多系统里面的这个功能被删掉了,这样才运行得快。网上搜一下怎么搭建iis,一大堆资料的。win7的搭建iis比较方便,不过貌似家庭版不行,我用的是win7旗舰版。如果是Linux系统,一般会用apache、mysql、php三个安装包,...

写出Apache和iis区别
1.apache 主要支持PHP IIS 主要支持asp 静态的网页他们都支持入htm,端口冲突的话你可以更改其中一个服务器的端口来实现端口的避让,IIS在右击“我的电脑”“管理”“服务和应用程序”“Internet信息服务”“网站”改相应网站的属性里的端口就可以了,默认的端口为80,修改后在访问时ip或域名后加“...

关于php程序在iis运行的问题
尽管PHP最初与Apache服务器配合使用,但在Windows系统中,IIS(Internet Information Services)同样可以支持PHP。如果您的Apache服务器能够正常运行PHP,而IIS不行,原因可能只在于IIS的配置。为了确保IIS能够成功运行PHP,首先需要确保已经安装了PHP扩展,如PHP-CGI。在IIS管理器中,为PHP应用程序创建一个虚拟...

apache nginx IIS 哪一种服务器最强
apache 最强,功能最多。nginx 在linux上用的多,轻量级的,如果跑动态的话,apache nginx 差不多。

使用Apache&花生壳架设Web服务器
这里讲的是IIS服务器,其实花生壳在Apache下也能正常使用,这一点我在以前的帖子中已经讲过,现在专门把Apache的配置作一详细说明:首先:当然是下载Apache啦,Apache目前最新的Windows版本是1.3.2X,你可以到它的官方网站去下载最新版(http:\/\/www.apache.org),Win2000对应的下载文件是Win32版本,Win98和Winme对应的下载...

相似回答