如何配置Ubuntu PHP缓存机制
导读:Ubuntu PHP缓存机制配置指南 一 概览与选型 OPcache:PHP 内置的字节码缓存,减少脚本解析与编译,几乎是所有 PHP 应用的必选项。适用于提升脚本执行性能。 APCu:用户空间对象缓存,适合缓存计算结果、配置、字典数据等...
Ubuntu PHP缓存机制配置指南
一 概览与选型
- OPcache:PHP 内置的字节码缓存,减少脚本解析与编译,几乎是所有 PHP 应用的必选项。适用于提升脚本执行性能。
- APCu:用户空间对象缓存,适合缓存计算结果、配置、字典数据等,常用于 CLI 与 FPM 场景。
- Redis / Memcached:进程外内存数据缓存,适合页面片段、数据库查询结果、会话存储与跨进程共享数据。
- 可选增强:Varnish / Nginx 反向代理缓存,缓存整页响应,进一步降低后端 PHP 压力。
二 配置步骤
-
准备:确认 PHP 版本(如 7.4/8.0/8.1/8.2/8.3),后续路径与命令中的 { version} 请替换为实际版本。
-
- OPcache(字节码缓存,必配)
- 安装扩展:
sudo apt update & & sudo apt install php-opcache - 编辑配置(按运行环境分别修改):
- FPM:
sudo nano /etc/php/{ version} /fpm/php.ini - CLI:
sudo nano /etc/php/{ version} /cli/php.ini
- FPM:
- 写入或确认以下参数:
[opcache] zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 - 重启服务:
- FPM:
sudo systemctl restart php{ version} -fpm - Apache:
sudo systemctl restart apache2
- FPM:
- 验证:
php -i | grep opcache | grep enable(应看到 opcache.enable => On)
-
- APCu(用户数据缓存)
- 安装:
sudo apt install php-apcu - 配置(按需添加到 FPM/CLI 的 php.ini):
[apcu] extension=apcu.so apcu.enable_cli=1 apcu.shm_size=64M apcu.ttl=7200 - 重启服务(同上)并可用
php -m | grep apcu验证。
-
- Redis(键值缓存/会话/消息)
- 安装与启动:
sudo apt install redis-server & & sudo systemctl enable --now redis-server - 安装 PHP 扩展:
sudo apt install php-redis - 配置(添加到 php.ini):
extension=redis.so - 重启服务(同上)。
- 简单用法示例:
$redis = new Redis(); $redis-> connect('127.0.0.1', 6379); $key = 'my_cache_key'; $data = $redis-> get($key); if ($data === false) { $data = 'Hello, World!'; $redis-> setex($key, 3600, $data); // 1小时 } echo $data;
-
- Memcached(分布式对象缓存)
- 安装与启动:
sudo apt install memcached & & sudo systemctl enable --now memcached - 安装 PHP 扩展:
sudo apt install php-memcached - 配置(添加到 php.ini):
extension=memcached.so - 重启服务(同上)。
- 简单用法示例:
$m = new Memcached(); $m-> addServer('127.0.0.1', 11211); $key = 'my_cache_key'; $data = $m-> get($key); if ($data === false) { $data = 'Hello, World!'; $m-> set($key, $data, 3600); // 1小时 } echo $data;
三 多环境配置与验证
- 同时运行 FPM 与 CLI 时,需分别修改 /etc/php/{ version} /fpm/php.ini 与 /etc/php/{ version} /cli/php.ini;CLI 常用于 Composer/Artisan/CLI 脚本,建议开启 apcu.enable_cli=1。
- 验证要点:
- OPcache:
php -i | grep opcache.enable(应为 On) - 扩展是否加载:
php -m | grep -E 'opcache|apcu|redis|memcached' - 服务状态:
systemctl is-active php{ version} -fpm redis-server memcached
- OPcache:
四 生产建议与参数调优
- 必配组合:OPcache + APCu(进程内加速 + 用户数据缓存),动态站点再叠加 Redis/Memcached 做对象/会话缓存。
- OPcache 关键参数建议:
opcache.memory_consumption:从 128 MB 起步,视项目体量调至 256 MB 或更高。opcache.max_accelerated_files:建议 10000+,大型项目可提升到 40000。opcache.revalidate_freq:开发环境可设 0/1 便于调试;生产建议 60 秒以平衡性能与更新及时性。
- 会话存储:将 PHP 会话改为 Redis/Memcached(减少文件锁与 I/O)。
- 页面级缓存:在 Nginx/Apache 前加 Varnish 或使用 Nginx proxy_cache 缓存整页,进一步降低后端负载。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Ubuntu PHP缓存机制
本文地址: https://pptw.com/jishu/768836.html
