怎样在IIS下配置PHP,isapi模式php,解决php-cgi.exe占用CPU过多,甚至100%
2013-01-29 15:50
441 查看
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。
安装步骤/方法
首先下载Windows的PHP安装包。随后将该包解压至C:\PHP。
完成上面的步骤后,将C:\php目录下的php.ini-dist文件改名为php.ini,然后拷到C:\Windows目录下。用记事本打开C:\Windows目录php.ini文件php.ini里找到register_globals = Off 将 Off 改成 On。再找到extension_dir = "./" 吧"./"里的./改成php里的ext所在的位置,如"C:\php\ext"。
最后将php目录下的php5ts.dll拷到C:\WINDOWS\system32目录下。至此完成PHP的安装步骤。
设定IIS支持PHP
添加新的WEB扩展服务。按“开始”→“程序”→“管理工具”→“Internet 信息服务(IIS)管理器”打开IIS管理器。选中“Web服务扩展”→添加一个新的Web 服务扩展。添加:php目录下的php5isapi.dll,名称:PHP设置扩展状态为允许:√。完成后选择确定。
添加ISAPI筛选器。按 “Internet 信息服务(IIS)管理器”→“网站”→“属性”→“ISAPI 筛选器”→添加筛选器名称:PHP可执行文件:php目录下的php5isapi.dll。
添加php映射文件。
选中“Internet 信息服务(IIS)管理器”→“网站”→“默认网站”→“属性”→“主目录”→“配置映射”→添加可执行文件:php目录下的php5isapi.dll扩展名:.PHP。
添加首页默认文件。选中“Internet 信息服务(IIS)管理器”→“网站”→“默认网站”→“属性”→“主目录”→“文档”。添加index.php首页文件。
设定相关权限
设定PHP文件夹权限。打开PHP文件夹,添加everyone和IUSR及IWAM用户权限。查看相关资料说只需添加IUSR用户权限就可以但我个人试过如果不加入everyone用户则执行不成功。如果设定有误欢迎指正。因为加入everyone不能保证安全。
设定网站文件夹权限。具体设定如上所述。只是文件夹路径不一样。
测试
重启IIS。查看PHP首页文件。
Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
安装步骤/方法
首先下载Windows的PHP安装包。随后将该包解压至C:\PHP。
完成上面的步骤后,将C:\php目录下的php.ini-dist文件改名为php.ini,然后拷到C:\Windows目录下。用记事本打开C:\Windows目录php.ini文件php.ini里找到register_globals = Off 将 Off 改成 On。再找到extension_dir = "./" 吧"./"里的./改成php里的ext所在的位置,如"C:\php\ext"。
最后将php目录下的php5ts.dll拷到C:\WINDOWS\system32目录下。至此完成PHP的安装步骤。
设定IIS支持PHP
添加新的WEB扩展服务。按“开始”→“程序”→“管理工具”→“Internet 信息服务(IIS)管理器”打开IIS管理器。选中“Web服务扩展”→添加一个新的Web 服务扩展。添加:php目录下的php5isapi.dll,名称:PHP设置扩展状态为允许:√。完成后选择确定。
添加ISAPI筛选器。按 “Internet 信息服务(IIS)管理器”→“网站”→“属性”→“ISAPI 筛选器”→添加筛选器名称:PHP可执行文件:php目录下的php5isapi.dll。
添加php映射文件。
选中“Internet 信息服务(IIS)管理器”→“网站”→“默认网站”→“属性”→“主目录”→“配置映射”→添加可执行文件:php目录下的php5isapi.dll扩展名:.PHP。
添加首页默认文件。选中“Internet 信息服务(IIS)管理器”→“网站”→“默认网站”→“属性”→“主目录”→“文档”。添加index.php首页文件。
设定相关权限
设定PHP文件夹权限。打开PHP文件夹,添加everyone和IUSR及IWAM用户权限。查看相关资料说只需添加IUSR用户权限就可以但我个人试过如果不加入everyone用户则执行不成功。如果设定有误欢迎指正。因为加入everyone不能保证安全。
设定网站文件夹权限。具体设定如上所述。只是文件夹路径不一样。
测试
重启IIS。查看PHP首页文件。
相关文章推荐
- 怎样在IIS下配置PHP,isapi模式php,解决php-cgi.exe占用CPU过多,甚至100%
- 服务器php-cgi.exe进程过多,导致CPU占用100%的解决方法
- 服务器php-cgi.exe进程过多,导致CPU占用100%的解决方法
- 服务器大量php-cgi.exe进程,导致CPU占用100%的解决
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- 32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决办法
- (转)IIS的inetinfo.exe进程占用CPU达100%解决办法
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- linux php-cgi.exe占用cpu 100%的一次排障之旅
- 32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决的方法
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- 32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决的方法
- 32位win7系统下配置IIS遇到php-cgi.exe - FastCGI 进程意外退出问题的解决办法
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- 如何解决XP下使用IIS而inetinfo.exe进程占用CPU达100%的问题
- IIS的inetinfo.exe进程占用CPU达100%解决办法
- PHP-CGI 进程 CPU 100% 解决办法
- php-cgi进程占用cpu资源过大原因分析及解决