首页主机资讯Ubuntu PHP配置缓存设置

Ubuntu PHP配置缓存设置

时间2025-11-25 18:28:03发布访客分类主机资讯浏览1187
导读:Ubuntu PHP缓存配置实践 一 核心方案与适用场景 OPcache:PHP 内置的字节码缓存,缓存已编译脚本,显著减少解析与编译开销,适用于所有 PHP 应用的生产环境,建议默认开启。 APCu:用户态键值缓存,适合缓存计算结果、配...

Ubuntu PHP缓存配置实践

一 核心方案与适用场景

  • OPcache:PHP 内置的字节码缓存,缓存已编译脚本,显著减少解析与编译开销,适用于所有 PHP 应用的生产环境,建议默认开启。
  • APCu:用户态键值缓存,适合缓存计算结果、配置、字典数据等,常用于替代 APC 的用户缓存部分。
  • Redis / Memcached:进程外内存对象缓存,适合分布式、共享缓存与高并发场景,也可作为会话存储后端。
  • HTTP 层缓存:如 Varnish / Nginx 代理缓存,缓存整页响应,进一步降低后端 PHP 压力。
    以上方案可叠加使用:OPcache 提升脚本执行效率,APCu/Redis/Memcached 管理业务数据缓存,Varnish/Nginx 做全页或边缘缓存。

二 快速启用 OPcache(生产推荐)

  • 安装与启用
    • 安装扩展:sudo apt update & & sudo apt install php-opcache
    • 启用模块:sudo phpenmod opcache
  • 配置(编辑对应 SAPI 的 php.ini,路径示例:/etc/php/7.x/apache2/php.ini 或 /etc/php/7.x/fpm/php.ini)
    • 建议基础配置:
      • opcache.enable=1
      • opcache.memory_consumption=128(MB)
      • opcache.interned_strings_buffer=8(MB)
      • opcache.max_accelerated_files=10000(按项目文件数适当增大)
      • opcache.revalidate_freq=60(秒,开发环境可设更小,生产可更大)
      • opcache.fast_shutdown=1
  • 生效与验证
    • 重启服务:
      • Apache:sudo systemctl restart apache2
      • PHP-FPM:sudo systemctl restart php7.x-fpm
    • 验证:
      • CLI:php -i | grep opcache(应见 opcache.enable => On)
      • 或创建 /var/www/html/info.php: 访问并搜索 “opcache”。

三 用户态与对象缓存 APCu Redis Memcached

  • APCu(用户缓存)
    • 安装:sudo apt install php-apcu
    • 配置(php.ini):
      • apcu.enable=1
      • apcu.shm_size=32M(按内存与业务调优)
      • apcu.ttl=7200(秒)
      • apcu.enable_cli=1(如需要在 CLI 使用)
  • Redis(推荐作为通用对象缓存/会话后端)
    • 安装与启动:sudo apt install redis-server & & sudo systemctl enable --now redis-server
    • 安装扩展:sudo apt install php-redis
    • 框架示例(Laravel):.env 中设置 CACHE_DRIVER=redis
  • Memcached(分布式对象缓存)
    • 安装与启动:sudo apt install memcached & & sudo systemctl enable --now memcached
    • 安装扩展:sudo apt install php-memcached
  • 生效
    • PHP-FPM 场景需重启:sudo systemctl restart php7.x-fpm
      以上扩展与组件安装后,在应用中按各自客户端 API 使用即可。

四 HTTP 层缓存 Varnish 与 Nginx

  • Varnish(反向代理/全页缓存)
    • 安装:sudo apt install varnish
    • 基本配置(/etc/varnish/default.vcl):定义 backend(如 127.0.0.1:80),在 vcl_recv 中对可缓存请求返回 hash 等策略;默认监听 6081 端口,常与 Nginx/Apache 80 端口配合。
  • Nginx 代理缓存
    • 在 http 块定义缓存区:
      • proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    • 在 server/location 中使用:proxy_pass …; proxy_cache my_cache; 并设置 proxy_cache_valid。
  • 生效
    • 重启:sudo systemctl restart varnish 或 sudo systemctl restart nginx
      HTTP 层缓存可与 OPcache/APCu/Redis 叠加,显著降低后端负载。

五 调优与运维要点

  • 路径与多 SAPI:确保同时调整 CLI 与 FPM/Apache 的 php.ini;使用 php -i | grep opcache 或 phpinfo() 校验。
  • 文件规模与频率:项目文件多时增大 opcache.max_accelerated_files(如 10000+);频繁发布可缩短 opcache.revalidate_freq,稳定生产可适当增大以减少校验。
  • 内存与回收:根据站点规模调整 opcache.memory_consumption 与 APCu 的 shm_size;关注命中率与增长趋势,必要时增加内存或优化缓存键设计。
  • 会话与锁:将 session.save_handler 设为 redis/memcached 可提升并发;Redis 注意合理设置序列化与过期策略,避免大 key 与热 key 争用。
  • 安全与隔离:生产禁用 phpinfo() 与暴露调试信息;为缓存层设置访问与速率限制,避免被滥用。
  • 变更流程:变更配置后先灰度/备份,再重启对应服务,观察错误日志与监控指标(QPS、延迟、命中率、内存占用)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu PHP配置缓存设置
本文地址: https://pptw.com/jishu/755802.html
如何调试Ubuntu PHP代码 Ubuntu PHP配置与SSL证书安装

游客 回复需填写必要信息