专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »网站安全 » 使用windows缓存php:使用Windows缓存Cache进行PHP的扩展 »正文

使用windows缓存php:使用Windows缓存Cache进行PHP的扩展

来源: 发布时间:星期六, 2009年12月19日 浏览:0次 评论:0
内容概要:
PHPWindows缓存Cache扩展时个可以显著增加PHP应用在Windows环境下使用速度PHP加速器所有PHP应用都能够利用这个扩展所提供加速功能而不需要修改任何代码所有需要做就是将这个扩展激活并被PHP引擎读取
Windows缓存Cache扩展包括了 3种区别种类缓存Cache使用下面将要分别介绍这 3种缓存Cache和他们所能提供便利

?PHP操作码缓存Cache
PHP是个脚本运行引擎他读入包含文字和PHP指令输入数据流再输出另个通常是HTML格式数据流这就是说在个服务器上每当网络用户需要PHP引擎就会读入、解析、编码和执行某个脚本而这种读入、解析和编码会给服务器CPU和文件系统增加额外负担因此会影响到PHP脚本整体运行PHP操作码缓存Cache就是用来把编码后脚本字节码储存在内存中从而能让PHP引擎在后来对同脚本操作中重复使用
?文件缓存Cache
除了使用操作码缓存CachePHP引擎还需要从文件系统里读取脚本文件当PHP脚本储存在个远程UNC(统命名约定)文件共享中文件操作会出现个显著动作Windows缓存Cache扩展包括了个文件缓存Cache来在内存中储存PHP脚本文件内容这样就减少了PHP引擎文件操作数量
?相对路径缓存Cache
PHP脚本经常会引用或使用通过相对路径访问文件而每个相对路径都必须被PHP引擎转化成绝对路径才能够使用个PHP应用通过相对路径访问很多PHP文件将相对路径转化成绝对路径工作就会对应用运行产生消极影响Windows缓存Cache扩展提供了专门针对相对路径缓存Cache可以将相对路径到绝对路径转换地图储存起来从而减少了相对路径总转化量

安装思路方法:
这个扩展有两个安装包:个是针对5.2.X 版本PHP个是针对PHP 5.3.X
1. 打开适合你PHP版本安装包
2. 将php_wincache.dll文件复制到PHP扩展文件夹通常这个文件夹叫做“ext”和所有PHP 2进制文件在个文件夹下比如:
“C:\Program Files\PHP\ext”
3. 用文本编辑器打开php.ini文件位置同上比如:
   “C:\Program Files\PHP\php.ini”
4. 在上面这个文件最后加上这么行:
Extension=php_wincache.dll
5. 保存并关闭php.ini
6. 将你服务器应用库重启以读取配置变化

配置要求:
此扩展只能在以下配置上运行:
Windows 版本:
? Windows XP SP3 with IIS 5.1 and FastCGI Extension
? Windows Server 2003 with IIS 6.0 and FastCGI Extension
? Windows Vista SP1 with IIS 7.0 and FastCGI Module
? Windows Server 2008 with IIS 7.0 and FastCGI Module
? Windows 7 with IIS 7 and FastCGI Module
? Windows Server 2008 R2 with IIS 7.0 and FastCGI Module


PHP版本:
? PHP 5.2.X, Non-thread-safe build
? PHP 5.3 X86, Non-thread-safe VC9 build
注意:此扩展只能在服务器通过FastCGI运行PHP情况下使用
设置 默认值 最小值 最大值 改变文件 功能描述
wincache.fcenabled 1 (On) 0 (Off) 1 (On) PHP_INI_ALL 启用或关闭文件缓存Cache功能
wincache.fcachesize 128 32 256 PHP_INI_SYSTEM 定义为文件缓存Cache分配最大内存空间(以兆字节计算)如果总缓存Cache文件大小超过设定值那么大部分陈旧文件会被从文件缓存Cache中剔除
wincache.maxfilesize 256 10 2048 PHP_INI_SYSTEM 定义单独个待缓存Cache文件大小(以千字节为单位)如果文件大小超出这个值将不被缓存Cache这个设定仅限于文件缓存Cache
wincache.ocenabled 1 (On) 0 (Off) 1 (On) PHP_INI_ALL 开启或关闭操作码缓存Cache功能
wincache.ocachesize 128 32 256 PHP_INI_SYSTEM 定义为操作码缓存Cache分配最大内存空间(以兆字节为单位)
wincache.filecount 4096 1024 16384 PHP_INI_SYSTEM 定义多少文件会被缓存Cache这样就能在开始就分配内存空间如果文件个数超过预设值扩展会根据需要重新分配更多内存空间
wincache.chkerval 30 2 300 PHP_INI_SYSTEM 定义每隔多久(按秒计算)本扩展会检查文件变化来更新缓存Cache
wincache.ttlmax 1200 60 7200 PHP_INI_SYSTEM 定义缓存Cache中入口在不被使用情况下最大存在时间
wincache.ignorelist no value no value no value PHP_INI_ALL 定义系列不应被本扩展缓存Cache文件文件列表只能以文件名形式指定文件并以“|”间隔
For example:

