我编译了自己的 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
自身。