donglan8256 2019-07-19 15:11
浏览 516
已采纳

Ubuntu上的PHP扩展目录

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 !

  • 写回答

2条回答 默认 最新

  • douzhixun8393 2019-07-19 15:31
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?