PHP源码安装(make install)报错:checking for libjpeg... no

举报
林欣 发表于 2025/09/21 17:46:19 2025/09/21
【摘要】 checking for libjpeg... noconfigure: error: Package requirements (libjpeg) were not met:No package 'libjpeg' foundConsider adjusting the PKG_CONFIG_PATH environment variable if youinstalled softwar...
checking for libjpeg... no
configure: error: Package requirements (libjpeg) were not met:

No package 'libjpeg' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables JPEG_CFLAGS
and JPEG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[root@sas-plat php-8.3.24]# sudo yum install -y libjpeg-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
Package libjpeg-turbo-devel-1.2.90-5.el7.x86_64 already installed and latest version
Nothing to do

这个错误表明 pkg-config 无法找到 libjpeg,即使你已经安装了 libjpeg-turbo-devel。这通常是因为:

  1. libjpeg.pc 文件不在 pkg-config 的搜索路径中(常见于 CentOS 7)。
  2. libjpeg-turbolibjpeg 的包名不匹配(某些旧版 PHP 配置脚本可能只识别 libjpeg)。

解决方案

方法 1:手动创建 libjpeg.pc 符号链接

CentOS 7 的 libjpeg-turbo-devel 默认安装 .pc 文件到 /usr/lib64/pkgconfig/,但 pkg-config 可能只搜索 /usr/lib/pkgconfig/
解决方法

# 检查 libjpeg.pc 是否存在
sudo find / -name "libjpeg.pc" 2>/dev/null

# 如果找到(通常在 /usr/lib64/pkgconfig/),手动链接到标准路径
sudo ln -s /usr/lib64/pkgconfig/libjpeg.pc /usr/lib/pkgconfig/

# 重新检查 pkg-config 是否能识别
pkg-config --modversion libjpeg

如果输出版本号(如 6.2.0),说明成功。


方法 2:强制指定 JPEG_CFLAGSJPEG_LIBS

如果 pkg-config 仍然找不到 libjpeg,可以手动指定编译参数:

export JPEG_CFLAGS="-I/usr/include/jpeg"
export JPEG_LIBS="-L/usr/lib64 -ljpeg"

然后重新运行 PHP 的 ./configure

./configure \
    --enable-gd \
    --with-jpeg \
    --with-freetype \
    --with-png \
    ...  # 其他配置

方法 3:安装 libjpeg 兼容包(可选)

某些旧版 PHP 可能需要 libjpeg(而非 libjpeg-turbo)。可以尝试安装:

sudo yum install -y libjpeg-devel  # 如果未安装

如果 yum 找不到,可以手动下载 RPM 包:

sudo yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/libjpeg-turbo-devel-1.2.90-8.el7.x86_64.rpm

方法 4:检查 PKG_CONFIG_PATH

确保 PKG_CONFIG_PATH 包含 /usr/lib64/pkgconfig

export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/lib64/pkgconfig:$PKG_CONFIG_PATH"

然后重新运行 ./configure


验证是否解决

重新运行 PHP 的 ./configure,检查是否仍然报错:

./configure --help | grep jpeg  # 确认 --with-jpeg 可用

如果仍然失败,可以查看 config.log 查找具体错误:

grep -i jpeg config.log

总结

方法 适用场景 命令
方法 1 libjpeg.pc 不在 pkg-config 路径 sudo ln -s /usr/lib64/pkgconfig/libjpeg.pc /usr/lib/pkgconfig/
方法 2 pkg-config 无法识别 export JPEG_CFLAGS="-I/usr/include/jpeg" + export JPEG_LIBS="-L/usr/lib64 -ljpeg"
方法 3 需要 libjpeg 而非 libjpeg-turbo sudo yum install -y libjpeg-devel
方法 4 PKG_CONFIG_PATH 未设置 export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/lib64/pkgconfig"

推荐顺序
方法 1 → 方法 4 → 方法 2 → 方法 3

如果仍然失败,可能是 PHP 版本与系统库不兼容,建议:

  • 升级到 CentOS 8+ 或 Ubuntu 20.04+(避免旧版库问题)。
  • 使用 remiSCL 仓库安装新版 PHP(如 PHP 8.3)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。