Ubuntu下PHP配置缓存怎么设置
Ubuntu下PHP配置缓存的常见方法及步骤
在Ubuntu系统中,PHP缓存主要通过OPcache(内置字节码缓存)、APCu(用户数据缓存)、**Redis/Memcached(分布式内存缓存)**三类方式实现,以下是详细配置指南:
一、OPcache(推荐:PHP内置字节码缓存)
OPcache是PHP 5.5+的内置扩展,用于缓存预编译的字节码,减少脚本加载和解析时间,显著提升PHP执行效率。
1. 安装OPcache
大多数Ubuntu版本的PHP已默认包含OPcache,若未安装可通过以下命令添加:
sudo apt update
sudo apt install php-opcache
2. 配置OPcache
编辑PHP配置文件(根据使用场景选择CLI或FPM配置文件,如PHP 8.1):
sudo nano /etc/php/8.1/cli/php.ini # 命令行模式
sudo nano /etc/php/8.1/fpm/php.ini # PHP-FPM模式
在文件中添加/修改[opcache]
section(关键参数说明见注释):
[opcache]
zend_extension=opcache.so # 启用OPcache扩展(必须)
opcache.enable=1 # 开启字节码缓存
opcache.memory_consumption=128 # 分配给OPcache的内存大小(MB,根据服务器调整)
opcache.interned_strings_buffer=8 # 内部字符串缓冲区大小(MB)
opcache.max_accelerated_files=10000 # 最大缓存文件数(根据项目文件数量调整)
opcache.revalidate_freq=60 # 脚本更新检查间隔(秒,生产环境建议60-300)
opcache.fast_shutdown=1 # 启用快速关闭,减少进程重启时间
opcache.enable_file_override=0 # 禁止覆盖文件缓存(提升安全性)
3. 重启服务
若使用PHP-FPM,重启服务使配置生效:
sudo systemctl restart php8.1-fpm
若使用Apache/Nginx,需重启Web服务器:
sudo systemctl restart apache2 # Apache
sudo systemctl restart nginx # Nginx
4. 验证配置
创建info.php
文件(/var/www/html/info.php
),内容为:
<
?php phpinfo();
?>
浏览器访问http://服务器IP/info.php
,搜索“opcache”确认以下信息:
opcache.enable
显示为On
;- 显示OPcache版本及内存使用情况。
二、APCu(用户数据缓存,适合会话/临时数据)
APCu是OPcache的补充,用于缓存用户数据(如数据库查询结果、会话信息),仅适用于当前请求的PHP进程。
1. 安装APCu
sudo apt update
sudo apt install php-apcu
2. 配置APCu
编辑PHP配置文件(同OPcache路径):
[apcu]
extension=apcu.so # 启用APCu扩展
apcu.enable_cli=1 # 允许CLI模式下使用(开发调试需要)
apcu.shm_size=64M # 分配的共享内存大小(MB,根据缓存需求调整)
apcu.ttl=3600 # 缓存项生存时间(秒,默认0=永不过期)
apcu.enable_shm_config=1 # 启用共享内存配置
3. 重启服务
sudo systemctl restart php8.1-fpm
# 若使用Web服务器,需重启Apache/Nginx
4. 验证配置
创建测试脚本apcu_test.php
:
<
?php
$key = 'test_key';
$value = apcu_fetch($key);
if ($value === false) {
$value = 'Hello, APCu!';
apcu_store($key, $value, 10);
// 缓存10秒
}
echo $value;
访问该脚本,若输出`Hello, APCu!'则表示配置成功。
三、Redis/Memcached(分布式内存缓存,适合大型应用)
Redis和Memcached是高性能的分布式内存缓存系统,适合缓存数据库查询、会话数据等,支持多服务器共享。
1. 安装Redis/Memcached及PHP扩展
Redis:
sudo apt update
sudo apt install redis-server php-redis
Memcached:
sudo apt update
sudo apt install memcached php-memcached
2. 配置Redis(以Redis为例)
编辑PHP配置文件:
[redis]
extension=redis.so # 启用Redis扩展
;
若需配置Redis服务器地址(默认localhost)
;
redis.default.host=localhost
;
redis.default.port=6379
;
redis.default.password=your_password
3. 重启服务
sudo systemctl restart php8.1-fpm
sudo systemctl restart redis-server # Redis服务
# 若使用Web服务器,需重启Apache/Nginx
4. 验证配置
创建测试脚本redis_test.php
:
<
?php
$redis = new Redis();
$redis->
connect('127.0.0.1', 6379);
// 连接Redis服务器
$key = 'cache_key';
$value = $redis->
get($key);
if ($value === false) {
$value = 'Cached data from Redis';
$redis->
set($key, $value, 60);
// 缓存60秒
}
echo $value;
访问脚本,若输出Cached data from Redis
则表示配置成功。
注意事项
- 选择缓存方案:OPcache适合提升PHP脚本执行效率,APCu适合用户数据缓存,Redis/Memcached适合分布式缓存。
- 参数调整:根据服务器内存大小、项目规模调整缓存内存(如
opcache.memory_consumption
、apcu.shm_size
)。 - 安全配置:避免将敏感数据存入缓存,Redis建议设置密码(
requirepass
配置)。 - 生产环境建议:同时开启OPcache和Redis,兼顾脚本执行效率和数据缓存需求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下PHP配置缓存怎么设置
本文地址: https://pptw.com/jishu/728295.html