使用 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,它显然找不到它满意的版本。我本来以为或者会是它需要的,但是我为它提供了正确的lib目录(),它没有拾取它们,所以我想它们不可能是正确的版本。/usr/lib/libjpeg.so
/usr/lib/libjpeg.so.62
--with-jpeg-dir=/usr/lib/
rpm
说 libjpeg 已安装。我应该重新安装它,以及它的所有依赖包吗?这可以解决问题吗?yum remove
这是一个粘贴箱,其中包含一系列希望有用的系统信息:
http://pastebin.com/ied0kPR6
为与服务器故障交叉发布(https://serverfault.com/q/304310/92291)表示歉意,尽管我试图发现Stack Exchange在交叉发布中的立场是什么,但不清楚:https://meta.stackexchange.com/q/75326/167958