改进 PHP 需要一个可工作的构建环境来测试更改,以下部分介绍了如何设置一个可工作的构建环境。
您的构建环境应该有一个合适的工具链,包括一个可工作的 C 编译器,对于不在 Microsoft Windows 上工作的人,您需要一个可工作的、兼容的 autotools 安装,并且至少需要一个共享的 zlib 副本。
对于大多数类 Unix 操作系统,可能需要一些外部依赖项才能完成构建;如果构建由于缺少头文件或库而失败,发出以下命令的变体应该可以解决这些依赖项,从而允许构建继续
[sudo] yum|apt-get|ports install package[-dev[el]]
对于在 Ubuntu Linux 上工作的人,您可以运行以下命令来自动安装依赖项
sudo apt-get build-dep php5
sudo apt-get build-dep php5-extname
下表显示了 Microsoft Windows 用户构建 PHP 所需的内容
PHP | Visual C++ | MS SDK | DEPS | PHP SDK |
---|---|---|---|---|
5.3 | Visual Studio 2008 | 6.1 | x86 | 这里 |
5.4 | Visual Studio 2008 | 6.1 | x86 | 这里 |
5.5 | Visual Studio 2008 | 6.1 | x86 | 这里 |
5.5 | Visual Studio 2012 | N/A | x86,x64 | 这里 |
注意: 如果需要 Windows SDK,建议在安装 Visual Studio 之前 安装 SDK。
Windows 用户现在应该将 PHP SDK 下载并解压缩到他们的工作区,并在适当的 Visual Studio 控制台中执行以下命令
Visual Studio 2008
setenv /xp /Release /x86
cd C:\path-to-workspace
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat phpdev
下一步是每个人都通过 git 获取版本化的 PHP 源代码
git clone -b BRANCH https://github.com/php/php-src .
此时,您有一个可工作的构建环境和您选择的 PHP 分支的原始源代码,在您更改任何内容之前,最好创建一个新分支并切换到它,为您的惊人更改做好准备
git checkout -b my-awesome-changes
所有操作系统现在都汇聚在(几乎没有区别)构建过程的其余部分的相同解决方案上
buildconf: generates the configure script for PHP
configure: configures the build of PHP and creates Makefile
make: builds PHP
make test: runs testsuite
make install: installs PHP
对于 Microsoft Windows 操作系统,这些命令如下所示
buildconf
configure --with-prefix=C:\my-awesome-php
nmake
nmake test
nmake install
而对于我们其他人来说,这些命令如下所示
./buildconf
./configure --prefix=/opt/my-awesome-php
make
make test
make install
configure 脚本能够自定义 PHP 的几乎所有方面,要在控制台中获取帮助,请将 --help 作为 configure 的唯一参数传递
当 configure 执行时,它会将传递的选项保存到可重用的 config.nice 中,该选项在调用时会执行 configure。
构建成功完成后,建议运行测试套件,这将有助于您识别工作中的回归问题,运行测试套件可能需要一段时间;出去跑跑步,或者吃个汉堡。
也可以通过以下方式运行一组(目录)测试
[n]make test TESTS=sapi/cli