以下是"IIS7,IIS7.5 升级PHP5.3后站点变慢的解决方法"的完整攻略:
问题描述
在IIS7和IIS7.5上升级到PHP5.3版本后,站点可能会出现明显的性能下降,变得缓慢和不稳定。这个问题的根本原因是PHP5.3版本中的Zend Engine 2.3.0引擎和IIS 7不兼容,使得PHP运行缓慢而且不稳定。
解决方法
要解决这个问题,可以采用以下三种方法中的一种或多种:
方法一:启用FastCGI和WinCache
启用FastCGI和WinCache可以提高PHP在IIS上的性能。
-
通过Web Platform Installer安装 "Microsoft Web Platform Installer 3.0"。
-
在Web Platform Installer中搜索并选择"FastCGI for IIS"插件进行安装,同时选择"WinCache Extension 1.3 for PHP"插件安装。
-
配置IIS添加FastCGI模块,在FastCGI模块中指定php-cgi.exe文件的位置,并在“扩展” 字段输入.fcgi 扩展名。
-
确认php.ini中开启了WinCache的配置,可以通过打开php.ini文件,搜索并找到以下几个配置项:
[wincache]
;如果你是64位 Windows系统,请将 extension路径 修改为PHP根目录下的ext目录
extension=php_wincache.dll
wincache.chkinterval=15
wincache.ocenabled=0
- 完成上述操作后,重新启动IIS服务器即可。
方法二:禁用Zend OPcache
禁用Zend OpCache可以提高PHP的性能和可靠性。
要禁用OpCache,请编辑 php.ini 文件并将以下行添加到其中:
opcache.enable=0
保存并关闭 php.ini
文件,然后重新启动 IIS。
方法三:升级到PHP 5.5或更高版本
升级到PHP 5.5或更高版本可以有效避免这个问题。
示例说明
示例一
假设我们的服务器上安装了IIS7, PHP5.3,并且我们的站点变得缓慢不稳定。在这种情况下,我们可以尝试采用方法一中的启用FastCGI和WinCache。具体方法如下:
- 在Web Platform Installer中搜索并选择"FastCGI for IIS"插件进行安装,同时选择"WinCache Extension 1.3 for PHP"插件安装。
WebPICMD /Install /Products:FastCGI /AcceptEula
WebPICMD /Install /Products:WinCache /AcceptEula
- 配置IIS添加FastCGI模块,在FastCGI模块中指定php-cgi.exe文件的位置,并在“扩展” 字段输入.fcgi 扩展名。
# 添加FastCGI模块
Import-Module WebAdministration
Add-WebHandler -Name "PHP" -Path "*.php" -Verb "*" -Modules FastCgiModule -ScriptProcessor "C:\php\php-cgi.exe" -ResourceType File -RequestPath "*.php"
Add-WebHandler -Name "PHP-FastCGI" -Path "*.php" -Verb "*" -Modules FastCgiModule -ScriptProcessor "C:\php\php-cgi.exe" -ResourceType File -RequestPath "*.php"
# 配置FastCGI模块
Set-WebConfigurationProperty -Filter /system.webServer/fastCGI -PSPath Machine/webroot/apphost -Name "activityTimeout" -Value "1000"
Set-WebConfigurationProperty -Filter /system.webServer/fastCGI/application -PSPath Machine/webroot/apphost -Name "signalBeforeTerminateSeconds" -Value "300"
Set-WebConfigurationProperty -Filter /system.webServer/fastCGI/application -PSPath Machine/webroot/apphost -Name "maxInstances" -Value "15"
Set-WebConfigurationProperty -Filter /system.webServer/fastCGI/application -PSPath Machine/webroot/apphost -Name "idleTimeout" -Value "3000"
# 重启IIS服务
Restart-Service W3SVC
- 确认php.ini中开启了WinCache的配置。
[wincache]
; 如果你是64位 Windows系统,请将 extension路径 修改为PHP根目录下的ext目录
extension=php_wincache.dll
wincache.chkinterval=15
wincache.ocenabled=0
- 重新启动IIS服务器。
示例二
假设我们的服务器上安装了IIS7.5, PHP5.3,并且我们的站点变得缓慢不稳定。在这种情况下,我们可以尝试采用方法二中的禁用Zend OpCache。具体方法如下:
-
打开PHP的配置文件 php.ini。
-
在php.ini中将以下行添加到其中:
opcache.enable=0
- 保存并关闭
php.ini
文件,然后重新启动 IIS。
Restart-Service W3SVC
这样,我们就通过以上两个示例,展示了如何通过启用FastCGI和WinCache或禁用Zend OPcache来解决IIS7和IIS7.5上PHP5.3版本下站点变慢的问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IIS7,IIS7.5 升级PHP5.3后站点变慢的解决方法 - Python技术站