永发信息网

php环境搭建,用iis好还是apache好,为什么?

答案:1  悬赏:60  手机版
解决时间 2021-01-14 03:27
  • 提问者网友:聂風
  • 2021-01-13 19:04
php环境搭建,用iis好还是apache好,为什么?
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-01-13 20:36
一,在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 和 PHP4FastCGI 模式的一些缺点:说完了好处,也来说说缺点。用 FastCGI 模式更适合生产环境的服务器。但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调试程序时,由于FastCGI 会认为 PHP 进程超时,从而在页面返回 500 错误
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