21

I am using ubuntu 11.04 and when I am opening terminal and typing php -a it is showing some error like this

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

I think there is some problem with GD library.Is there any option to solve it?

4 Answers 4

36

Yeah. Just try:

sudo apt-get install php5-gd

You probably will have to remove the offending line in your php.ini, either in php.ini or in /etc/php5/conf.d/gd.ini maybe.

Sign up to request clarification or add additional context in comments.

2 Comments

Alternate solution, if you don't need the php5-gd package, is to purge it: sudo apt-get purge php5-gd
If you are using php 7.3 in Ubuntu 18.04 us sudo apt install php7.3-gd
2

Probably something like

sudo apt-get install php-gd

should do it, if not try

apt-cache search php | grep gd

Comments

1

For me the solution was:

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

Which returned the location of all the libraries that my php5 install was having trouble finding:

/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

I was a little worried that these look they might be old versions, but I used their paths anyway. Stefgosselin identified the location of the ini files, /etc/php5/conf.d/. I modified them all. The command below will modify all of the *.ini files there, so make sure all of yours really need modifying. Obviously you need to use the target path you discovered with the locate command in place of mine, /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

Before finding this solution I tried several apt-get purge and apt-get reinstall commands without luck. I'm not sure, but my problem may have originated with installation of zend from source or phpmyadmin with aptitude. It never caused any php errors, just the annoying warning you mentioned. Finally php5 can launch without errors:

php5 --version

gives ...

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

4 Comments

Although your solution does do the trick, you gave yourself a lot of trouble. Simply removing the offending line in gd.ini and reinstalling the latest gd binary would of also done the trick. But hey, I +1'ed your solution for the sed usage! Happy coding buddy, thanks for contributing.
@stefgosselin, I may have tried that before the more complicated solution, but will try again to make sure. Thanks. Thanks for upvote too.
On little addition, if you're using php5-fpm you'll need to restart it, e.g. sudo service php5-fpm restart
Ok this solution does what it says but not necessarily solves the problem. I had the same scenario as yours but the command you provide effectively changes the affected files indisde of /etc/php5/conf.d but it made some other things stop working. Maybe I missed out something?
1

sudo apt install php-gd will work but the thing is it will download the plugin for the latest PHP version.

If your PHP version is not the latest, then you can add version in it:

# PHP 7.1
sudo apt install php7.1-gd

# PHP 7.2:
sudo apt install php7.2-gd

# PHP 7.3
sudo apt install php7.3-gd

# PHP 7.4 (latest)
sudo apt install php-gd

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.