Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compiling PHP with GD and libjpeg support

Tags:

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 I yum 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

Apologies for cross-posting with Server Fault ( https://serverfault.com/q/304310/92291 ) although I tried to discover what Stack Exchange's position on cross-posting was and it wasn't clear: https://meta.stackexchange.com/q/75326/167958

like image 582
Robin Winslow Avatar asked Aug 23 '11 21:08

Robin Winslow


People also ask

How to enable GD library in PHP 7?

To enable GD-support configure PHP --with-gd[=DIR], where DIR is the GD base install directory. To use the recommended bundled version of the GD library, use the configure option --with-gd. GD library requires libpng and libjpeg to compile.

How can I tell if GD is enabled in PHP?

Is GD turned on? You can check to see if the GD library is enabled by creating a simple phpinfo page on your web server. Open this file in Notepad, or your preferred WYSIWYG editor such as Dreamweaver. phpinfo();


1 Answers

as requested:

Sometimes the configure script is dumb, and you have to do --with-somelib=/usr instead of ...=/usr/lib, because the config test is written as providedpath + '/lib/' rather than just providedpath internally. You may have to dig around inside the configure test suite to find out what's really required

like image 140
Marc B Avatar answered Sep 28 '22 05:09

Marc B