PHP源码安装(make install)报错:checking for libjpeg... no
【摘要】 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
。这通常是因为:
libjpeg.pc
文件不在pkg-config
的搜索路径中(常见于 CentOS 7)。libjpeg-turbo
和libjpeg
的包名不匹配(某些旧版 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_CFLAGS
和 JPEG_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+(避免旧版库问题)。
- 使用
remi
或SCL
仓库安装新版 PHP(如 PHP 8.3)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)