wincache.ignorelist = "index.php|misc.php|admin.php"
wincache.namesalt no value no value no value PHP_INI_SYSTEM 定义在给内存中被缓存Cache物命名时使用这么做是为了防止当服务器中其他应用试图使用共享内存时发生
   

    
配置FastCGI:
服务器里FastCGI模块有最大允许进程数设定用来控制正在运行php-cgi.exe进程这个进程是服务器生成用来处理PHP请求为了达到最优化我们推荐在您特有运行环境下精心调制这个设置从每个内核8-10个进程开始(比如说个 4核机器最大进程数=32)
本扩展为了防止重复频繁CPU操作比如解析和扩展PHP源码将编码后PHP操作码放在共享内存中这意味着当本扩展被激活时服务器处理PHP请求需要更少CPU循环这样原先FastCGI最大允许进程数配置可能不再适用因此增大最大允许进程数可能很有必要
To increase the maxInstances value _disibledevent=>注意:用你服务器里php-cgi.exe路径来替换上面整个路径
或者你也也可以编辑<fastCGI>里applicationHost.config文件它位于:
C:\Windows\32\inetsrv\config\ folder:
<fastCgi>
<application fullPath="C:\PHP\php-cgi.exe" maxInstances="32">
    <!-- Some other tings may go here-->
</application>
</fastCgi>
要增加IIS5.1和IIS6.0环境下最大允许进程数清运行下命令:
>cscript C:\windows\system32\inetsrv\fcgiconfig.js - -section:"PHP" –MaxInstances:32
注意: 如果需要请将文件重命名.
或者你也可以直接编辑 fcgiext.ini文件它位于:
C:\Windows\32\inetsrv\ folder:
[PHP]
ExePath=C:\PHP\php-cgi.exe
;some other tings may go here
MaxInstances=32
当你测试本扩展实际性能确保降低你CPU使用率如果你发现你CPU没有完全使用那么增加你FastCGI最大允许进程数来获得更好性能吧!


附带:
名称 描述 返回值
.gif' /> wincache_fcache_fileinfo 获取储存在文件缓存Cache里文件信息 缓存Cache文件列表和详细信息读取失败返回FALSE
.gif' /> wincache_fcache_meminfo 获取文件缓存Cache内存使用情况信息 组有关内存使用情况数据读取失败返回FALSE
.gif' /> wincache_ocache_fileinfo 获取储存在操作码缓存Cache里文件信息 缓存Cache文件列表和详细信息读取失败返回FALSE
.gif' /> wincache_ocache_meminfo 获取操作码缓存Cache内存使用情况信息 组有关内存使用情况数据读取失败返回FALSE
.gif' /> wincache_rplist_fileinfo 获取有关缓存Cache中相对文件路径和绝对文件路径地图信息 组有关缓存Cache中文件路径数据读取失败返回FALSE
.gif' /> wincache_rplist_meminfo 获取相对路径内存使用情况信息 组有关内存使用情况数据读取失败返回FALSE


使用例子:
获取有关文件缓存Cache入口请使用下面代码:
<pre>
<?php
pr_r(wincache_fcache_fileinfo);
?>
</pre>
代码执行后会输出和下面类似结果:
Array
(
    [total_file_count] => 1
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => C:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [function_count] => 0
                    [_count] => 0
                )
            [2] => Array (...iterates for each cached file)
        )
)

ps:该项设置可以使网站WebSite访问量提供高很多大型门户网站WebSite甚至服务器cpu利用率降低至平局低于10%左右

http://www.phpchina.com/html/42/n-34842.html

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: