Où est GD ?

Bonjour,

sur un serveur Debian9, je souhaite installer un php addtionnel pour faire tourner un vieux site en m’inspirant de ce tuto:
https://www.howtoforge.com/tutorial/how … on-debian/

J’ai donc installé php5.6-fpm avec mysql et gd comme ça:

...
cd /usr/local/src/php5.6-build/php-5.6.33
./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-mysql --with-gd

Compilé et installé sans problème. Le site se connecte bien à Mysql après quelques adaptations et GD semble installé:

    root@ns1:/var/www/webologix.com/web# /opt/php-5.6/bin/php -r "echo phpinfo();" | grep with-gd
Configure Command => './configure' '--prefix=/opt/php-5.6' '--with-pdo-pgsql' '--with-zlib-dir' '--with-freetype-dir' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl' '--with-mcrypt' '--with-pgsql' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-pcntl' '--enable-mbregex' '--enable-exif' '--enable-bcmath' '--with-mhash' '--enable-zip' '--with-pcre-regex' '--with-pdo-mysql' '--with-mysqli' '--with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--with-openssl=/opt/openssl' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--with-libdir=/lib/x86_64-linux-gnu' '--enable-ftp' '--with-kerberos' '--with-gettext' '--with-xmlrpc' '--with-xsl' '--enable-opcache' '--enable-fpm' '--with-mysql' '--with-gd'

Mais le vieux site se plaint avec un message du genre:

Creating thumbnail from JPG, 600 x 800…
GD image library not installed!

Après quelques recherches on m’indique que je devrais installer GD et donner le chemin exact à la compile mais je ne sais pas trouver le chemin de GD:

