PHP:面向Web开发的通用脚本语言解释器
给Web开发者使用的PHP解释器,既能装预编译包,也能从源码构建和测试。
GitHub php/php-src 更新 2026-10-23 分支 master 星标 41.2K 分叉 8.3K
C PHP Web开发 解释器 BSD-3-Clause Ubuntu/Fedora/macOS

🧭 决策指南

适合,如果你

  • 你需要用于Web开发的通用脚本语言解释器,并希望使用PHP生态。
    README开头说明PHP是通用脚本语言,尤其适合Web开发。
  • 你需要调试或修改PHP源码,并准备使用--enable-debug构建。
    Installation > Building PHP source code说明开发构建可使用./configure --enable-debug。
  • 你需要对PHP源码运行完整测试或只测试tests/lang/目录。
    Testing PHP source code章节提供make test和make TESTS=tests/lang/ test。

不适合,如果你

  • 你的环境无法安装autoconf、bison、re2c、libxml2或libsqlite3,且仍计划源码构建。
    Building PHP source code列出这些工具及默认构建所需的开发库。
  • 你不能接受安装阶段可能需要超级用户权限。
    Installing PHP built from source明确说明make install可能需要superuser permissions。
  • 你只需要快速启动PHP,不希望编译源码。
    Installation > Prebuilt packages and binaries说明预编译包和二进制文件可快速运行PHP。

前置条件

  • 源码最小构建需要autoconf、bison和re2c。
  • 默认构建还需要libxml2和libsqlite3。
  • Ubuntu示例使用pkg-config、build-essential、autoconf、bison、re2c、libxml2-dev和libsqlite3-dev。
  • Fedora示例使用re2c、bison、autoconf、make、ccache、libxml2-devel和sqlite-devel。
  • macOS示例使用Homebrew安装autoconf、bison、re2c、libiconv、libxml2和sqlite。
  • 构建流程包含./buildconf、./configure和make -j4。
  • 测试需要先成功编译源码,README指定使用make test。

第一步命令(README 原文)

sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev

要注意

  • make -j4中的并行度应结合可用CPU核心数设置,README提到可用nproc确定核心数。
    Building PHP source code章节的make -j4说明。
  • make test默认并行运行,可能使用最多10个已检测逻辑处理器。
    Testing PHP source code章节。
  • 要限制测试范围,需要使用TEST_PHP_ARGS或TESTS变量,例如tests/lang/。
    Testing PHP source code章节。
  • 新功能贡献需要RFC并获得开发者接受,普通Bug修复不需要RFC。
    Contributing章节的RFC与Bug fixes说明。

替代方案

  • 预编译PHP packages and binaries:需要快速运行PHP,或不想准备源码构建依赖时更合适。
    Installation > Prebuilt packages and binaries
  • PIE PHP Installer for Extensions:需要安装README所述的额外PHP扩展,而不是修改PHP解释器源码时更合适。
    PHP extensions
  • PECL:需要使用PHP Extension Community Library提供的扩展路径时可选,但README将其标为deprecated。
    PHP extensions

材料未说明

  • README没有说明PHP 8.5.12支持的具体操作系统版本。
  • README没有提供PHP 8.5.12相对其他版本的性能数据。
  • README没有说明各类PHP扩展与PHP 8.5.12的兼容性矩阵。
  • README没有说明源码构建所需的最低编译器版本。
  • README没有说明预编译二进制文件的具体版本、架构和发布渠道范围。
  • 材料没有解释2026-10-23当日新增287颗星的具体原因。

💡 深度解析

6
不适合 我正在 Windows 上开发 PHP 网站和 Web API,只想尽快运行 PHP-8.5.12,不希望安装 Autoconf、Bison、re2c 或编译 C 源码;php-src 适合我吗?
适合读者: 使用 Windows 预编译 PHP 二进制开发动态网站和 Web API 的 PHP 应用开发者

不适合,因为你的目标是快速运行 PHP,而 php-src 是解释器源码仓库,不是面向应用开发者的即用型项目。

  • README 明确建议通过预编译包和二进制快速开始;Windows 二进制可从 windows.php.net 获取,解压后 *.exe 即可使用。
  • 从 Git 构建至少需要 autoconf、bison 和 re2c;默认构建还需要 libxml2 与 libsqlite3,这与你“不想准备编译环境”的约束冲突。
  • 项目数据将主要实现语言列为 C,并显示最新发布版本为 php-8.5.12,说明这里关注的是运行时实现,而不是网站框架或业务库。
  • 即使成功安装源码构建结果,数据库驱动、Web 服务器和框架级能力仍不由核心仓库单独提供。
  • Installation > Prebuilt packages and binaries:"Prebuilt packages and binaries can be used to get up and running fast with PHP."
  • Installation > Building PHP source code:"For a minimal PHP build from Git, you will need autoconf, bison, and re2c."
  • 项目数据:main_language 为 C;latest_release 为 php-8.5.12
