软件搬运工
发布于 2026-06-08 / 6 阅读
0
0

编译 PHP 需要的环境包,根据操作系统不同,可以分为两类:通用的基础工具链和各类扩展功能依赖库

编译 PHP 需要的环境包,根据操作系统不同,可以分为两类:通用的基础工具链各类扩展功能依赖库

我把常用 Linux 发行版的依赖安装命令整理了一下,可以参考:

💻 各发行版依赖清单

依赖类型Ubuntu/DebianCentOS/RHELAlpine Linux
基础工具链sudo apt install build-essential autoconf automake bison re2c pkg-config libtoolsudo yum groupinstall "Development Tools"
sudo yum install autoconf automake bison re2c libtool pkgconfig
apk add build-base autoconf automake bison re2c libtool pkgconf
核心依赖库libxml2-dev
libssl-dev
sqlite3-dev
libcurl4-openssl-dev
libzip-dev
libonig-dev
libxml2-devel
openssl-devel
libsqlite3x-devel
libcurl-devel
libzip-devel
oniguruma-devel
libxml2-dev
openssl-dev
sqlite-dev
curl-dev
zip-dev
oniguruma-dev
图形库 (GD)libjpeg-dev
libpng-dev
libfreetype6-dev
libwebp-dev
libjpeg-devel
libpng-devel
freetype-devel
libwebp-devel
libjpeg-turbo-dev
libpng-dev
freetype-dev
libwebp-dev
数据库及其他libmysqlclient-dev
libpq-dev
libicu-dev
libxslt1-dev
libldap2-dev
libbz2-dev
libgmp-dev
mysql-devel
postgresql-devel
libicu-devel
libxslt-devel
openldap-devel
bzip2-devel
gmp-devel
mariadb-dev
postgresql-dev
icu-dev
libxslt-dev
openldap-dev
bzip2-dev
gmp-dev

📝 各依赖说明

  1. 基础工具链

    • build-essential / Development Tools:这是一个元包,会安装 gccg++make 等编译 PHP 必需的 C 语言工具链。
    • autoconf, automake, bison, re2c:用于生成和配置 PHP 的构建系统。
    • pkg-config:一个帮助 configure 脚本找到所需库文件的工具。
  2. 核心依赖库

    • libxml2-dev几乎所有 PHP 环境都必须安装。它为 SimpleXML、DOM 等 XML 相关扩展提供了基础支持。
    • libssl-dev:为 openssl 扩展提供支持,这是实现 HTTPS 和安全的网络通信所必需的。
    • sqlite3-dev:为 sqlite3 扩展提供支持。
    • libcurl4-openssl-dev / libcurl-devel:让 PHP 可以使用 cURL 功能与各种网络服务器进行交互。
    • libzip-dev / libzip-devel:为 zip 扩展提供支持,用于创建和修改 Zip 压缩文件。
    • libonig-dev / oniguruma-devel:正则表达式处理库 mbstring(多字节字符串)扩展的依赖。
  3. 图形库 (GD库,用于图像处理)

    • 如果需要在 PHP 中处理图像(如生成验证码、裁剪图片等),需要为 GD 库安装一系列依赖,包括 libjpeg, libpng, libfreetype 等。部分环境可能还需要 libwebp 来支持 WebP 格式。

💡 一些补充说明

  • Alpine Linux 的特别提醒

    • Alpine 为了极致轻量化,使用了 musl libc 替代标准的 glibc。这意味着你不能简单复制 Ubuntu 的二进制包到 Alpine 上使用,部分 PHP 扩展(如 Swoole)需要重新编译才能兼容。
    • 编译时请使用 apk add 命令安装带 -dev 后缀的开发包,并可能需要额外安装 g++ 等工具。
  • 编译动态扩展 (PECL 或第三方扩展)

    • 如果你打算通过 pecl install 或源码方式安装 PHP 扩展,必须提前安装对应 PHP 版本的开发包。它提供了 phpizephp-config 等必要的构建工具。
    • Ubuntu/Debian: sudo apt install php-devphp-all-dev (版本无关的元包)。
    • CentOS/RHEL: sudo yum install php-devel (安装后会提供 phpize 工具)。
    • Alpine: apk add php-dev (注意版本,如 php8-dev)。
  • 编译扩展时的特定依赖

    • 有些扩展还有自己特殊的依赖需求。
      • Xdebug: 通常不需要额外依赖,但需要 php-dev 来提供 phpize 工具。
      • Redis: 需要 php-dev,但通常不需要额外库。
      • ImageMagick (imagick): 需要先安装 imagemagick-devel (CentOS) 或 libmagickwand-dev (Ubuntu) 库。
      • Event / Libevent: 需要安装 libevent-dev 开发包。

编译时如果 ./configure 报错说缺少某个库,根据提示搜索对应的 -dev-devel 包安装即可。


评论