root@ns1:/usr/local/src/php5-build/php-5.3.29# dpkg -l *gd*
...
un  gdb <none> <none> (no description available)
un  ifplugd           <none> <none> (no description available)
un  libgd-tools       <none> <none> (no description available)
ii  libgd3:amd64      2.2.4-2+deb9u amd64         GD Graphics Library
ii  libgdbm3:amd64    1.8.3-14      amd64         GNU dbm database routines (runtime vers
un  myspell-gd        <none> <none> (no description available)
ii  php-gd            1:7.0+49      all           GD module for PHP [default]
ii  php7.0-gd         7.0.30-0+deb9 amd64         GD module for PHP

root@ns1:/usr/local/src/php5-build/php-5.3.29# whereis gd
gd:

root@ns1:/usr/local/src/php5-build/php-5.3.29# whereis php-gd
php-gd:

Bonjour,

Au boulot on a renoncé à ce genre de “bidouille”, le système est pas à jour, les développeurs sont au courant et donc la responsabilité reportée sur eux, bref. Je suppose qu’il s’agit de libgd3 qu’on voit en dépendance du paquet php7.0-gd.

1 J'aime

Et il serait où ce libgd3 ?

root@ns1:/usr/local/src/php5-build/php-5.3.29# whereis libgd3

libgd3:

Désolé, je pensais que tu allais cliquer sur liste des fichiers:

/usr/lib/x86_64-linux-gnu/libgd.so.3
/usr/lib/x86_64-linux-gnu/libgd.so.3.0.4
/usr/share/doc/libgd3/changelog.Debian.gz
/usr/share/doc/libgd3/copyright
/usr/share/lintian/overrides/libgd3

J’ai essayé :
configure: error: Unable to find gd.h anywhere under /usr/lib/x86_64-linux-gnu/libgd.so.3

Je ne comprends pas. Il y a un gd dans le php-5.6 que j’ai téléchargé:

`locate gd.h

/opt/php-5.6/include/php/ext/gd/libgd/gd.h
/opt/php-5.6/include/php/ext/gd/php_gd.h
/opt/php-7.1/include/php/ext/gd/libgd/gd.h
/opt/php-7.1/include/php/ext/gd/php_gd.h
/usr/local/src/php5.6-build/php-5.6.33/ext/gd/libgd/gd.h
/usr/local/src/php5.6-build/php-5.6.33/ext/gd/php_gd.h
/usr/local/src/php7.1-build/php-7.1.14/ext/gd/libgd/gd.h
/usr/local/src/php7.1-build/php-7.1.14/ext/gd/php_gd.h
 
root@ns1:/opt# ll /usr/local/src/php5.6-build/php-5.6.33/ext/gd
total 700
-rw-r--r-- 1 svg  svg   12158 Jan  2  2018 config.m4
-rw-r--r-- 1 svg  svg    3529 Jan  2  2018 config.w32
-rw-r--r-- 1 svg  svg     118 Jan  2  2018 CREDITS
-rw-r--r-- 1 svg  svg  147039 Jan  2  2018 gd.c
-rw-r--r-- 1 svg  svg    4995 Jan  2  2018 gdcache.c
-rw-r--r-- 1 svg  svg    2818 Jan  2  2018 gdcache.h
-rw-r--r-- 1 svg  svg    1102 Jan  2  2018 gd_compat.c
-rw-r--r-- 1 svg  svg     303 Jan  2  2018 gd_compat.h
-rw-r--r-- 1 svg  svg    6432 Jan  2  2018 gd_ctx.c
-rw-r--r-- 1 svg  svg   15665 Jan  2  2018 gd.dsp
-rw-r--r-- 1 root root    304 Oct 14 11:48 gd.lo
-rw-r--r-- 1 root root 465680 Oct 14 11:48 gd.o
drwxr-xr-x 3 svg  svg    4096 Oct 14 11:49 libgd
-rw-r--r-- 1 svg  svg    6268 Jan  2  2018 php_gd.h
drwxr-xr-x 2 svg  svg   20480 Jan  2  2018 tests`

Ce n’est pas un GD complet compilé avec le php ?
Il faut indiquer un GD installé sur le serveur ? Comment le trouver ?

Non, il faut arrêter d’utiliser :

  • PHP 5.x
  • PHP 7.0

L’un n’est plus du tout supporté, et va disparaître du “catalogue”…
L’autre est déclaré “obsolète”, donc à ne plus utiliser non plus.

IL faut vraiment se tourner vers des solutions PHP fiables qui supportent 7.1, voire supérieures, et arrêter les bidouilles qui mettent en danger !

1 J'aime

C’est un site qui tourne sous joomla 1.0. Le migrer vers php7.1 autant ré-écrire le site complètement !

J’ai trouvé un moyen d’installer php5-gd :

root@ns1:~# dpkg -l php5-gd
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version       Architecture  Description
+++-=================-=============-=============-=======================================
ii  php5-gd           5.6.38+dfsg-0 amd64         GD module for php5

Maintenant comment lier ce GD dans le configure avec le --with-gd= ? Autrement dit quel chemin dois je indiquer et comment le trouver ?

Beh, oui, puisque c’est LA solution pour éviter des fuites d’informations, des failles de sécurité…
Au lieu de chercher des moyens bancals pour faire fonctionner un truc qui va poser des problèmes encore plus grave, à terme, qu’une réécriture propre !

:frowning:

1 J'aime

Sérieusement, vous imaginez une agence WEB qui a réalisé des dizaines de site il y a 15 ans pour différents clients. Vous allez réécrire tous les sites parceque vous n’avez pas réussi à lier la librairie GD !
Multipliez celà par le nombre d’agences WEB dans le monde entier qui ont utilisé Joomla dans les années 2000. C’est un budget phénoménal ! Votre réflexion est celle d’un puriste qui ne veut pas se fatiguer et évoque des grands principes qui n’ont rien à voir avec la réalité du terrain.
Des systèmes de l’envergure de Debian doivent respecter la compatibilité rétroactive.
Quant à la sécurité, je n’ai jamais eu de soucis avec la version 1.0 alors que la version 1.5 a été hackée. Il y a sens cesse de nouvelles failles et les nouvelles versions ne sont pas forcément plus fiables que les anciennes. La sécurité est devenu un prétexte vendre de la maintenance.

1 J'aime

Personnellement, pour faire tourner une veille application je mettrai en place le vieux système adéquat., par exemple mettre en place un container lxc avec une debian 7 sur ton serveur en debian 9.

Déjà, pas d’attaque ad hominem : vous ne me connaissez AUCUNEMENT - je vous rappelle clairement la FAQ sur le respect à avoir envers l’autre - et ce quelque soit l’autre et à élever le niveau d’un sujet !

Non, pas quand il s’agit de failles de sécurité, et bien heureusement !

Oui, très sérieusement…

Qui parle de vendre ici, mis à part vous… moi, je parle d’un cheminement d’intégrité et de sérieux quant à l’usage de produit qui ne sont pas obsolètes, d’un point de vue des failles des sécurités - les ajouts de fonctionnalités, personnellement, je m’en fous complètement.
Les recommandations de ne plus du tout utiliser PHP 5.* viennent de l’équipe de développement PHP elle-même…
En terme de sérieux, je sais où je mets le curseur… mais apparemment pas, et surtout pas au même endroit !

Encore mieux… décidément ! :frowning:

Allez, sur ce, je vais arrêter mon intervention ici - et il y a intérêt à ce que la discussion s’améliore d’une manière ou d’une autre…

1 J'aime