Erreur de bibliothèque php GD dans Ubuntu

J’utilise Ubuntu 11.04 et quand j’ouvre un terminal et que je tape php -a il affiche une erreur comme celle-ci

 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/gd.so' - /usr/lib/php5/20090626/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0 

Je pense qu’il y a un problème avec la bibliothèque GD. Y a-t-il une option pour le résoudre?

Ouais. Essayez simplement:

 sudo apt-get install php5-gd 

Vous devrez probablement supprimer la ligne incriminée dans votre fichier php.ini, soit dans php.ini ou dans /etc/php5/conf.d/gd.ini peut-être.

Probablement quelque chose comme

 sudo apt-get install php-gd 

devrait le faire, sinon essayer

 apt-cache search php | grep gd 

Pour moi, la solution était:

 locate --regex /mcrypt[.]so\$ /gd[.]so\$ /suhosin[.]so\$ /pdo_mysql.so\$ /pdo[.]so /mysqli[.]so\$ '/php5/.*/mysql[.]so$' 

Qui a renvoyé l’emplacement de toutes les bibliothèques que mon installation php5 avait du mal à trouver:

 /usr/lib/php5/20090626+lfs/gd.so /usr/lib/php5/20090626+lfs/mcrypt.so /usr/lib/php5/20090626+lfs/mysql.so /usr/lib/php5/20090626+lfs/mysqli.so /usr/lib/php5/20090626+lfs/pdo.so /usr/lib/php5/20090626+lfs/pdo_mysql.so 

J’étais un peu inquiet que cela ressemble à d’anciennes versions, mais j’ai quand même utilisé leurs chemins. Stefgosselin a identifié l’emplacement des fichiers ini, /etc/php5/conf.d/ . Je les ai tous modifiés. La commande ci-dessous modifiera tous les fichiers *.ini , alors assurez-vous que tous vos fichiers ont vraiment besoin d’être modifiés. De toute évidence, vous devez utiliser le chemin cible que vous avez découvert avec la commande de localisation à la place du mien, /usr/lib/php5/20090626+lfs/ :

  sudo sed -ri -e "s|^(extension=)(\w{2,10}[.]so)$|\1/usr/lib/php5/20090626+lfs/\2|g" /etc/php5/conf.d/*.ini 

Avant de trouver cette solution, j’ai essayé plusieurs commandes de apt-get reinstall apt-get purge et apt-get reinstall sans chance. Je ne suis pas sûr, mais mon problème est peut-être dû à l’installation de zend à partir de source ou à phpmyadmin avec aptitude. Il n’a jamais causé d’erreurs de php, juste l’avertissement ennuyeux que vous avez mentionné. Enfin, php5 peut se lancer sans erreurs:

php5 --version

donne …

 PHP 5.3.5-1ubuntu7.2 with Suhosin-Patch (cli) (built: May 2 2011 23:18:30) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH 

Personnellement, je pense qu’il est beaucoup plus logique d’utiliser la bibliothèque wrapper Imagine (disponible sur le site https://packagist.org/packages/imagine/imagine ou vous pouvez le télécharger directement depuis Github https://github.com/avalanche123 / Imagine / tree / develop ), autre que l’appel direct de l’API GD. C’est beaucoup plus convivial, plus facile à apprendre et un gain de temps considérable pour moi.

Comme il s’agit d’une bibliothèque d’encapsuleur, vous devrez installer l’une des bibliothèques suivantes pour l’utiliser,

  • GD2
  • Imagick
  • Gmagick

J’utilise Imagick, pour l’installer, lancez sudo apt-get install php5-imagick

J’ai écrit un guide pour configurer de nombreuses bibliothèques utiles sur Ubuntu pour le développement PHP, vous pourriez le trouver utile http://www.shenghua.co.uk/ubuntu-zero-to-hero-guide-best-for-php-developers/ .