如何提高Windows主机上PHP性能

Yxhds YW| 2013-04-09 PHP, 教程 评论数( 0 )

PHP+Mysql是公认的最好的Web开发框架,许多非常强大的系统如WordPress、Discuz、Joomla、ShopExcel都是PHP开发的。Windows主机上PHP性能不稳定的问题也普遍存在,尤其国内虚拟主机产品以Windows主机为主,那么如何解决这一矛盾呢?

Windows主机一般默认支持ASP,如果要使Windows主机支持PHP,则需要另外配置PHP环境。主机商一般会在Windows虚拟主机产品上预安装PHP,但这并不能完全解决问题。

首先,我们要了解一下为什么PHP在Windows主机上运行不佳的原因。PHP是Linux的原生服务,每个请求由一个不同的进程来处理,但在Windows平台下面,同一类型的请求是由同一进程的不同线程来处理的。这个区别意味运行着PHP的IIS的频繁崩溃。对这一问题的唯一的解决方案就是把PHP运行在外部方式下(CGI),但这将导致PHP性能的降低。

本地web服务器模块:

为解决CGI的性能问题,主机商会为Web服务器提供API,知名的API包括netscape的NSAPI和MS的ISAPI。在windows主机上使用本地服务器模块或插件,可以部分提高PHP的性能。

因此,站长在选择Windows虚拟主机产品的时候,简单地看是否支持PHP是不够的,还要查看主机商是否做了PHP性能优化。

系统版本:

此外,国外有数据显示,版本较新的Windows Server系统对PHP的支持更加友好。例如Windows Server 2008 IIS内置的FastCGI机制可以让PHP的解析速度大幅提高,部分情况甚至比原生的LAMP(Linux、Apache、MySQL、PHP)环境还要好。

增加独立的应用程序池:

现在有部分主机商,如IXWebhosting,支持用户为单独的网站添加独立的应用程序池的方法。用户可以虚拟主机控制面板进行简单操作,为PHP搭建的网站设立单独的应用程序池,可以进一步缓解性能问题。

设置多级PHP Session多级目录:

PHP的Session功能可以方便的进行会话功能处理,在Windows上PHP默认的Session服务端文件存放在C:\WINDOWS\Temp下,*NIX下默认存放在/tmp下。如果说并发访问很大或者session建立太多,在这两个目录下就会存在大量类似sess_xxxxxx的session文件,同一个目录下文件数过多会导致性能下降,并且可能导致受到攻击最终出现文件系统错误。

可以利用php.ini文件里Session设置部分中的; session.save_path = "N; MODE; /path"设置多级目录。

以上这些方法是在不同技术层面上个对Windows主机上PHP性能的优化,站长可以选择自己擅长的方法尝试一下。但是,任何性能优化的方法只能部分缓解PHP与Windows主机之间的矛盾,而不能根本解决问题。所以,如果站长朋友对PHP性能要求很高,还是考虑Linux虚拟主机或专门的PHP主机较好。

聚焦云计算,扫描二维码,关注HostUCan云计算

有好的文章希望站长之间帮助分享推广,猛戳这里我要投稿

您需要登录后才可以评论登录|注冊

暂无评论