使用 GD 和 libjpeg 支持编译 PHP

使用 GD 和 libjpeg 支持编译 PHP

我编译了自己的 PHP,部分是为了更多地了解 PHP 是如何组合在一起的,部分是因为我总是发现我需要默认情况下不可用的模块,这样我就可以控制它们。

我的问题是我无法在 PHP 中获得 JPEG 支持。使用 CentOS 5.6。以下是我编译时的配置选项PHP 5.3.8

 './configure'  '--enable-fpm' '--enable-mbstring' '--with-mysql' '--with-mysqli' '--with-gd' '--with-curl' '--with-mcrypt' '--with-zlib' '--with-pear' '--with-gmp' '--with-xsl' '--enable-zip' '--disable-fileinfo' '--with-jpeg-dir=/usr/lib/'

输出./configure内容如下:

checking for GD support... yes
checking for the location of libjpeg... no
checking for the location of libpng... no
checking for the location of libXpm... no

然后我们可以看到 GD 已安装,但是不支持 JPEG:

# php -r 'print_r(gd_info());'
Array
(
    [GD Version] => bundled (2.0.34 compatible)
    [FreeType Support] =>
    [T1Lib Support] =>
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] =>
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] =>
    [XBM Support] => 1
    [JIS-mapped Japanese Font Support] =>
)

我知道 PHP 需要能够找到 libjpeg,但它显然找不到自己满意的版本。我本以为/usr/lib/libjpeg.so/usr/lib/libjpeg.so.62需要这个版本,但我向它提供了正确的 lib 目录 ( --with-jpeg-dir=/usr/lib/),但它没有找到,所以我猜它们不是正确的版本。

rpm说 libjpeg 已安装。我应该yum remove重新安装它以及它的所有依赖包吗?这能解决问题吗?

这是一个粘贴箱,其中收集了一些希望有用的系统信息:
http://pastebin.com/ied0kPR6

答案1

如果你正在编译自己的 php 和扩展,你也需要 libjpeg-devel

yum install libjpeg-devel

您需要所有要链接和使用的库的 -devel 等效项(curl-devel、zlib-devel、gmp-devel 等)

答案2

我设置了--with-jpeg-dir=/usr/local/,它成功了!它似乎添加了lib自身。

相关内容