PHP Conference Japan 2024

操作系统准备

改进 PHP 需要一个可工作的构建环境来测试更改,以下部分将介绍如何设置一个可工作的构建环境。

您的构建环境应该具有一个合适的工具链,其中包括一个可工作的 C 编译器,对于不在 Microsoft Windows 上工作的人员,您将需要一个可工作且兼容的 autotools 安装,并且至少需要一个共享的 zlib 副本。

对于大多数类 Unix 操作系统,可能需要一些外部依赖项才能完成构建;如果构建由于缺少头文件或库而失败,发出以下命令的变体应该可以解决这些依赖项,从而允许构建继续

  • [sudo] yum|apt-get|ports install package[-dev[el]]

对于在 Ubuntu Linux 上工作的人员,您可以运行以下命令来自动安装依赖项

  • sudo apt-get build-dep php5
如果某个扩展的编译由于缺少依赖项而失败,Ubuntu Linux 可以尝试通过发出以下命令来自动解决这些依赖项
  • 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 x86x64 此处

注意:如果需要 Windows SDK,建议在 Visual Studio 之前安装 SDK。

工作区准备

Windows 用户现在应该将 PHP SDK 下载并解压缩到他们的工作区,并在适当的 Visual Studio 控制台中执行以下命令

Visual Studio 2008

  • setenv /xp /Release /x86
Visual Studio 2008 和 2012
  • cd C:\path-to-workspace
  • bin\phpsdk_setvars.bat
  • bin\phpsdk_buildtree.bat phpdev
Windows 现在应该更改到目录 C:\path-to-workspace\phpdev\VCXX\XARCH,并将其视为当前构建的工作区的根目录。

每个人的下一步是通过 git 获取版本化的 PHP 源代码

  • git clone -b BRANCH https://github.com/php/php-src .
BRANCH 应替换为适当的分支名称,例如 PHP-5.5

此时,您拥有一个可工作的构建环境以及所选 PHP 分支的原始源代码,在您更改任何内容之前,最好创建一个新分支并切换到它,以准备您即将进行的出色更改

  • git checkout -b my-awesome-changes

构建您的开发 PHP

所有操作系统现在都汇聚到(几乎相同)构建过程其余部分的相同解决方案上

  • 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

To Top