在 Ubuntu 上配置 PHP 缓存,通常包括 OPcache(字节码缓存) 和可选的 用户缓存(如 APCu)。下面按常见场景一步步说明。
OPcache 是 PHP 官方内置的字节码缓存,能显著提升 PHP 性能。
大多数情况下已经随 PHP 一起安装。
# 以 PHP 8.2 为例
sudo apt update
sudo apt install php8.2-opcache
如果你不确定 PHP 版本:
php -v
通常已自动启用,可检查:
php -i | grep opcache.enable
若未启用,编辑 PHP 配置文件:
sudo nano /etc/php/8.2/fpm/php.ini
# 或 Apache 用:
# /etc/php/8.2/apache2/php.ini
添加或修改:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.validate_timestamps=0 # 生产环境建议 0
PHP-FPM
sudo systemctl restart php8.2-fpm
Apache
sudo systemctl restart apache2
php -i | grep opcache
或使用:
php -r "print_r(opcache_get_status());"
APCu 适合缓存 PHP 变量(如配置、临时数据)。
sudo apt install php8.2-apcu
sudo nano /etc/php/8.2/fpm/conf.d/20-apcu.ini
确保内容如下:
extension=apcu.so
apcu.enable=1
apcu.shm_size=32M
sudo systemctl restart php8.2-fpm
<?php
apcu_store('foo', 'bar');
echo apcu_fetch('foo');
缓存主要在 PHP 层,无需额外配置 Nginx。
mod_php 或 php-fpmopcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
⚠️
validate_timestamps=0时,修改 PHP 文件后必须重启 PHP-FPM。
validate_timestamps=0opcache_get_status()| 缓存类型 | 是否必须 | 作用 |
|---|---|---|
| OPcache | ✅ 必须 | 提升 PHP 执行速度 |
| APCu | ❌ 可选 | 缓存 PHP 变量 |
| Redis / Memcached | ❌ 可选 | 分布式缓存 |
如果你愿意,可以告诉我:
我可以给你一套完全贴合你环境的配置方案。