2019-07-19 15:11
浏览 321


I've just installed the imagick PHP extension following this script:

The install went fine. I found the file in /usr/lib/php/20180731 directory. And my php.ini files (fpm and cli) have the 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 '' (tried: /usr/lib/php/20170718/ (/usr/lib/php/20170718/ cannot open shared object file: No such file or directory), /usr/lib/php/20170718/ (/usr/lib/php/20170718/ 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 is not in it. On the other hand, as said before, there is also the directory /usr/lib/php/20180731/ with the 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 file into 20170718 ? That does not seem optimal...

thanks !

图片转代码服务由CSDN问答提供 功能建议

我刚刚在这个脚本之后安装了imagick PHP扩展:

安装顺利。 我在/ usr / lib / php / 20180731目录中找到了imagick.so文件。 我的php.ini文件(fpm和cli)最后都有扩展名=。

我重启了PHP和nginx。 < p>虽然,PHP无法找到扩展名。 看看这个CLI测试:

  $ php -i 
 $ PHP警告:PHP启动:无法加载动态库''(试过:/ usr / lib  /php/20170718/无法打开共享对象文件:没有这样的文件或目录),/ usr / lib / php / 170718 /  /usr/lib/php/20170718/无法打开共享对象文件:没有这样的文件或目录))在第0行的未知中

PHP正在寻找此目录中的扩展 / usr / lib / php / 20170718 /

这个目录存在,但是imagick.so不在其中。 另一方面,如前所述,还有目录 / usr / lib / php / 20180731 / ,其中包含imagick.so文件。



或者我应该 手动将imagick.so文件复制到20170718? 这似乎不是最佳的......


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douzhixun8393
    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.

    点赞 评论
  • dongmei2351
    dongmei2351 2019-07-20 13:31

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

    sudo apt-get install php-imagick

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

    Much simpler !

    点赞 评论