我编译自己的 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
尽管我试图了解 Stack Exchange 在交叉发布方面的立场,但并不清楚:https : //meta. stackexchange.com/q/75326/167958