OPcache 是 PHP 中的 Zend 扩展,可以大大提升 PHP 的性能。
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。

php.ini 配置


; CLI 环境下启用 Opcache


; 存储临时字符串缓存大小,单位为MB,PHP5.3.0以前会忽略此项配置

; 缓存文件数最大限制,命中率不到100%,可以试着提高这个值

; 在计划重新启动之前,“已浪费”内存的最大百分比。

; When this directive is enabled, the OPcache appends the current working
; directory to the script key, thus eliminating possible collisions between
; files with the same name (basename). Disabling the directive improves
; performance, but may break existing applications.

; 线上环境默认是不开启,开启则设为1.不开启的话,会一直用缓存

; 一定时间内检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒

; 开启快速停止续发事件,依赖于Zend引擎的内存管理模块,一次释放全部请求变量的内存,而不是依次释放内存块

; 在include_path优化中启用或禁用文件搜索

; If disabled, all PHPDoc comments are dropped from the code to reduce the
; size of the optimized code.

; 允许文件存在覆盖(file_exists等)性能功能。

; A bitmask, where each bit enables or disables the appropriate OPcache
; passes


; The location of the OPcache blacklist file (wildcards allowed).
; Each OPcache blacklist file is a text file that holds the names of files
; that should not be accelerated. The file format is to add each filename
; to a new line. The filename may be a full path or just a file prefix
; (i.e., /var/www/x  blacklists all the files and directories in /var/www
; that start with 'x'). Line starting with a ; are ignored (comments).

; 允许从缓存中排除大型文件。 默认情况下,所有文件都被缓存。

; Check the cache checksum each N requests.
; The default value of "0" means that the checks are disabled.

; How long to wait (in seconds) for a scheduled restart to begin if the cache
; is not being accessed.

; OPcache error_log file name. Empty string assumes "stderr".

; All OPcache errors go to the Web server log.
; By default, only fatal errors (level 0) or errors (level 1) are logged.
; You can also enable warnings (level 2), info messages (level 3) or
; debug messages (level 4).

; 首选共享内存后端。 留空,让系统决定。

; Protect the shared memory from unexpected writing during script execution.
; Useful for internal debugging only.

; Allows calling OPcache API functions only from PHP scripts which path is
; started from specified string. The default "" means no restriction

; Mapping base of shared memory segments (for Windows only). All the PHP
; processes have to map shared memory into the same address space. This
; directive allows to manually fix the "Unable to reattach to base address"
; errors.

; 配置二级缓存目录并启用二级缓存。启用二级缓存可以在 SHM 内存满了、服务器重启或者重置 SHM 的时候提高性能。默认值为空字符串 "",表示禁用基于文件的缓存。

; 在共享内存中启用或禁用操作码缓存。

; 从文件缓存加载脚本时启用或禁用校验和验证。

; 表示opcache.file_cache_only = 1表示某个进程未能重新连接到共享内存(仅适用于Windows)。 需要明确启用文件缓存。

; 启用或禁用将PHP代码(文本段)复制到巨大页面中。 这样可以提高性能,但是需要适当的OS配置。

; 验证缓存的文件权限。

; 防止在chroot环境中发生名称冲突。

; 如果指定,它将生成用于调试优化的不同阶段的操作码转储。

该文章采用「CC 协议」,转载必须注明作者和本文链接.
分类: PHP