ITADN
php/php-src
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

PHP 解释器

PHP 是一种流行的通用脚本语言,尤其适用于 Web 开发。快速、灵活且务实,PHP 驱动着从您的 博客到世界上最受欢迎的网站的一切。

PHP 在 修改版 BSD 许可证 (SPDX-License-Identifier: BSD-3-Clause) 下分发。

Test Fuzzing Status

文档

PHP 手册可在 php.net/docs 获取。

安装

预构建的软件包和二进制文件

可以使用预构建的软件包和二进制文件快速启动 PHP。

对于 Windows,可以从 windows.php.net 获取 PHP 二进制文件。解压归档文件后, *.exe 文件即可使用。

对于其他系统,请参阅安装章节

构建 PHP 源代码

对于 Windows,请参阅在 Windows 上构建自己的 PHP

要从 Git 进行最小化 PHP 构建,您需要 autoconf、bison 和 re2c。对于 默认构建,您还需要 libxml2 和 libsqlite3。

在 Ubuntu 上,您可以使用以下命令安装这些依赖:

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

在 Fedora 上,你可以使用以下命令安装这些软件:

sudo dnf install re2c bison autoconf make ccache libxml2-devel sqlite-devel

在 MacOS 上,你可以使用 brew 安装这些:

brew install autoconf bison re2c libiconv libxml2 sqlite

或带有 MacPorts

sudo port install autoconf bison re2c libiconv libxml2 sqlite3

生成 configure:

./buildconf

配置你的构建。--enable-debug 推荐用于开发,请参阅 ./configure --help 以获取完整的选项列表。

# For development
./configure --enable-debug
# For production
./configure

构建 PHP。为加快构建速度,使用 -j 参数指定最大作业数:

make -j4

作业数量通常应与可用核心数相匹配, 这可以使用 nproc 来确定。

测试 PHP 源代码

PHP 附带一个广泛的测试套件,在源代码成功编译后,使用命令 make test 来运行此测试套件。

可以通过在 TEST_PHP_ARGSTESTS 中设置 -jN 来使用多个核心运行测试:

make TEST_PHP_ARGS=-j4 test

应使用 make test 运行,最大并发任务数为 4:通常,最大任务数不应超过可用的核心数。

使用 TEST_PHP_ARGSTESTS 变量仅测试特定目录:

make TESTS=tests/lang/ test

qa.php.net 网站提供了有关测试和质量保证的更详细信息。

安装从源码构建的 PHP

在成功构建(并测试)后,可以使用以下命令安装 PHP:

make install

根据您的权限和前缀,make install 可能需要超级用户 权限。

PHP 扩展

扩展在 PHP 之上提供额外功能。PHP 包含许多 必需的捆绑扩展。可以在 PIE Extensions 列表中找到其他扩展,并使用 🥧 PIE, the PHP Installer for Extensions 或已弃用的 PHP Extension Community Library - PECL 进行安装。

贡献

PHP 源代码位于 github.com/php/php-src 的 Git 仓库中。欢迎通过 分叉仓库并发送拉取请求的方式进行贡献。

讨论在 GitHub 上进行,但根据主题不同,也可以转发 到官方 PHP 开发者邮件列表 internals@lists.php.net

新功能需要 RFC,并且必须获得开发者的接受。请参阅 Request for comments - RFCVoting on PHP features 以获取有关 流程的更多信息。

错误修复不需要 RFC。如果该错误有 GitHub issue,请在 提交信息中使用 GH-NNNNNN 引用它。对于旧的 bugs.php.net 错误跟踪器中的工单,请使用 #NNNNNN

Fix GH-7815: php_uname doesn't recognise latest Windows versions
Fix #55371: get_magic_quotes_gpc() throws deprecation warning

有关拉取请求如何合并的详细信息,请参阅 Git workflow

贡献者指南

请参阅仓库中的其他文档以获取有关如何 贡献的更多信息:

致谢

有关为 PHP 做出贡献的人员列表,请参阅 PHP 致谢页面