PHP 应用优化、缓存与运维
适用人群:PHP 站点已上线、要做性能优化与稳定运维的开发者。
核心概念
性能三板斧
- OPcache:缓存编译后的 PHP 字节码,显著提升性能,生产必开。
- 框架缓存:Laravel 的 config:cache / route:cache / view:cache 把配置、路由、视图预编译,减少每次请求开销。
- Redis + 队列:把缓存、会话放 Redis,把耗时任务(发信、通知)丢队列异步处理。
安全
PHP 应用是注入攻击的常见目标,用框架的查询构造器/ORM 参数化查询防 SQL 注入,及时更新框架和依赖修补漏洞。
操作步骤
步骤 1开启 OPcache
在 php.ini 打开 opcache,生产环境显著提速。
步骤 2框架缓存
部署后运行 config:cache、route:cache、view:cache(Laravel),减少运行时开销。
步骤 3接 Redis 与队列
缓存/会话用 Redis,耗时任务用队列异步处理,配 worker 常驻消费。
步骤 4安全加固
参数化查询防注入、及时更新依赖、收紧 .env 与目录权限。
步骤 5备份与监控
定期备份数据库和上传文件到异地,监控可用性、证书到期与备案状态。
实际示例
# Laravel 生产缓存(部署后执行)
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 队列 worker(配合 supervisor/systemd 常驻)
php artisan queue:work --daemon
常见错误
- ⚠️生产没开 OPcache,性能白白损失
- ⚠️改了 .env/配置后忘了 config:clear/重新 cache,配置没生效或用了旧缓存
- ⚠️队列 worker 没用 supervisor/systemd 守护,断了任务不再消费
- ⚠️拼接 SQL 而不用参数化查询,埋下注入风险
对应工具
常见问题
Laravel 改了配置不生效?
PHP 站点被挂马会影响备案吗?
相关教程
相关文章
网站上线后怎么做运维监控?可用性、SSL 到期与掉备案预警
网站上线不是终点。服务器宕机、证书过期、域名忘续费、备案被注销,任何一项都会让网站突然打不开。做好运维监控,就是在这些问题影响用户之前先收到预警。本文讲清该监控什么、怎么设告警。 要监控哪些项 | 监控项 | 关注什么 | 出问题的后果 | |---|---|---| | 可用性/Uptime | 网站是否能正常访问…
网站上线前怎么测试?测试环境、预发布与上线前检查清单
直接把没测过的网站推到线上,很容易上线即翻车:页面报错、链接失效、证书没配好,甚至因为空白页被判备案不合格。正式上线前做一轮测试和逐项检查,能把问题挡在用户之前。本文讲清测试环境怎么搭、备案期间怎么合规地测,以及上线前该核对什么。 为什么要先测 功能验证:注册、表单、支付、接口等关键流程能不能跑通; 展示验证:各页面…
网站访问日志留存与安全合规运维要点
为什么要留日志:这是法定要求 《网络安全法》第二十一条明确要求网络运营者"采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月"。已完成备案、对外提供服务的网站属于网络运营者范畴,日志留存不是可选项,而是基础合规义务。 应留存哪些日志 | 日志类型 | 记录内容 | 主要用途 …
备案接入商变更(转入转出)全流程与运维要点
什么是备案接入商变更 备案里的"接入商",指为你的域名提供服务器与网络接入、并在管局系统里代为提交"接入备案"的服务商(如各家云厂商)。当你把网站从一家云迁到另一家、或换到不属于原接入商的 IP 时,备案的接入信息就与实际不符了,需要通过"转入转出"把接入关系迁到新服务商名下。 转入:在新接入商处发起接入申请,把已有…
备案站点的缓存运维:穿透、击穿与雪崩
缓存不是加上就万事大吉 缓存挡住了大部分读流量,也因此成了新的单点:一旦缓存集体失效,全部请求会在同一瞬间压到数据库上。缓存事故的破坏力常常比没有缓存更大——因为系统的容量规划本就是按"有缓存"来做的。数据库侧的承压能力见 数据库运维与高可用。 关键要点 穿透 = 查不存在的数据;击穿 = 单个热点 Key 过期;雪…
官方资料来源