OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 PECL[2] 扩展中的 OPcache 库。
安装
安装 OPcache 的过程根据所用的 PHP 版本有所不同。
Note:
如果需要将Xdebug[3] 扩展和 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 捆绑。
推荐的 php.ini 设置
使用下列推荐设置来获得较好的 性能:
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。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。