Compiling PHP with GD and libjpeg support
Solution 1
I set --with-jpeg-dir=/usr/local/
and it worked! It appears to add the lib
itself.
Solution 2
you need libjpeg-devel too if you are COMPILING your own php and extensions
yum install libjpeg-devel
you need all the -devel equivalents for libraries that you are going to link and use (curl-devel, zlib-devel, gmp-devel, etc)
Related videos on Youtube
Robin Winslow
I'm a web developer at Canonical. I have a blog about web dev, politics and other things. I'm interested in UX, client- and server-side development, code architecture and microformats. I'm not a fan of intellectual property, and I love freedom of information and open-source.
Updated on September 18, 2022Comments
-
Robin Winslow over 1 year
I compile my own PHP, partly to learn more about how PHP is put together, and partly because I'm always finding I need modules that aren't available by default, and this way I have control over that.
My problem is that I can't get JPEG support in PHP. Using CentOS 5.6. Here are my configuration options when compiling 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/'
The
./configure
output says: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
And then we can see that GD is installed, but that JPEG support isn't there:
# 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] => )
I know that PHP needs to be able to find libjpeg, and it obviously can't find a version it's happy with. I would have thought
/usr/lib/libjpeg.so
or/usr/lib/libjpeg.so.62
would be what it needs, but I supplied it with the correct lib directory (--with-jpeg-dir=/usr/lib/
) and it doesn't pick them up so I guess they can't be the right versions.rpm
says libjpeg is installed. Should Iyum remove
and reinstall it, and all it's dependent packages? Might that fix the problem?Here's a paste bin with a collection of hopefully useful system information:
http://pastebin.com/ied0kPR6-
Robin Winslow over 12 yearsIf I use
--with-jpeg-dir=/usr/lib/
it outputs a rather more promisingchecking for the location of libjpeg... /usr/local/lib/
. But then it still doesn't list JPEG support in the output ofphp -r 'print_r(gd_info());'
. -
SmallClanger over 12 yearsTry it wih
--with-jpeg-dir=/usr
. I think autoconf looks inlib/
within the specified directory. -
Robin Winslow over 12 yearsTried that. Didn't work. Similar my above comment, it said
location of libjpeg... /usr
but didn't lead to JPEG support. -
Robin Winslow over 12 yearsThis was the solution. I set
--with-jpeg-dir=/usr/local/
and now it works! Please post this solution as an answer and I'll accept it. -
SmallClanger over 12 yearsHow odd. Perhaps the idea is to distract autoconf by making it look in
usr/local/
whilst quietly slipping the correct lib into its pocket. :) Still, I couldn't possibly accept this answer, since mine was wrong. Feel free to post your own solution and accept it, though, so that other in the same position will find it. -
Robin Winslow over 12 yearsNo your answer was right. I have two versions of libjpeg installed -
yum
's one in/usr/lib
, and one I compiled from source in/usr/local/lib
. It obviously didn't like the first. And I wouldn't have known how to make it look for the second properly without your answer. -
SmallClanger over 12 yearsFair enough. I'll wrap it up. Curious as to why it doesn't like your distros version of the library, though. Are they different versions?
-
Robin Winslow over 12 years@SmallClanger let us continue this discussion in chat
-