WinCache加速器只支持非安全线程的PHP版本,关于PHP安全线程的解释,大家可以去这里了解一下:PHP 5.4.x 安装包VC6和VC9的区别是什么及Thread Safe与Non Thread Safe的区别

WinCache加速器安装与配置,Wincache 1.3 for 5.4,这个大家可以去微软IIS官方下载,它将极大地提高您的PHP系统运行效率!如果您的服务器运行的都是开源程序,不需要zend,强烈建议您使用这个配置!

Wincache模块下载地址:http://www.iis.net/downloads/microsoft/wincache-extension

并下载 WinCache 1.3 for PHP 5.4 - x86 ,这个文件,这里一定要注意,Wincache版本要与PHP版本相对应,我们在这里采用的是PHP 5.4.15 所以我们选择这 WinCache 1.3 for PHP 5.4 - x86这个进行下载。

下载完成后,发现wincache-1.3.5-5.5-nts-vc11-x86.exe,这个文件是个EXE文件,先不要急于打开,我们解压它

解压wincache-1.3.5-5.5-nts-vc11-x86.exe这个文件后,可以发现里面有一个 php_wincache.dll

在这里,我们需要把php_wincache.dll这个文件复制到 "D:\php\ext" 目录下

然后我们再打开php.ini文件。

在配置文件底部加上:
[Wincache]
extension = php_wincache.dll

Windows Cache Extension APIs for PHP

若 PHP 開發人員想要利用 Windows Cache Extension for PHP 快取應用程式資料時,Windows Cache Extension 有提供數組 API 可供開發人員與 Windows Cache Extension 互動,包含儲存快取資料、取得系統的快取狀態等。
1. 將 session 存放到 Windows Cache 中。

在 PHP 的預設模式中,session 資料是儲存在檔案中,Windows Cache Extension for PHP 開放一個設定,讓 PHP 可以將 session 儲存到記憶體中,以加快 Session 存取的速度,只要修改 php.ini 中的 session.save_handler 即可:
[Session]
; Headler used to store/retrieve data.
; session.seve_handler = files <- original configuration
session.save_handler = wincache <- apply session store into Windows Cache Extension

Windows Cache Extension 針對 Session 的轉存功能目前在 1.1 版以上才支援。

然后重新启动IIS服务器。这个时候WinCache加速器已经安装完毕!

以下资料说明来源于微软台湾官方网站!
地址:http://www.microsoft.com/taiwan/technet/iis/expand/Windows_Cache_Extension_for_PHP.aspx

設定值 說明 預設值
wincache.fcenabled 啟用檔案快取。 1
wincache.fcenabledfilter 要使用檔案快取的 IIS 站台識別碼,若有多組時以逗號分隔。 NULL
wincache.fcachesize 檔案快取的最大記憶體使用量(MB) 24
wincache.fcndetect 是否要啟用檔案變更偵測(在 Opcode Cache 時會判斷檔案是否有變更而清除 Opecode Cache)。 1
wincache.maxfilesize 可放進快取的最大單一檔案大小(KB) 256
wincache.ocenabled 是否啟用 Opcode Cache 1
wincache.ocenabledfilter 要使用 Opcode Cache 的 IIS 站台識別碼,若有多組時以逗號分隔。 NULL
wincache.ocachesize Opcode Cache 的最大記憶體使用量(MB) 96
wincache.filecount 定義預期要快取的最大檔案數量,可在 PHP 初始化時預先配置好,但若實際超出此數量時,PHP 會重新配置。 4096
wincache.chkinterval 定義 PHP 檢查快取的週期(秒)。 30
wincache.ttlmax 設定快取在不使用時,存留的最長時間(秒)。 1200
wincache.enablecli 設定是否啟用指令列(Command Line)模式 0
wincache.ignorelist 設定哪些檔案不列入快取,若有多檔時,要使用管線符號”|”來分隔。 NULL
wincache.namesalt 設定一個 salt 值以避免使用者快取時設定的 key 值有碰撞的現象。 NULL
wincache.ucenabled 是否啟用使用者快取。 1
wincache.ucachesize 設定使用者快取的最大記憶體使用量(MB)。 8

設定完後都要重新回收PHP應用程式的集區,或是重新啟動 IIS 才會生效。

类型 开启或关闭 分配多少内存 最大数
文件缓存 fcenabled= 1 /0 fcachesize= 128M 单个最大文件maxfilesize
操作码缓存 ocenabled =1/ 0 ocachesize= 128M 最多文件数filecount 4096
路径缓存
session缓存 scachesize
ucenabled ucachesize

wincache.fcenabled= 1 (On) 0 (Off) 启用或关闭文件缓存功能
wincache.fcachesize= 128M 定义为文件缓存分配的最大内存空间(以兆字节计算)。如果总的缓存文件的大小超过设定值,那么大部分陈旧的文件会被从文件缓存中剔除。
wincache.maxfilesize =256M 定义单独一个待缓存的文件的大小。如果文件大小超出 这个值,将不被缓存。这个设定仅限于文件缓存。
wincache.ocenabled =1 (On) 0 (Off)开启或关闭操作码缓存功能
wincache.ocachesize= 128M 定义为操作码缓存分配的最大内存空间
wincache.filecount 4096 1024 16384 定义多少文件会被缓存,这样就能在一开始就分配内存空间。如果文件个数超过预设值,扩展会根据需要重新分配更多的内存空间。
wincache.chkinterval= 30 2 300 PHP_INI_SYSTEM 定义每隔多久(按秒计算)本扩展会检查文件变化来更新缓存
wincache.ttlmax 1200 60 7200 定义缓存中的入口在不被使用情况下最大的存在时间。
wincache.ignorelist 定义一系列不应被本扩展缓存的文件。文件列表只能以文件名的形式指定文件,并以“|”间隔。For example: wincache.ignorelist = "index.php|misc.php|admin.php"
wincache.namesalt no value no value no value PHP_INI_SYSTEM 定义一个字符串,在给内存中的被缓存物命名时使用。这么做是为了防止当服务器中其他的应用试图使用共享内存时发生错误。

注意事项:wincache 和zendloader冲突,所以二者只能选其一,由于 wincache是内存级优化,速度自然比 zendloader快很多,这个根据具体配置选择。如何程序需要zend加密解密 然后又要用wincache的话 那只能关闭wincache的文件缓存功能了。

暂无评论