Назад | Перейти на главную страницу

Компиляция PHP с поддержкой GD и libjpeg

Я компилирую свой собственный 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

Я установил --with-jpeg-dir=/usr/local/ и это сработало! Кажется, добавить lib сам.

вам также понадобится libjpeg-devel, если вы СОБИРАЕТЕ свой собственный php и расширения

yum install libjpeg-devel

вам нужны все эквиваленты -devel для библиотек, которые вы собираетесь связать и использовать (curl-devel, zlib-devel, gmp-devel и т. д.)