Я компилирую свой собственный PHP, частично чтобы узнать больше о том, как PHP составлен, и частично потому, что я всегда нахожу, что мне нужны модули, которые по умолчанию недоступны, и таким образом я могу контролировать это.
Моя проблема в том, что я не могу получить поддержку JPEG в PHP. Использование 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
Извинения за перекрестную публикацию с ошибкой сервера (https://serverfault.com/q/304310/92291), хотя я пытался выяснить, какова была позиция Stack Exchange в перекрестной публикации, и не было ясно: https://meta.stackexchange.com/q/75326/167958