Windows 2008 R2下如何進行Wincache安裝與配置教程_win伺服器

來源:互聯網
上載者:User

微軟新推出了配合FastCGI模式使用的WinCache擴充,這是一個可以顯著增加PHP應用在Windows環境下使用速度的PHP加速器。所有的PHP應用都能夠利用這個擴充所提供的加速功能而不需要修改任何代碼。所有需要做的就是將這個擴充啟用並被PHP引擎讀取。與eAccelerator正好相反的是WinCache要求使用NTS(非安全執行緒)版本的PHP,因此更適合與FastCGI配合使用。

WinCache擴充包括了三種不同種類的緩衝使用,下面將要分別介紹這三種緩衝和他們所能提供的便利。

•PHP作業碼緩衝
PHP是一個指令碼運行引擎,他讀入包含文字和PHP指令的輸入資料流,再輸出另一個通常是HTML格式的資料流。這就是說在一個伺服器上,每當網路使用者需要,PHP引擎就會讀入、解析、編碼和執行某個指令碼。而這種讀入、解析和編碼會給伺服器的CPU和檔案系統增加額外的負擔,因此會影響到PHP指令碼的整體運行。PHP作業碼緩衝就是用來把編碼後的指令碼位元組碼儲存在記憶體中從而能讓PHP引擎在後來對同一指令碼的操作中重複使用。
•檔案快取
除了使用作業碼緩衝,PHP引擎還需要從檔案系統裡讀取指令檔。當PHP指令碼儲存在一個遠端UNC(統一命名規範)檔案分享權限設定中,檔案操作會出現一個顯著的動作。Windows緩衝擴充包括了一個檔案快取來在記憶體中儲存PHP指令檔的內容,這樣就減少了PHP引擎的檔案運算元量。
•相對路徑緩衝
PHP指令碼經常會引用或使用通過相對路徑訪問的檔案。而每一個相對路徑都必須被PHP引擎轉化成絕對路徑才能夠使用。當一個PHP應用通過相對路徑訪問很多的PHP檔案,將相對路徑轉化成絕對路徑的工作就會對應用的運行產生消極影響。Windows緩衝擴充提供了專門針對相對路徑的緩衝,可以將相對路徑到絕對路徑的轉換地圖儲存起來,從而減少了相對路徑的總轉化量。

安裝方法:
這個擴充有兩個安裝包:一個是針對5.2.X 版本的PHP,另一個是針對PHP 5.3.X。
1. 開啟適合你的PHP版本的安裝包
2. 將php_wincache.dll檔案複製到PHP擴充的檔案夾。通常這個檔案夾叫做“ext”,和所有的PHP二進位檔案在一個檔案夾下。比如:
“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的情況下使用,PHP的版本必須是NTS(非安全執行緒)的。WinCache加速器安裝與配置,Wincache1.1.0 for5.3,這個大家可以去微軟IIS官方下載,他將極大地提高您的PHP系統運行效率!如果您的伺服器啟動並執行都是開來源程式,不需要zend,強烈建議您使用這個配置!

開啟以下網址,下載Wincache模組

http://www.iis.net/downloads/microsoft/wincache-extension


同樣們把網頁拉到最下面找到:Download WinCache

並下載 WinCache 1.1 for PHP 5.3 – x86 ,這個檔案,這裡一定要注意,Wincache版本要與PHP版本相對應,我們在這裡採用的是PHP 5.3.21 所以我們選擇這WinCache 1.1 for PHP 5.3 – x86 這個進行下載。



下載完成後,發現wincache-1.1.0-5.3-nts-vc9-x86.exe,這個檔案是個EXE檔案,先不要急於開啟,我們解壓它

解壓wincache-1.1.0-5.3-nts-vc9-x86.exe這個檔案後,可以發現裡面有一個 php_wincache.dll


在這裡,我們需要把php_wincache.dll這個檔案複製到 “D:\Server\php\ext” 目錄下

然後我們再開啟IIS管理器,開啟PHPManager管理軟體

點擊Enable or disnable an extension,開啟php_wincache 功能

拉到最下面,找到php_wincache.dll ,右鍵Enable 就可以啟用php_wincache了

下面為大家繼續分享一些資料:

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 定義為檔案快取分配的最大記憶體空間(以MB計算)。如果總的快取檔案的大小超過設定值,那麼大部分陳舊的檔案會被從檔案快取中剔除。
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的檔案快取功能了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.