FrankenPHP 原生支持 Windows 了 📅 发布时间:2026/7/8 4:58:54 👁️ 浏览次数: FrankenPHP 原生支持 Windows 了FrankenPHP 是什么FrankenPHP 是一个基于 Caddy 和 PHP 构建的现代 PHP 应用服务器目标是简化 PHP 应用的运行与部署。它既可以作为传统 PHP 应用的运行环境也提供了 Worker Mode、Hot Reloading 等更偏现代化的能力因此这两年在 PHP 社区里关注度一直不低。FrankenPHP 现已正式提供官方 Windows 支持并立即可用。自项目发布以来Windows 原生支持一直是 FrankenPHP 社区呼声最高的需求之一。现在这项能力已经正式落地。也就是说FrankenPHP 已经可以在 Windows 上原生运行并实现 100% 兼容包括 Worker Mode、Hot Reloading 等核心特性。性能表现这次支持并不只是“能用”性能表现也相当可观。社区已经给出了一些早期基准测试结果。有用户在同一台 Windows Server 2022 机器上将 FrankenPHP 与一个已经过优化的 Nginx/PHP-FPM 环境进行了对比。结果很直接仅仅切换服务器运行时就获得了3.6 倍性能提升增幅超过260%。此外henderkes 提供的一组更完整的基准测试也进一步验证了 FrankenPHP 在 Windows 原生环境下、不同工作负载中的性能收益。不过需要说明的是原生 Windows 支持虽然已经足够快在开发环境以及很多生产负载下也足够方便但如果目标是追求更高的极限吞吐量那么通过 WSL 运行 FrankenPHP 仍然更有优势因为 Linux 在底层 I/O 和网络架构上依旧更强。如果生产环境允许优先选择 Linux 仍然是更稳妥的方案。难点两个编译器体系的冲突为什么这件事花了这么久实际上此前已经有开发者尝试把 FrankenPHP 移植到 Windows。但除了常见的跨平台问题例如文件路径和文件系统差异更麻烦的是一个底层且结构性的兼容问题。问题的核心可以概括为下面几点FrankenPHP 是一个 Go 库它通过 CGO 调用 PHP 的libphpWindows 上的官方 PHP 构建使用 Visual StudioMSVC编译以保证性能和稳定性但 Go 的 CGO 在 Windows 上长期不支持 Visual Studio而是只支持 MinGWGCC这就留下了一个巨大的兼容性鸿沟两边根本无法直接链接在一起解决路径围绕这个问题项目曾尝试过几种方案但最终都没有走通。方案一让 Windows 版 PHP 支持 GCC第一种思路是给 PHP 打补丁让 Windows 版 PHP 支持 GCC 编译。但 PHP 维护者并不希望为此引入额外复杂度这一点并不难理解。另一方面项目本身也希望直接使用官方二进制以保证稳定性并避免生态分裂。因此依赖 Visual StudioMSVC之外的其他编译器并不可行。毕竟MSVC 是 PHP 官方唯一支持的 Windows 编译器。方案二“Frankenstein” 构建方案llvm-mingw第二种思路是折中方案使用llvm-mingw编译 FrankenPHP再把它链接到官方 Visual Studio 编译的 PHP。这个方案最终失败原因是标准库不匹配。当你把 MinGW 编译出来的二进制使用msvcrt.dll或自己的运行时与 MSVC 编译出来的二进制使用ucrt/vcruntime混在一起时就会遇到严重问题。比如一侧分配内存malloc另一侧去释放或者尝试跨边界传递文件描述符程序都会直接崩溃。本质上它们说的是两种不同方言的 “C”。突破点Go 1.26 与 clang最终项目找到了更合理的路径为 CGO 增加对 Visual Studio 提供的 Clang/LLVM 前端的支持。可以简单理解为Visual Studio 自带一套 Clang它可以作为 MSVC 编译器cl.exe的替代实现来工作。它接受 CGO 更适配的 GCC 风格参数同时底层又使用微软的 STL 和运行时库。也就是说它结合了两边的优点。在调研现有方案、准备给 Go 提交补丁的过程中项目方还发现 Google 其实已经提交过一份非常关键、但几乎没有公开说明的实现处理的正是这个问题。这份补丁最终进入了Go 1.26。借助 Go 新增的这项能力再配合lld-link链接器我们终于能够使用与 PHP 本身相同的工具链来编译 FrankenPHP。测试结果最终的成果是拿到了一个原生 Windows 二进制并且它直接链接到 PHP 官方提供的稳定版本二进制。更关键的是因为链接的是官方 PHP 构建所以所有 Windows 上受支持的原生 PHP 扩展在 FrankenPHP 中都能直接工作无需额外适配。在处理完 Windows 特有的一些细节后FrankenPHP 代码库也完成了相应更新。目前可以确认全部测试均已通过。✅ 原生 Windows 二进制✅ 完整扩展支持✅ Worker Mode✅ Hot Reloading致谢与赞助这项复杂工作之所以能够完成要感谢 Intelligence X 和 Les-Tilleuls.coop 的慷慨赞助。开源项目的可持续性并不容易。如果团队或公司依赖 FrankenPHP、Caddy 或 API Platform可以考虑通过 GitHub 提供赞助。类似支持往往也是这类底层技术问题能够持续推进的重要前提。现在就可以使用这项支持已经合并到 Pull Request#2119最新版 Windows 二进制也已经可以从发布页直接下载。原文最后也特别感谢了参与调研和实现的开发者尤其是 TenHian 在早期探索阶段的工作以及 henderkes 在最终实现中投入的大量精力。如果日常主要在 Windows 上开发 PHP现在已经可以直接试用 FrankenPHP。FrankenPHP 原生支持 Windows 了
Python之重导出机制深入分析 Python 并没有显式的“重导出语法”,但基于 import 的语言语义,我们可以将一个模块中的符号**再次暴露(re-export)**到另一个命名空间。这种模式在大型项目中用于构建清晰的 API 边界、解耦实现与接口、增强可维护性。本文从语言机… 2026/7/7 7:29:09
苍穹外卖 01 今天主要学了登录模块的加密算法MD5加密,是一种单向加密,个人理解将一串简单的字符如123456加密成32位十六进制数。加密步骤1.修改数据库中的密码 2.在修改service层,在密码比对中进行加密如:password DigestUtils.md5DigestAsHe… 2026/7/4 20:02:19
工地老师傅推荐的 ALC 板,到底好在哪? 在装修领域,有一种材料如同隐藏的宝藏,被工地老师傅们大力推荐,它就是 ALC 板。一块板,看似普通,却能改变整个装修的质量,今天就让我们揭开 ALC 板的神秘面纱,看看它究竟好在哪。轻质高强&#… 2026/7/6 15:29:10
商业PPT怎么做才够专业?这份避坑指南讲透了 商业PPT总做得像流水账?从框架逻辑、内容提炼到视觉设计,手把手教你做出让老板/客户眼前一亮的商业演示文稿,还顺便提了个能帮你省掉一半时间的AI工具。 说起商业PPT,很多人心里都默默叹一口气——明明同样都是做 PPT,… 2026/7/8 4:58:35
方向机钢丝绳适配技术要点解析 引言钢丝绳在众多工业领域中扮演着至关重要的角色。在方向机系统里,钢丝绳更是核心部件之一,它直接影响着方向机的性能和稳定性。优质的方向机钢丝绳能够确保转向精准、操作顺畅,减少故障发生概率,提高机械设备的整体安全性和可靠… 2026/7/8 4:58:35
毕业证公证认证要多久?毕业证公证认证材料有啥? 拿到海外名校的录取通知书,或是外企的入职Offer,本该是件开心的事,却往往被要求提供“毕业证公证认证”而瞬间头大。很多人对这项业务一知半解,以为只是盖个章那么简单,结果因为材料没备齐、时间没算够,差点… 2026/7/8 4:52:30
影刀RPA API调用实战:RESTful接口集成 title: “影刀RPA API调用实战:RESTful接口集成” date: 2026-06-26 author: 林焱 影刀RPA API调用实战:RESTful接口集成 现代系统都提供了API接口,影刀RPA可以调用这些接口获取数据或触发操作,实现系统集成。 什么情况用什么 … 2026/7/8 4:48:29
影刀RPA AWS云服务自动化:EC2 S3管理实战 影刀RPA AWS云服务自动化:EC2 S3管理实战 什么情况用什么 → 怎么做 → 有什么坑 作者:林焱 | 飞行社出品 什么情况用什么 企业用AWS(亚马逊云),每天要手动启停EC2实例、清理S3存储桶、监控账单,重复性工作… 2026/7/8 4:44:28
Cesium@1.138中实现平滑曲线编辑器 /*** 平滑曲线编辑器* 功能:根据经纬度生成平滑曲线,支持点击曲线显示控制点并输出属性,拖拽控制点修改曲线并输出最新坐标*/ class SmoothCurveEditor {/*** 构造函数* param {Object} Cesium - Cesium 对象* param {Object} viewer - Cesiu… 2026/7/8 4:40:27
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58