温馨提示×

ubuntu php fpm如何开启缓存

小樊
44
2026-09-04 13:18:34
栏目: 编程语言

在 Ubuntu 上,PHP-FPM 本身没有“页面缓存”功能,但可以通过开启 OPcache(字节码缓存)以及配合 Web 服务器缓存来大幅提升性能。下面按常见场景说明。


一、开启 PHP OPcache(最重要)

OPcache 用于缓存 PHP 脚本的编译结果,避免重复解析。

1. 安装 OPcache

一般 PHP 已自带,若未安装:

sudo apt update
sudo apt install php-opcache

(如是 php8.1:php8.1-opcache)

2. 修改 php.ini

找到你的 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)

3. 重启 PHP-FPM

sudo systemctl restart php8.1-fpm

4. 验证

php -i | grep opcache

或访问 phpinfo() 页面查看 OPcache 是否启用。


二、Nginx + PHP-FPM 开启 FastCGI 缓存(页面级缓存)

如果你用 Nginx:

1. 配置缓存目录

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";

2. 在 server 或 location 中启用

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;
}

3. 重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

三、Apache + PHP-FPM(可选缓存)

Apache 可用:

  • mod_cache
  • mod_expires

示例:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/html "access plus 10 minutes"
</IfModule>

四、应用层缓存(推荐)

如果是 WordPress / Laravel 等:

  • Redis
  • Memcached
  • 页面缓存插件
sudo apt install redis-server
sudo apt install php-redis

总结

缓存类型 是否必须 说明
OPcache ✅ PHP 性能核心
Nginx FastCGI Cache ⚠️ 页面级缓存
Redis / Memcached ✅(动态站) 数据缓存
浏览器缓存 ✅ 静态资源

如果你能说明:

  • PHP 版本
  • Web 服务器(Nginx / Apache)
  • 是否是 WordPress / Laravel

我可以给你更精确的一份配置。

0 踩