Alternative PHP Cache(APC)

Alternative PHP Cache(APC)

介紹

APC,全稱是Alternative PHP Cache,官方翻譯叫”可選PHP緩存”。它為我們提供了緩存和優化PHP的中間代碼的框架。
APC的緩存分兩部分:系統緩存和用戶數據緩存。

系統緩存和用戶數據緩存

系統緩存

它是指APC把PHP文件源碼的編譯結果緩存起來,然後在每次調用時先對比時間標記。如果未過期,則使用緩存的中間代碼運行。默認緩存3600s(一小時)。但是這樣仍會浪費大量CPU時間。因此可以在php.ini中設置system緩存為永不過期(apc.ttl=0)。不過如果這樣設置,改運php代碼後需要重啟WEB服務器。目前使用較多的是指此類緩存。

用戶數據緩存

緩存由用戶在編寫PHP代碼時用apc_store和apc_fetch函數操作讀取、寫入的。如果數據量不大的話,可以一試。如果數據量大,使用類似memcache此類的更加專著的內存緩存方案會更好

apc 安裝方法

安裝apc

apt-get install php-pear php5-dev libpcre3-dev make
pecl install apc 

接著要針對php.ini進行設定
在PHP.ini 中加入以下參數

[APC]

extension=apc.so

apc.enabled=1
apc.shm_segments=1
apc.shm_size=1024M
apc.stat=1
apc.ttl=7200
apc.user_ttl=7200
apc.cache_by_default = 1
apc.max_file_size=1M
apc.filters = NULL
apc.slam_defense=0
apc.write_lock=1
apc.file_update_protection=2

apc.stat_ctime = 0

在apc.ini編輯

[APC]

extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128M
apc.stat=0
apc.ttl=7200
apc.user_ttl=7200

Drupal 設定

drush dl apc apc_status

編輯settings.php

$conf['cache_backends'][] = 'sites/all/modules/apc/drupal_apc_cache.inc';$conf['cache_class_cache'] = 'DrupalAPCCache';$conf['cache_class_cache_bootstrap'] = 'DrupalAPCCache';
drush en apc apc_status

要使用APC_status模組首先在sites/all/libraries中
新增一個資料夾名為:APC

然後從apc_status模組下載頁面中下載一個檔案叫做apc.php將他重新命名為apc.php.inc,放入libraries/APC中