WinCache是微軟在IIS平臺下發(fā)布的優(yōu)秀的PHP加速器,Windows平臺下其穩(wěn)定性和性能提升比同類軟件(xCache、Memcache、eAccelerator、APC等等)都好,能極大的改善PHP程序在Windows平臺下的性能。
Discuz一直以來就不支持WinCache,感覺比較遺憾,不過還好,Discuz的擴(kuò)展部分做的不錯(cuò),能很容易的把WinCache支持部分快速增加上。下面就是玩改車(wangaiche.com)技術(shù)團(tuán)隊(duì)修改的X2.5,能較好的支持WinCache,在這里跟大家分享一下。
使用程序說明:
1、Discuz X2.5 20120701版本;
2、服務(wù)器程序版本:IIS7.5+PHP5.4.5 NTS;
3、WinCache 1.3.4 for PHP 5.4.X
已經(jīng)上傳到115,下載地址為:
http://115.com/file/e7k73ves#
[wangaiche.com]_wincache-1.3.4-dev-5.4-nts-vc9-x86.exe
修改文件內(nèi)容:
1、\source\class\discuz\discuz_memory.php (修改)- $this->extension['eaccelerator'] = function_exists('eaccelerator_get');
- //下面這句是新增的,主要是判斷wincache是否已經(jīng)配置成功,并且運(yùn)行正常;
- $this->extension['wincache'] = function_exists('wincache_ucache_get');
復(fù)制代碼- foreach(array('apc', 'eaccelerator', 'xcache', 'wincache') as $cache) {
- if(!is_object($this->memory) && $this->extension[$cache] && $this->config[$cache]) {
- $class_name = 'memory_driver_'.$cache;
- $this->memory = new $class_name();
- $this->memory->init(null);
- }
- }
復(fù)制代碼 2、\source\admincp\admincp_setting.php (修改)- $ea = array('eAccelerator',
- $cache_extension['eaccelerator'] ? cplang('setting_memory_php_enable') : cplang('setting_memory_php_disable'),
- $cache_config['eaccelerator'] ? cplang('open') : cplang('closed'),
- $cache_type == 'eaccelerator' ? $do_clear_link : '--'
- );
- //下面這句是新增的,主要是為了在后臺內(nèi)存優(yōu)化管理頁面,顯示wincache相關(guān)的配置信息和數(shù)據(jù)
- //這里是把數(shù)據(jù)保存到數(shù)組里面;
- $wincache = array('WinCache',
- $cache_extension['wincache'] ? cplang('setting_memory_php_enable') : cplang('setting_memory_php_disable'),
- $cache_config['wincache'] ? cplang('open') : cplang('closed'),
- $cache_type== 'wincache' ? $do_clear_link : '--'
- );
復(fù)制代碼- showtablerow('', '', $ea);
- //下面這句是新增的,主要是把wincache的配置信息和數(shù)據(jù)顯示出來;
- showtablerow('', '', $wincache);
復(fù)制代碼 3、\source\class\memory\memory_driver_wincache.php(新增)- <?php
- /**
- * WinCache Interface for Discuz X2.5 (IIS Platform)
- *
- * $Id: memory_driver_wincache.php 2012-07-30 Created by Yang Wang (http://wangaiche.com)
- */
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class memory_driver_wincache
- {
- public function init($config) {
- }
- public function get($key) {
- return wincache_ucache_get($key);
- }
- public function set($key, $value, $ttl = 0) {
- return wincache_ucache_set($key, $value, $ttl);
- }
- public function rm($key) {
- return wincache_ucache_delete($key);
- }
- public function clear() {
- return wincache_ucache_clear();
- }
-
- public function inc($key, $step = 1) {
- return wincache_ucache_inc($key, $step);
- }
- public function dec($key, $step = 1) {
- return wincache_ucache_dec($key, $step);
- }
- }
- ?>
復(fù)制代碼 4、\config\config_global.php(修改)- $_config['memory']['eaccelerator'] = 1;
- //下面這句是新增的,是控制wincache是否啟用;(1為啟用;0為不啟用)
- $_config['memory']['wincache'] = 1;
復(fù)制代碼 上面的幾個(gè)修改文件,我們也做了打包了,放在115上了:
http://115.com/file/e7k762tr#
[wangaiche.com]_WinCache support for Discuz X2.5.zip
注意:這里面沒有config_global.php文件,自己修改一下即可!
本文由玩改車(http://wangaiche.com)技術(shù)團(tuán)隊(duì)原創(chuàng),轉(zhuǎn)載請保留來源。
|