如何在Ubuntu上为PHP7安装imagemagick?


67

好吧,就在升级我的Ubuntu并因此迁移到php7之后,我似乎无法使用相同的旧命令为php安装imagick扩展

sudo apt-get install php5-imagick

我收到此错误(也尝试php7-imagick)

 Package php5-imagick is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5-imagick' has no installation candidate

我该怎么办?


3
我认为只是sudo apt install php-imagick
Terrance

可以确认,apt-cache search表明php-imagick是php7的软件包。
DopeGhoti

Answers:


113

做就是了:

sudo apt-get install php-imagick

这应该imagick为PHP 7.0 安装。


在我的系统上,它会尝试同时安装php 5.5。
starbeamrainbowlabs

我得到了:警告:以下软件包无法通过身份验证!php-imagick是否安装这些软件包而不进行验证?[y / N] y Err ppa.launchpad.net/ondrej/php-7.0/ubuntu trusty / main php-imagick amd64 3.4.0〜rc6-1 + deb.sury.org〜trusty + 2 404未找到E:失败来获取ppa.launchpad.net/ondrej/php-7.0/ubuntu/pool/main/p/php-imagick / ... 404找不到E:无法获取某些档案,也许运行apt-get update或尝试使用--fix -失踪?
mwm

3
工作,但我必须遵循@alexg建议重新启动服务php7.0-fpm
xl-t

1
您可能需要跑步apt-get updateapt-get upgrade(或apt-get dist-upgrade在跑步之前apt-get install php-imagick
Leo Galleguillos

如果PHP7作为apache模块运行,请不要忘记重新启动apache。
Hokascha

36

原来我不得不重新启动fpm:

sudo service php7.0-fpm reload

我尝试过的事情:

apt install php-imagick没有为我工作。该模块已为PHP CLI加载(我检查了一下,php -m | grep -i imagick但是通过我的nginx Web服务器,它根本没有出现在报告的模块列表中phpinfo()

我什extension=imagick.so/etc/php/7.0/fpm/php.ini手动插入,只是为了确保。

然后,我尝试php-imagick从cpan中清除软件包并进行安装:

sudo apt install libmagickwand-dev imagemagick php-dev
sudo pecl install imagick

而且,没有雪茄。它会通过cli起作用,但不能通过nginx起作用。


死灵法师在这里,对不起,但是在30分钟后,您的台词涌出,提到重新启动php服务使我真的觉得我应该把头撞到砖墙上... :)是的,你猜对了,我忘了那一点,我要去精神为什么它不起作用:D
埃米尔·博科尼

@alexg,因为我们没有编译imagemagick,所以有任何理由使用-dev软件包libmagickwand吗?
inckka

1
@inckka否,您应该对二进制软件包满意。谢谢!
alexg

9

安装了以下软件包:

sudo apt install libmagickwand-dev imagemagick php-dev
sudo pecl install imagick

现在替换:

sudo service php7.0-fpm reload

带有:

sudo service apache2 restart

很棒的作品


它对我
有用

3

现在是2018年,只是想强调一下,在许多情况下,您还希望同时安装php-gd和php-imagick(例如,如果要为wordpress安装此文件)。

sudo apt install php-imagick php-gd 
sudo systemctl restart apache2

如果7.2是您的php版本,则使用php-imagick意味着php7.2-imagick。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.