这个缓存不需要安装,因为它是php5.6开始就自带的,所以只需要配置就能启用。它在所有php缓存中,目前是第一的,再无出其右。
简介
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 » PECL 扩展中的 OPcache 库。
安装
安装 OPcache 的过程根据所用的 PHP 版本有所不同。 请参考以下小节中适用的内容。
Note:
如果需要将 » Xdebug 扩展和 OPcache 一起使用,必须在 Xdebug 扩展之前加载 OPcache 扩展。
PHP 5.5.0 及后续版本
OPcache 只能编译为共享扩展。 如果你使用 –disable-all 参数 禁用了默认扩展的构建, 那么必须使用 –enable-opcache 选项来开启 OPcache。
编译之后,就可以使用 zend_extension 指令来将 OPcache 扩展加载到 PHP 中。在非 Windows 平台使用zend_extension=/full/path/to/opcache.so, Windows 平台使用 zend_extension=C:\path\to\php_opcache.dll。
PHP 5.2, 5.3 和 5.4 版本
此 » PECL 扩展未与 PHP 捆绑。
安装此 PECL 扩展相关的信息可在手册中标题为 PECL 扩展的安装章节中找到。更多信息如新的发行版本、下载、源文件、 维护人员信息及变更日志等,都在此处: » http://pecl.php.net/package/ZendOpcache.
PECL 扩展的 DLL 当前不可用。参见 在 Windows 上构建章节。
推荐的 php.ini 设置
使用下列推荐设置来获得较好的 性能:
1 2 3 4 5 6 | opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 |
你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。
这里是 OPcache 可用的配置指令完整列表。
//偶自己用的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | [opcache] zend_extension=php_opcache.dll opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=128 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=12000 opcache.max_wasted_percentage=60 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.revalidate_freq=2 opcache.revalidate_path=0 opcache.save_comments=1 opcache.fast_shutdown=0 opcache.enable_file_override=0 opcache.optimization_level=0xffffffff opcache.inherited_hack=1 opcache.dups_fix=0 opcache.blacklist_filename= opcache.max_file_size=0 opcache.consistency_checks=0 opcache.force_restart_timeout=180 opcache.error_log= opcache.log_verbosity_level=1 opcache.preferred_memory_model= opcache.protect_memory=0 opcache.restrict_api= opcache.mmap_base=0x20000000 opcache.file_cache="C:\Windows\Temp" opcache.file_cache_only=0 opcache.file_cache_consistency_checks=1 opcache.file_cache_fallback=1 opcache.huge_code_pages=1 |