PHP 解释器
PHP 是一种流行的通用脚本语言,尤其适用于 Web 开发。快速、灵活且务实,PHP 驱动着从您的 博客到世界上最受欢迎的网站的一切。
PHP 在 修改版 BSD 许可证
(SPDX-License-Identifier: BSD-3-Clause) 下分发。
文档
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_ARGS 或 TESTS 中设置 -jN 来使用多个核心运行测试:
make TEST_PHP_ARGS=-j4 test
应使用 make test 运行,最大并发任务数为 4:通常,最大任务数不应超过可用的核心数。
使用 TEST_PHP_ARGS 或 TESTS 变量仅测试特定目录:
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 - RFC 和 Voting 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 致谢页面。