Компиляция 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

Извинения за перекрестную рассылку с ошибкой сервера ( https://serverfault.com/q/304310/92291 ), хотя я попытался выяснить, что такое позиция Stack Exchange при перекрестной проводке, и было неясно: https: // meta. stackexchange.com/q/75326/167958

как просили:

Иногда скрипт configure является немым, и вам нужно сделать –with-somelib = / usr вместо … = / usr / lib, потому что тест конфигурации написан как предоставленный путь + '/ lib /', а не только предоставленный путь внутри , Возможно, вам придется копаться внутри набора тестов configure, чтобы узнать, что действительно требуется

Не забудьте сделать

make clean

после настройки.

У меня есть другая конфигурация и сделать раньше, а старая установка не позволяет мне включить поддержку jpeg в GD.

Это спасает меня на ubuntu 12.04 64 бит

Я также использую эти пакеты:

 aptitude install libjpeg62-dev libpng-dev libfreetype6-dev 

с этими настройками:

 ./configure \ --with-config-file-path=/usr/local/apache2/conf \ --with-jpeg-dir \ --with-png-dir \ --with-vpx-dir \ --with-freetype-dir \ --enable-apc \ --enable-bcmath \ --enable-calendar \ --enable-dba \ --enable-exif \ --enable-ftp \ --enable-mbstring \ --enable-shmop \ --enable-sigchild \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-zip \ --enable-gd-native-ttf \ --with-gd \ --with-apxs2=/usr/local/httpd/bin/apxs \ --with-bz2 \ --with-curl \ --with-gettext \ --with-mcrypt \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --with-openssl \ --with-pdo-mysql \ --with-xmlrpc \ --with-zlib 

а потом :

 make clean make make install 

Хорошо работать с Apache 2.4.3 и PHP 5.4.11

Скорее всего, вам потребуется установить версию разработки, а не версию во время выполнения libjpeg (конечно, во время выполнения вам понадобится версия времени исполнения).

Я сам не использую CentOS, но что-то вроде этого должно помочь:

 rpm install libjpeg-devel 

Возможно, имя пакета неверно, но ищите что-то с -dev или -dev .