You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP脚本每次访问是否需重加载解析执行?能否复用资源?

你的PHP运行模式理解确实存在偏差,而且PHP完全可以实现常驻运行、复用资源

首先明确:传统的PHP CGI模式确实是每次请求启动新进程,执行完就销毁,但现在主流的PHP运行模式早就支持常驻进程和资源复用了,具体可以从这几个方向实现:

  • PHP-FPM进程池+OPcache+持久连接
    PHP-FPM会维持一组常驻的工作进程,请求到来时直接分配给空闲进程处理,进程不会在请求结束后立即销毁。配合OPcache(默认开启),编译后的opcode会被进程缓存,后续请求无需重新解析编译PHP文件;同时可以开启数据库持久连接(比如PDO设置PDO::ATTR_PERSISTENT => true),让FPM进程复用数据库连接,避免每次请求重新建立连接的开销。

  • 使用Swoole/Workerman等常驻服务框架
    这类框架让PHP以类似NodeJS的常驻服务方式运行,启动后代码只加载解析一次,后续所有请求都在同一个(或一组)进程内处理。你可以在服务启动时提前初始化数据库连接、加载配置、创建全局对象实例,所有请求都直接复用这些资源,完全实现请求间的资源复用,性能和NodeJS的常驻模式看齐。

  • 针对WordPress的优化
    你用WordPress觉得每次都要重新初始化,是因为WordPress本身的架构是单请求生命周期设计,即使FPM进程常驻,它的业务逻辑还是会在每个请求重新加载所有核心文件、初始化连接。但可以通过插件或自定义代码优化:比如用OPcache缓存核心文件的opcode,用Redis缓存数据库查询结果和配置,减少重复查询的开销;如果想彻底实现资源复用,也可以用基于Swoole的WordPress运行容器,让WordPress以常驻模式运行。

总结:PHP并非只能每次请求重新初始化,通过合适的运行模式和工具,完全可以实现类似NodeJS的常驻运行、资源复用能力。

内容的提问来源于stack exchange,提问作者whiterook6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:30:41