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 (which was first bundled in PHP 4.3.0), use the configure option --with-gd . GD library requires libpng and libjpeg to compile.

In Windows, you'll include the GD2 DLL php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was removed in PHP 4.3.2. Also note that the preferred truecolor image functions, such as imagecreatetruecolor(), require GD2.

Enhance the capabilities of GD to handle more image formats by specifying the --with-XXXX configure switch to your PHP configure line.

Supported image formats
Image Format Configure Switch
jpeg To enable support for jpeg add --with-jpeg-dir=DIR . Jpeg 6b, 7 or 8 are supported.
png To enable support for png add --with-png-dir=DIR . Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line.
xpm To enable support for xpm add --with-xpm-dir=DIR . If configure is not able to find the required libraries, you may add the path to your X11 libraries.

Note: When compiling PHP with libpng, you must use the same version that was linked with the GD library.

Enhance the capabilities of GD to deal with different fonts by specifying the --with-XXXX configure switch to your PHP configure line.

Supported font libraries
Font library Configure Switch
FreeType 1.x To enable support for FreeType 1.x add --with-ttf[=DIR] .
FreeType 2 To enable support for FreeType 2 add --with-freetype-dir=DIR .
T1lib To enable support for T1lib (Postscript Type 1 fonts) add --with-t1lib[=DIR] .
Native TrueType string function To enable support for native TrueType string function add --enable-gd-native-ttf .

add a note add a note

User Contributed Notes 21 notes

james dot a dot munsch at gmail dot com
3 years ago
sudo apt-get install php5-gd && sudo service apache2 restart

To install under Ubuntu 14.04.
10 months ago
For all who use php 7 and ubuntu

sudo apt-get install php7.0-gd
msc at homofaber dot com
8 years ago
It should be noted that it might be pretty easy to install gd without the need to recompile php, when using debian:

apt-get install php5-gd
6 years ago
People having difficulties setting the --with-libdir option needs to set it like this :


That option works fine. Doing --with-libdir=/usr/lib64 doesn't work because the configure script prepends the --prefix option before the --with-libdir option. So, doing --with-libdir=/usr/lib64 makes the configure script to look for libs in /usr/usr/lib64, which is wrong of course, and not in /usr/lib64.
Joseph Marlin
6 years ago
I also had to install the libgd package in addition to php5-gd:

sudo apt-get install libgd2-xpm-dev*
elassoto at hotmail dot com
7 years ago
If you have already compiled PHP and want to recompile '--with-gd', don't forget to run 'make clean' first!
victornewman at mail dot ru
13 days ago
apt-get isntall php7.0-gd install php7.0-gd on ubuntu but still not enabled so I try ./configure --with-gd=/usr/share/php7.0-gd but it gives -bash: no such a file or directory
I can see it with apt list --installed I can located with whereis php7.0-gd but compile doesn't work.
Problem last 6 hour, and continue
Ayonam Ray
5 months ago
Once you have installed php-gd, don't forget to restart the Apache server using the following command:

    sudo service httpd restart

I struggled needlessly for over an hour trying to figure out why it wouldn't work after I had installed the packages along with all their dependencies.  :-)
Qussayyon Qamaron: Qusai.zf2@gmailcom
6 months ago
#install under Ubuntu 16.04:
    * if you have access to PHP7.1:
        <sudo> apt install php7.1-gd && <sudo> systemctl restart apache2
    * if you have access to PHP7.0:
        <sudo> apt install php7.0-gd && <sudo> systemctl restart apache2

Qussayyon Qamaron: Qusai.zf2gmailcom
amenadiel at gmail dot com
2 years ago
While it is true that you can install GD with apt, that version comes without some of the traits of the internal, compiled version.

I noticed that when I tried to call method `imageantialias`
marioboy1 at hotmail dot com
6 months ago
I was having a gdImageCreateFromJpegCtx undefined symbol....

the solution was found in here:
leyluj21 at gmail dot com
2 years ago
If you are using PHPBREW , the extension is called gd.
So you do.
phpbrew ext install gd

It will compile the extension to the core.
boly38 at gmail dot com
6 years ago
To get GD bundled under Ubuntu, the way to recompile php5 with gd is described here (french)
alejo dot jm at gmail dot com
5 years ago
On Macox lion with mac port just use:
sudo port install php5-gd
octopus at logicaloctopus dot com
6 years ago
I was running PHP on a SUSE box on amazon EC2.
to get gd to work all I had to do was to run:
> yast -i php5_gd

and when that completed I just restarted apache. voila!
MIguel G
4 years ago
If your are suffering with PHP53 on CentOS and GD,
yum install php53-gd
2 years ago
I installes php5-gd by adding

deb sid main

in /etc/apt/sources.list

apt-get install php5-gd

then i have troubles for starting apache2 but google find all troubles ...

cd /etc/apache2
mkdir conf.d
changes in apache2.conf :
  LockFile ${APACHE_LOCK_DIR}/accept.lock
  Mutex file:${APACHE_LOCK_DIR} default
comment lines  NameVirtualHost (with a #)
a2enmod suexec (correction Suexec....)
a2enmod rewrite (correction erreur dav)
a2enmod dav_fs (correction erreur filesystem)
service apache2 start
Mike K
1 year ago
On Ubuntu I was missing the libpng-dev, libjpeg-dev (and in my case) libwebp-dev libraries, all gettable with apt-get.

Also once those libraries are installed, including --with-png-dir --with-jpeg-dir --with-webp-dir, without any values (i.e. =/dir) appeared to be valid ... though admittedly I didn't try without (in case the configure script autodetected them).
mike at clove dot com
9 years ago
jpeg [jpg] file processing doesn't work unless you build php with '--with-jpeg-dir=<path to jpeg library>'.

It still doesn't work unless <path to jpeg library> points to the directory holding the directory holding the library unless libjpeg.<whatever> is in either /usr/lib or /usr/local/lib. For instance, on a mac with libjpeg.a installed via mac ports, you need '/opt/local' rather than '/opt/local/lib'
theonestep4 at gmail dot com
9 months ago
To install on CentOS:

yum install php-gd
To Top