opcache 是 PHP 官方推出的一个拓展。其原理是将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能。好处就是省去了每次加载和解析 PHP 脚本的时间。从而实现网站程序的加速。需要注意的是,5.5以下的PHP 版本是没有绑定这个拓展的。同时如果你的网站服务器使用的是空间(比如阿里的云虚拟主机)那么可能也无法使用这个拓展。具体请各位自己咨询自己的服务器商。本文就用宝塔环境给大家做演示。
宝塔:
查看网站的 PHP 版本:宝塔后台 > 网站 > 选择对应网站 > 设置 > PHP 版本
![服务器开启opcache php拓展,提升WordPress运行速度 服务器开启opcache php拓展,提升WordPress运行速度](https://www.veidc.com/wp-content/uploads/2022/03/20220331_6245234f73e0a.png)
找到对应版本的PHP控制面板:宝塔后台 > 软件商店 > 搜索 “php” > 找到对应版本PHP > 设置
![服务器开启opcache php拓展,提升WordPress运行速度 服务器开启opcache php拓展,提升WordPress运行速度](https://www.veidc.com/wp-content/uploads/2022/03/20220331_6245234f981a8.png)
推荐:将对应版本的PHP面板加入到宝塔首页。方便后续管理。
![服务器开启opcache php拓展,提升WordPress运行速度 服务器开启opcache php拓展,提升WordPress运行速度](https://www.veidc.com/wp-content/uploads/2022/03/20220331_6245234fcd5cf.png)
开启 opcache 拓展:安装拓展 > opcache > 安装
![服务器开启opcache php拓展,提升WordPress运行速度 服务器开启opcache php拓展,提升WordPress运行速度](https://www.veidc.com/wp-content/uploads/2022/03/20220331_6245235004f5a.png)
重新加载PHP配置:服务 > 重载配置
![服务器开启opcache php拓展,提升WordPress运行速度 服务器开启opcache php拓展,提升WordPress运行速度](https://www.veidc.com/wp-content/uploads/2022/03/20220331_6245235019b06.png)
以上,你已经成功启用了 opcache拓展。
WordPress加速不仅仅在PHP层面上。你还可以通过整合前端的 js 与 css脚本。同时还可以对图片进行压缩来实现速度的提升。
补充:Linux 环境 配置 opcache
在Linux操作界面中逐条执行如下代码,安装 opcache:
wget http://pecl.php.net/get/zendopcache-7.0.3.tgz tar zxvf zendopcache-7.0.3.tgz cd zendopcache-7.0.3 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
配置 php.ini 文件
[Zend Opcache] zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so opcache.enable=1 ;启用操作码缓存 opcache.enable_cli=1 ;仅针对CLI环境启用操作码缓存 opcache.memory_consumption=128 ;共享内存大小,单位MB opcache.interned_strings_buffer=8 ;存储临时字符串的内存大小,单位MB opcache.max_accelerated_files=4000 ;哈希表中可存储的脚本文件数量上限 ;opcache.max_wasted_percentage=5 ;浪费内存的上限,以百分比计 ;opcache.use_cwd=1;附加改脚本的工作目录,避免同名脚本冲突 opcache.validate_timestamps=1 ;每隔revalidate_freq 设定的秒数 检查脚本是否更新 opcache.revalidate_freq=60 ; ;opcache.revalidate_path=0 ;如果禁用此选项,在同一个 include_path 已存在的缓存文件会被重用 ;opcache.save_comments=1 ;禁用后将也不会加载注释内容 opcache.fast_shutdown=1 ;一次释放全部请求变量的内存 opcache.enable_file_override=0 ; 如果启用,则在调用函数file_exists(), is_file() 以及 is_readable() 的时候, 都会检查操作码缓存 ;opcache.optimization_level=0xffffffff ;控制优化级别的二进制位掩码。 ;opcache.inherited_hack=1 ;PHP 5.3之前做的优化 ;opcache.dups_fix=0 ;仅作为针对 “不可重定义类”错误的一种解决方案。 ;opcache.blacklist_filename="" ;黑名单文件为文本文件,包含了不进行预编译优化的文件名 ;opcache.max_file_size=0 ;以字节为单位的缓存的文件大小上限 ;opcache.consistency_checks=0 ;如果是非 0 值,OPcache 将会每隔 N 次请求检查缓存校验和 opcache.force_restart_timeout=180 ; 如果缓存处于非激活状态,等待多少秒之后计划重启。 ;opcache.error_log="" ;OPcache模块的错误日志文件 ;opcache.log_verbosity_level=1 ;OPcache模块的日志级别。致命(0)错误(1) 警告(2)信息(3)调试(4) ;opcache.preferred_memory_model="" ;OPcache 首选的内存模块。可选值包括: mmap,shm, posix 以及 win32。 ;opcache.protect_memory=0 ;保护共享内存,以避免执行脚本时发生非预期的写入。 仅用于内部调试。 ;opcache.mmap_base=null ;在Windows 平台上共享内存段的基地址
注意:只需要将以上内容复制粘贴至 php.ini文件中保存即可。