材料未说明:README 没有说明 Windows 预编译包对具体 CPU 架构、线程模型或 Web 服务器组合的支持矩阵。;README 没有说明 php-8.5.12 对你现有 PHP 应用依赖的兼容性。
适合 我负责 PHP 源码的 CI,需要先运行完整测试,再单独运行 `tests/lang/`,并把并行 worker 控制在 4 个;README 能直接支持这套测试约束吗?
适合读者: 维护 PHP 语言行为持续集成的测试工程师,需要并行运行全量测试并筛选 tests/lang/

适合,因为 README 直接提供全量测试、目录筛选和并行度控制命令,与你的 CI 约束逐项对应。

  • 编译成功后使用 make test 运行 PHP 自带的完整测试套件,适合作为全量阶段的入口。
  • 测试默认并行运行,最多使用 10 个检测到的逻辑处理器;可以通过 TEST_PHP_ARGS=-j4 将并行 worker 限制为 4。
  • README 还支持 make TESTS=tests/lang/ test,可直接把测试范围限制到语言行为目录。
  • 如果 CI 需要顺序执行,也可以使用 -j1;不过 README 没有描述测试结果格式、失败重试机制、平台隔离要求或外部依赖对测试的影响,这些仍需由 CI 设计补充。
  • Testing PHP source code:"the command `make test` is used after successful compilation"
  • Testing PHP source code:"Tests run in parallel by default, using up to 10 detected logical processors."
  • Testing PHP source code:`make TEST_PHP_ARGS=-j4 test`
  • Testing PHP source code:`make TESTS=tests/lang/ test`
make TEST_PHP_ARGS=-j4 test
材料未说明:README 没有说明 CI 中失败测试的退出码、日志格式和测试报告产物。;README 没有说明 `tests/lang/` 是否覆盖你关注的全部解释器、扩展和平台行为。
适合 我主要用 C 修改 PHP 解释器或内存管理代码,需要一个带调试信息的源码构建,并在修改后运行 php-src 测试;README 的流程适合这种贡献工作吗?
适合读者: 使用 C、Autoconf 和 Make 参与 PHP 运行时贡献的底层开发者,需要定位解释器或内存管理问题

适合,因为项目提供面向开发的 --enable-debug 构建,并把源码编译、测试和贡献流程连成完整路径。

  • 项目数据表明 C 是主要实现语言,代码量远高于 PHP、C++、Shell 和 M4,与你修改运行时核心的工作对象一致。
  • README 明确说 --enable-debug 推荐用于开发,并提供 ./buildconf、configure、make 的源码构建步骤。
  • 编译成功后可执行 make test;测试默认并行运行,也可以用 TESTS 只运行特定目录,例如语言行为相关的 tests/lang/。
  • 新语言特性必须先经过 RFC 并被开发者接受,普通 bug 修复不要求 RFC;因此运行时修复和语言设计变更的贡献路径不同。
  • 项目数据:main_language 为 C;language_distribution 中 C 为 82232724
  • Installation > Building PHP source code:"`--enable-debug` is recommended for development"
  • Testing PHP source code:"PHP ships with an extensive test suite, the command `make test` is used"
  • Contributing:"New features require an RFC";"Bug fixes don't require an RFC."
./buildconf
材料未说明:README 没有说明调试构建与生产构建之间的具体性能差异。;README 没有给出内存调试器、断点调试器或运行时内部模块的具体使用步骤。
适合 我在 Ubuntu 上维护 PHP 生产镜像,需要从 php-src 构建默认生产版本,并且希望使用 libxml2 和 SQLite;这个源码项目能满足我的构建约束吗?
适合读者: 维护 Ubuntu 上 PHP 生产运行时和容器镜像的系统工程师,需要从源码生成生产构建

适合,因为 README 直接给出了 Ubuntu 依赖、生产配置和编译流程,并覆盖默认构建所需的 libxml2 与 SQLite。

  • Ubuntu 依赖命令包含 pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev,与目标环境和扩展需求一致。
  • README 将 ./configure 标为生产配置,将 ./configure --enable-debug 留给开发;因此可以明确区分生产运行时和调试运行时。
  • 构建阶段支持 make -j4,并说明并行任务数通常应匹配可用 CPU 核心数。
  • 测试成功后可执行 make install,但安装可能因权限和 prefix 需要超级用户权限;源码安装还可能与镜像中已有 PHP 路径或扩展产生冲突,这部分 README 没有自动解决方案。
  • Installation > Building PHP source code:Ubuntu 安装命令包含 `sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev`
  • Installation > Building PHP source code:"# For production\n./configure"
  • Installation > Building PHP source code:"make -j4"
  • Installing PHP built from source:"Depending on your permissions and prefix, `make install` may need superuser permissions."
sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev
材料未说明:README 没有列出 php-8.5.12 的完整发行版兼容矩阵或推荐编译器版本。;README 没有说明生产镜像中应启用哪些具体扩展,也没有给出容器化示例。
适合 我需要为 Linux、Windows 和 macOS 维护 PHP 发行包,并在不同平台保留一致的源码运行时;php-src 是否适合作为统一上游?
适合读者: 维护 Linux、Windows 和 macOS 三个平台 PHP 发行包的发行版工程师,需要确认源码构建是否跨平台

适合,但需要分别维护平台构建路径,因为 README 同时提供 Windows、Linux 和 macOS 的安装或源码构建入口,却没有承诺三者使用完全相同的依赖和配置。

  • README 为 Windows 提供专门的构建指南链接,为 Linux 给出 Ubuntu 和 Fedora 依赖命令,并为 macOS 给出 Homebrew 与 MacPorts 方案。
  • 项目核心使用 C 实现,构建通过 Autoconf 和 Make,并允许使用 configure 选项适配不同平台、库和调试需求。
  • 项目同时支持预编译二进制和源码构建,发行版可以将源码作为上游,也可以向普通用户提供构建好的包。
  • 测试命令 make test 适合纳入每个平台的验证流程,但 README 没有列出平台差异、编译器矩阵或所有扩展组合,因此统一性不能仅由核心源码保证。
  • Installation > Building PHP source code:"For Windows, see Build your own PHP on Windows"
  • Installation > Building PHP source code:同时提供 Ubuntu、Fedora、MacOS 的依赖安装方式
  • Installation > Prebuilt packages and binaries:"Prebuilt packages and binaries can be used to get up and running fast with PHP."
  • 项目洞察:Autoconf 和可选 configure 参数用于适配不同操作系统、库版本和调试需求
./buildconf
材料未说明:README 没有提供 Windows、Linux 和 macOS 的编译器、架构及扩展兼容矩阵。;README 没有说明不同平台生成的二进制是否具有一致的默认配置和 ABI 行为。
视情况 我在 macOS 上开发依赖 libxml2 和 SQLite 的 PHP 扩展,需要从源码构建 PHP 并验证扩展行为;php-src 是否覆盖我的平台和依赖约束?
适合读者: 需要为 PHP 增加 XML 和 SQLite 能力的扩展开发者,在 macOS 上从源码构建运行时

视情况,因为 README 覆盖 macOS 的源码依赖和 PHP 扩展机制,但没有保证你编写的第三方扩展本身能直接兼容所有配置。

  • macOS 可通过 Homebrew 安装 autoconf bison re2c libiconv libxml2 sqlite,或使用 MacPorts 的对应依赖,满足源码构建基础条件。
  • README 说明扩展在 PHP 核心之上提供额外功能,并指出可从 PIE Extensions 列表寻找额外扩展;这支持扩展化设计,但不等于每个扩展都随核心仓库交付。
  • 测试套件支持 make test,也支持用 TESTS 指定目录,因此可以验证核心或已有测试覆盖的行为。
  • 具体扩展的 API 兼容性、构建参数、测试目录和第三方库版本没有在 README 中展开,需要查扩展自身文档或内部文档。
  • Installation > Building PHP source code:MacOS Homebrew 命令 `brew install autoconf bison re2c libiconv libxml2 sqlite`
  • PHP extensions:"Extensions provide additional functionality on top of PHP."
  • PHP extensions:"Additional extensions can be found on the PIE Extensions list"
  • Testing PHP source code:`make TESTS=tests/lang/ test` 展示按目录测试
brew install autoconf bison re2c libiconv libxml2 sqlite
材料未说明:README 没有说明目标扩展支持的 PHP ABI、macOS 版本或 Apple Silicon/Intel 架构。;README 没有说明如何把自定义扩展接入 php-src 的构建和测试流程。

✨ 核心亮点

  • README覆盖源码构建、测试与安装完整流程
  • 支持make test并可用TESTS筛选目录
  • 提供PIE与PECL生态扩展安装路径
  • 社区规模达41,161星与8,311个Fork

🔧 工程化

  • PHP解释器面向通用脚本与Web开发场景
  • README提供./buildconf、./configure和make -j4构建命令
  • 内置扩展可通过PIE或PECL生态继续扩展

⚠️ 风险

  • 源码构建需要autoconf、bison、re2c等依赖
  • 默认测试最多使用10个逻辑处理器并行运行
  • make install可能因权限和安装前缀需要超级用户权限

👥 适合谁?

  • 需要Web开发脚本语言的PHP应用开发者
  • 需要调试解释器或修改C源码的PHP贡献者
  • 需要编译PHP并运行make test的系统开发者