background image

PHP 技巧:使用 APC 缓存优化 PHP 程序

Alternative PHP Cache(APC

 

)是 PHP 的一个免费公开的优化代码缓存。它用来提供

 

免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。

 

在 Windows 下,APC 

 

要求有 c:\tmp 

 

目录,并且该目录要对 Web 

服务器

程可写。

1. 安装:
以 PHP extension 形式安装.
2. 配置
apc.enabled        boolean

apc.optimization   optimization
选项在脚本中可以改变

APC PHP.ini 配置选项详解

[APC]
; Alternative PHP Cache 用于缓存和优化 PHP 中间代码

apc.cache_by_default = On

;SYS
; 是否默认对所有文件启用缓冲。
; 若设为 Off 并与以加号开头的 apc.filters 指令一起用,则文件仅在匹配过滤器时才被缓存。

apc.enable_cli = Off

;SYS
; 是否为 CLI 版本启用 APC 功能,仅用于测试和调试目的才打开此指令。

apc.enabled = On

; 是否启用 APC,如果 APC 被静态编译进 PHP 又想禁用它,这是唯一的办法。

apc.file_update_protection = 2

;SYS
; 当你在一个运行中

服务器

修改文件时,你应当执行原子操作。

; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终的名字。

 

文本编辑器以及 cp, tar 等程序却并不是这样操作的,从而导致有可能缓冲了残缺的文件。

 

默认值 2 

 

表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。

; 那个不幸的访问者可能得到残缺的内容,但是这种坏影响却不会通过缓存扩大化。

 

如果你能确保所有的更新操作都是原子操作,那么可以用 0 关闭此特性。

; 如果你的系统由于大量的 IO 操作导致更新缓慢,你就需要增大此值。

apc.filters =

;SYS
; 一个以逗号分隔的 POSIX 扩展正则表达式列表。
; 如果源文件名与任意一个模式匹配,则该文件不被缓存。
; 注意,用来匹配的文件名是传递给 include/require 的文件名,而不是绝对路径。
; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,
; 如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。

apc.ttl = 0

;SYS