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
要激活 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 中,需要将 GD 的 DLL 文件 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 library,因此配置中还要加上 --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 |
要激活 xpm 的支持,加上 --with-webp-dir=DIR。 从 PHP 7.4.0 开始,使用 --with-webp 替代。 |
注意: 当把 PHP 和 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 起已被删除。) |
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
#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
sudo apt-get install php5-gd && sudo service apache2 restart
To install under Ubuntu 14.04.
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.
Instructions how to compile bundled version on Linux:
http://stackoverflow.com/questions/35560150/php-gd-bundled-extension-without-recompiling-php-solution
php --version if result is 7.2 version
sudo apt-get install php7.2-gd
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
I also had to install the libgd package in addition to php5-gd:
sudo apt-get install libgd2-xpm-dev*
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).
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
Installation on Pop-os No need for php5 or php7.0 etc:
sudo apt install php-gd
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.
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!
If you have already compiled PHP and want to recompile '--with-gd', don't forget to run 'make clean' first!
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
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)