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

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 !

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

我刚刚在这个脚本之后安装了imagick PHP扩展: https://gist.github.com/rostockahoi/1d53a2efb8863d72d5f1acb94ae940d1

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

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

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

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

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

我想我必须告诉PHP查看20180731目录而不是20170718.

我该怎么做?

或者我应该 手动将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 imagick.so has been installed in all /usr/lib/php/YYYYMMDD/ directories.

    Much simpler !

    点赞 评论

相关推荐