superfive33
superfive33

Reputation: 1164

PHP extension dir on Ubuntu

I've just installed the imagick PHP extension following this script: https://gist.github.com/rostockahoi/1d53a2efb8863d72d5f1acb94ae940d1

The install went fine. I found the imagick.so file in /usr/lib/php/20180731 directory. And my php.ini files (fpm and cli) have the extension=imagick.so at the end.

I've restarted PHP and nginx.

Though, PHP cannot find the extension. Look at this CLI test :

$ php -i  
$ PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib/php/20170718/imagick.so (/usr/lib/php/20170718/imagick.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/imagick.so.so (/usr/lib/php/20170718/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

PHP is looking for extensions in this directory /usr/lib/php/20170718/

This dir exists but the imagick.so is not in it. On the other hand, as said before, there is also the directory /usr/lib/php/20180731/ with the imagick.so file in it.

I guess I have to tell PHP to look into the 20180731 dir instead of the 20170718.

How can I do that ?

Or should I copy manually the imagick.so file into 20170718 ? That does not seem optimal...

thanks !

Upvotes: 0

Views: 4331

Answers (2)

superfive33
superfive33

Reputation: 1164

I finally used another single command to install imagick and everything is fine.

sudo apt-get install php-imagick

The imagick.so has been installed in all /usr/lib/php/YYYYMMDD/ directories.

Much simpler !

Upvotes: 0

a1tern4tive
a1tern4tive

Reputation: 422

Maybe you should try this php-config --extension-dir

If php-config doesn't exist, then apt-get install php-config

That command will give exact location of your php extension folder.

Don't forget to change your php.ini in order to use extensions.

Upvotes: 2

Related Questions