为了账号安全,请及时绑定邮箱和手机立即绑定

请问各位,Windows下的php用IIS做Web服务好还是用Apache好?

/ 猿问

请问各位,Windows下的php用IIS做Web服务好还是用Apache好?

蓝山帝景 2019-05-28 20:07:36

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


查看完整描述

4 回答

?
DIEA

Apache的优点在于在各种开源的WWW服务提供工具中特性最全,支持最广,相对比较稳定的,而且扩展性丰富。不过正因为要考虑扩展性,性能就肯定不会太高,只能保持一个中等的水平。而IIS6在处理连接及事件性能方面还是很强大的,超过了APACHE。另外安全方面IIS6也有了质的飞跃,弥补了以往IIS漏洞漫天的缺陷。如果你的公司网络环境不负责,没有涉及太多的开发的话建议仍然使用IIS6。当然如果是建立在WWW上的开发和调试还是使用APACHE更加顺手。对于初学者的建议:如果是在Windows下进行PHP开发,IIS的PHP环境配置非常简单,便于入门,所以我倾向于选择IIS。PHP在windows 下服务器是用iis性能好还是apache性能好,服务器系统是windows Server2003的。请各位指教

查看完整回答
反对 回复 2019-06-08
?
开满天机

一,在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 错误



查看完整回答
反对 回复 2019-06-08
?
撒科打诨

假设在Windows 2008服务器上的,那么IIS和Apache两者性能基本相同,要想提高网站的整体吞吐量,需要在服务器硬件上进行升级。

查看完整回答
反对 回复 2019-06-08
?
沧海一幻觉

稳定性
稳定性是web服务器不间断运行的根本。对于一个网站来说也是尤为重要的。在正常的运载过程中,IIS的稳定性稍逊于Apache,如果保持长时间的运行而不重启的情况下,偶尔会出现500错误,甚至还有可能出现莫名的假死情况。要解决这一问题用户可以不定期的重启一下,这种情况将会有所好转。反观Apache则表现的非常稳定。

安全性
安全性是所有服务应用的重中之重。而且当前各种莫名的攻击大肆侵略着各种不同的服务器。早期的IIS在安全性上有所欠缺,不过随着微软公司的完善,各种补丁更新的升级,尽可能的提高了网站安全性上。Apache得益于先天的优势,一般用户都会在Linux环境下运行Apache,所以安全性自然也没得说。安全性的话,Apache和IIS可以说是旗鼓相当。

难易度
一款软件应用的上手难度直接影响着用户群体的大小。IIS自然不用多说,微软公司一直都是以易操作的图形化深得人心。上手操作、发布网站比较简单快捷。但是,要想精通的话还是挺困难的。APACHE则比IIS难上许多,首先一定要具备基础的计算机及互联网知识。所以说,IIS在这个环节上优势巨大。这也是这两者拉开差距的最大因素。

扩展性
IIS只能在windows环境下运行,拓展性可想而知,脱离的windows它将一事无成。不过运行ASP和.net非常优秀。而Apache自然无需多说,开放的源代码,拓展能力极强。支持几乎所有的语言。这个环节Apache完胜。

查看完整回答
反对 回复 2019-06-08

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信