Установка

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ модуля GD Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PHP с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ --with-gd[=DIR], Π³Π΄Π΅ DIR β€” дирСктория установки GD. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GD, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΡ†ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ --with-gd. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GD Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ libpng ΠΈ libjpeg для компиляции. Π‘ PHP 7.4.0 опция --with-gd становится --enable-gd (Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ) ΠΈ --with-external-gd (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ внСшнюю Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ libgd, Π° Π½Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ).

Π’ Windows-систСмах Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ модуля GD php_gd.dll Π² Ρ„Π°ΠΉΠ»Π΅ php.ini. Π”ΠΎ PHP 8.0.0 DLL-Ρ„Π°ΠΉΠ» назывался php_gd2.dll.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ GD ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΎ врСмя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PHP Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ --with-XXXX для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с бо́льшим количСством графичСских Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
Π€ΠΎΡ€ΠΌΠ°Ρ‚ изобраТСния ΠžΠΏΡ†ΠΈΡ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
avif ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° avif Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ опция --with-avif. Доступ ΠΊ ΠΎΠΏΡ†ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Π² PHP 8.1.0.
jpeg Π€ΠΎΡ€ΠΌΠ°Ρ‚Π° jpeg β€” --with-jpeg-dir=DIR. Π’ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Jpeg 6b, 7 ΠΈΠ»ΠΈ 8. Π’ PHP 7.4.0 ΠΎΠΏΡ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° --with-jpeg.
png Π€ΠΎΡ€ΠΌΠ°Ρ‚ png β€” --with-png-dir=DIR. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΡƒΠ»ΡŽ libpng трСбуСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ zlib, поэтому ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΎΠΏΡ†ΠΈΡŽ --with-zlib-dir[=DIR]. Π‘ PHP 7.4.0 ΠΎΠΏΡ†ΠΈΠΈ --with-png-dir ΠΈ --with-zlib-dir ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ libpng ΠΈ zlib ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.
xpm Π€ΠΎΡ€ΠΌΠ°Ρ‚ xpm β€” --with-xpm-dir=DIR. Если Π²ΠΎ врСмя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ удаётся Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ X11. Π’ PHP 7.4.0 ΠΎΠΏΡ†ΠΈΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° --with-xpm.
webp Π€ΠΎΡ€ΠΌΠ°Ρ‚ webp β€” --with-webp-dir=DIR.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ компиляции PHP с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ libpng трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Π²Π΅Ρ€ΡΠΈΡŽ libpng, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ собрали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ GD.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ GD ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΎ врСмя конфигурирования PHP Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ --with-XXXX для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с бо́льшим количСством ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠžΠΏΡ†ΠΈΡ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
FreeType 2 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡˆΡ€ΠΈΡ„Ρ‚Π° FreeType 2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ опция --with-freetype-dir=DIR. Π‘ PHP 7.4.0 вмСсто этого ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΡ†ΠΈΡŽ --with-freetype, которая зависит ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pkg-config.
БобствСнная строковая функция ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ TrueType ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ собствСнной строковой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ TrueType Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ опция --enable-gd-native-ttf. (ΠžΠΏΡ†ΠΈΡ Π½Π΅ дСйствуСт, Π΅Ρ‘ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ Π² PHP 7.2.0.)
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 18 notes

up
7
Qussayyon Qamaron: Qusai.zf2@gmailcom ΒΆ
9 years 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
up
5
msc at homofaber dot com ΒΆ
17 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
up
4
Anonymous ΒΆ
9 years ago
For all who use php 7 and ubuntu

sudo apt-get install php7.0-gd
up
3
florian ΒΆ
14 years ago
People having difficulties setting the --with-libdir option needs to set it like this :

--with-libdir=lib64

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.
up
3
james dot a dot munsch at gmail dot com ΒΆ
11 years ago
sudo apt-get install php5-gd && sudo service apache2 restart

To install under Ubuntu 14.04.
up
1
fabrizzio at webtux dot cl ΒΆ
7 years ago
php --version if result is 7.2 version

sudo apt-get install php7.2-gd
up
1
boly38 at gmail dot com ΒΆ
15 years ago
To get GD bundled under Ubuntu, the way to recompile php5 with gd is described here (french) http://doc.ubuntu-fr.org/modules_php#php5-gd
up
1
Joseph Marlin ΒΆ
14 years ago
I also had to install the libgd package in addition to php5-gd:

sudo apt-get install libgd2-xpm-dev*
up
0
abdulbasitsaeed ΒΆ
7 years ago
To install PHP GD extension on an Amazon Linux AMI server, with php 7:

sudo yum install php 70-gd

Do remember to restart Apache after the installation!

sudo service httpd restart
up
0
Mike K ΒΆ
10 years 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).
up
0
leyluj21 at gmail dot com ΒΆ
11 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.
up
-2
tecknovice at gmail dot com ΒΆ
6 years ago
currently is php7.2-gd

sudo apt install php7.2-gd
up
-2
Parmjit Singh ΒΆ
5 years ago
Installation on Pop-os No need for php5 or php7.0 etc:

sudo apt install php-gd
up
-2
oskari at cellarcode dot com ΒΆ
2 years ago
Note if you have php-fpm installed, you have to restart the service for the installation to show up in phpinfo output...

systemctl restart php-fpm (or equivalent)
up
-3
remalsha at gmail dot com ΒΆ
8 years ago
On AntergosOS ( Arch linux ) 

*first run >>php -v   and get current php version. In my case for PHP 7.1.14

      sudo pacman -S php71-gd   

then restart you apache server using,
     
      sudo systemctl restart httpd
up
-4
octopus at logicaloctopus dot com ΒΆ
15 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!
up
-5
elassoto at hotmail dot com ΒΆ
15 years ago
If you have already compiled PHP and want to recompile '--with-gd', don't forget to run 'make clean' first!