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,
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/ .