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 错误
如何在Windows下使用WebMatrix+IIS开发PHP程序
首先下载WebMatrix安装程序,
下载下来后是一个名为WebMatrixWeb.exe的在线安装工具,点击运行会调用Web平台安装程序5.0,
安装完WebMatrix之后,会回到Web平台安装程序5.0,勾选下面三项进行安装:
1、在“产品”->“服务器”,添加 “IIS 7.5 Express”;
2、在“产品”->“框架”,添加 “PHP 5.5.11”;
3、在“产品”->“工具”,添加 “适用于IIS的 PHP Manager”;
等待安装完成。
接着下载xdebug,用来调试php程序
选择适合自己的版本,这里我选择了 PHP 5.5 VC11 (64 bit) ,在列表中可以看到很多名称中包含“TS”的,表示“Thread Safety”的意思,必须和PHP的版本对应,Windows下安装的默认不是TS的。
下载下来的文件为 “php_xdebug-2.2.7-5.5-vc11-nts-x86_64.dll” ,需要拷贝到PHP的安装目录下的ext目录,这里我采用默认安装路径,所以PHP的安装目录是 “C:\Program Files (x86)\IIS Express\PHP\v5.5\” ,
将下载下来的文件拷贝到 “C:\Program Files (x86)\IIS Express\PHP\v5.5\ext\” 下。
接下来进行php配置,拷贝安装目录下的“php.ini-development”文件到d盘根目录,或者其他可以编辑的位置,用记事本编辑器打开,在尾部添加以下配置信息
[Xdebug]
zend_extension="C:/Program Files (x86)/IIS Express/PHP/v5.5/ext/php_xdebug-2.2.7-5.5-vc11-nts-x86_64.dll"
xdebug.auto_trace=1
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.trace_output_dir="E:/Users/LucienBao/Documents/My Web Sites/PHPSite/xdebug/trace"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="E:/Users/LucienBao/Documents/My Web Sites/PHPSite/xdebug/profiler"
另存文件为“php.ini”,然后拷贝覆盖到 “C:\Program Files (x86)\IIS Express\PHP\v5.5\” ,会提示是否覆盖以及需要管理员权限,全部同意即可,然后就可以使用WebMatrix进行PHP开发了。
另外
如果想要在本机IIS上也可以直接访问开发的PHP程序,可以按以下步骤操作:
1、打开IIS管理器,在主页找到“FastCGI设置”,点击打开后点击右侧的“添加应用程序”,完整路径选择 “C:\Program Files (x86)\IIS Express\PHP\v5.5\php-cgi.exe”;
2、添加应用程序池,“名称”填写“PHP”, “.NET Framework 版本”选择“无托管代码”,“托管管道模式”选择“经典”;添加完成后,点击“高级设置”,将“启用 32 位应用程序”的值设置为“True”;
3、添加网站,将应用程序池设置为刚才配置的“PHP”。
推荐阅读
- ○ CFO总变成CEO这背后是隐藏着什么秘密呢?
- ○ qq估价器在线查询
- ○ 淘宝店铺装修代码大全
- ○ 街拍齐b小短裙
- ○ 苹果12Pro参数
- ○ 淘宝返利网怎么用
- ○ acfun下载
- ○ 斗战神嗜血牛加点
- ○ baidu翻译
- ○ dnf悲叹之塔耳环
最新文章
- ○ CFO总变成CEO这背后是隐藏着什么秘密呢?
- ○ qq估价器在线查询
- ○ 淘宝店铺装修代码大全
- ○ 街拍齐b小短裙
- ○ 苹果12Pro参数
- ○ 淘宝返利网怎么用
- ○ acfun下载
- ○ 斗战神嗜血牛加点
- ○ baidu翻译
- ○ dnf悲叹之塔耳环