在 Ubuntu 上,PHP-FPM 本身没有“页面缓存”功能,但可以通过开启 OPcache(字节码缓存)以及配合 Web 服务器缓存来大幅提升性能。下面按常见场景说明。
OPcache 用于缓存 PHP 脚本的编译结果,避免重复解析。
一般 PHP 已自带,若未安装:
sudo apt update
sudo apt install php-opcache
(如是 php8.1:php8.1-opcache)
找到你的 PHP 版本配置,例如:
sudo nano /etc/php/8.1/fpm/php.ini
添加或修改:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.validate_timestamps=0
⚠️ 生产环境建议
validate_timestamps=0(改代码后需重启 FPM)
sudo systemctl restart php8.1-fpm
php -i | grep opcache
或访问 phpinfo() 页面查看 OPcache 是否启用。
如果你用 Nginx:
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=PHP_CACHE:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_cache PHP_CACHE;
fastcgi_cache_valid 200 60m;
add_header X-Cache $upstream_cache_status;
}
sudo nginx -t
sudo systemctl reload nginx
Apache 可用:
mod_cachemod_expires示例:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 10 minutes"
</IfModule>
如果是 WordPress / Laravel 等:
sudo apt install redis-server
sudo apt install php-redis
| 缓存类型 | 是否必须 | 说明 |
|---|---|---|
| OPcache | ✅ | PHP 性能核心 |
| Nginx FastCGI Cache | ⚠️ | 页面级缓存 |
| Redis / Memcached | ✅(动态站) | 数据缓存 |
| 浏览器缓存 | ✅ | 静态资源 |
如果你能说明:
我可以给你更精确的一份配置。