【问题标题】:imagemagick install problems in centoscentos中的imagemagick安装问题
【发布时间】:2015-11-03 04:21:23
【问题描述】:

我正在尝试通过以下 url 在我的服务器(centos 7.1 最小)上安装 imagemagick: imagemagick installation steps

在步骤 1 中出现此错误:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.de.leaseweb.net
 * epel: mirrors.n-ix.net
 * extras: mirror.de.leaseweb.net
 * remi: remi.schlundtech.de
 * remi-php55: remi.schlundtech.de
 * remi-php56: remi.schlundtech.de
 * remi-safe: remi.schlundtech.de
 * remi-test: remi.schlundtech.de
 * updates: mirror.de.leaseweb.net
Package gcc-4.8.3-9.el7.x86_64 already installed and latest version
No package php-devel available.
No package php-pear available.
Nothing to do

【问题讨论】:

  • 对不起我的英语不好:D

标签: centos imagemagick


【解决方案1】:

因为这个项目在很多网站上都被质疑过,所以我把安装过程完整的解释一下... 这个过程在 centos 6.5 和 php56 和 imagick-3.4.3(ImageMagick-7) 上测试过
更改任何需要更改的部分的安装过程,例如您的 php 版本或文件夹。

您可以在ImageMagick versions 中找到“ImageMagick”的最新版本 ;使用持续稳定的版本。

如果您已经多次安装了“ImageMagick”,请先将它们全部删除,然后找到“ImageMagick”和“imagick”文件夹和文件,然后将它们全部清理干净,然后按照此过程继续安装过程。

# yum remove ImageMagick ImageMagick-devel

使用以下命令查找文件或文件夹:

# find / -name 'ImageMagick*'
# find / -name 'imagick*

查找并删除所有显示的文件和文件夹

开始安装php-pear:
确保您已安装 php-pear,稍后将使用它来安装 Imagick PHP 模块。 如果没有 pear,可以使用 Yum 安装:

# yum install php-pear

如果您看到以下错误:
没有包 php-pear 可用。
错误:无事可做
解决办法:

# cd /etc/

然后打开 yum.conf

# nano /etc/yum.conf

然后找到并删除php*并保存文件

然后输入:

# yum install --enablerepo remi php-pear php-devel

测试成功安装: 类型:

# yum info php-pear

结果是这样的:

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * epel: yum.ds.stackexchange.com
stack-local-prod                                                                                                                                                                                                   | 2.9 kB     00:00
Available Packages
Name        : php-pear
Arch        : noarch
Epoch       : 1
Version     : 1.9.4
Release     : 4.el6
Size        : 393 k
Repo        : base
Summary     : PHP Extension and Application Repository framework
URL         : http://pear.php.net/package/PEAR
License     : BSD and PHP and LGPLv2+
Description : PEAR is a framework and distribution system for reusable PHP
            : components.  This package contains the basic PEAR components.

开始安装 ImageMagick:

# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick

重要提示:将“ImageMagick”文件夹从“/usr/include”复制到“/usr/local/include”,以便 ImageMagick 找到“MagickWand.h”

# cd /usr/include
# cp ImageMagick /usr/local/include

在下面几行之前不要忘记:转到“php.ini”找到“disable_functions”并清理“proc_open,popen,proc_close”,因为make imagick需要这些功能,完成安装后您可以将此功能添加到“disable_functions” " 在 "php.ini" 文件上。

继续:

# cd /usr/local/src 
# wget http://pecl.php.net/get/imagick-3.4.3.tgz
# tar xzfv imagick-3.4.3.tgz
# cd imagick-3.4.3
# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
# make
# make install

复制安装共享扩展:“/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/”这是扩展目录
将“imagick.so”从“/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/”复制到“/usr/local/php56/lib/php/extensions/”扩展目录.

# cd /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/
# cp imagick.so /usr/local/php56/lib/php/extensions/

然后,编辑“php.ini”,找到“Dynamic Extensions”在一个空行中添加extension=imagick.so,别忘了你的服务器上有2个或多个“php.ini”,你可以找到所有其中:

# find / -name 'php.ini'

结果可能是这样的

/etc/php.ini
/usr/local/php56/lib/php.ini

在所有阶段都使用这个文件:

/usr/local/php56/lib/php.ini

测试成功安装:

# php -m | grep imagick

结果应该是:imagick

查找所有 php 函数和扩展使用:

# php -m

现在您可以在显示列表中找到“imagick”
不要忘记: 编辑“php.ini”,找到“disable_functions”,将“proc_open,popen,proc_close”添加到disable_functions中以保证服务器安全!

现在重启你的服务器

# reboot

要在 php 上测试 imagick 安装,请在 php 文件中使用此代码:

if(extension_loaded('imagick')) {
  $imagick = new Imagick();
  print_r($imagick->queryFormats());
}
else {
  echo 'imagick is not available.';
}

或者使用

echo phpinfo();

【讨论】:

  • 可悲的是,在 cPanel 托管服务器上,核心 PHP 包的包名似乎不是标准的,因此与 remi 存储库的包名不匹配。尝试yum install --enablerepo remi php-pear php-devel 会得到file /usr/bin/php from install of php-cli-5.4.45-16.el7.remi.x86_64 conflicts with file from package ea-php-cli-0.2.0-7.7.1.cpanel.x86_64。我不知道用 remi 中的 php-cli 替换 ea-php-cli 的安全方法,当然尝试删除 ea-php-cli 会导致删除 50 多个相关的 php 包。
【解决方案2】:

根据您粘贴中的存储库列表,您正在使用 PHP 的“remi”存储库。所以,只是

yum install php-pecl-imagick

当存在 RPM 包时,无需从源代码构建。

但是由于 yum 甚至没有找到 php-devel,检查 yum 配置的“exclude”行,看起来像一个 cpanel 主机,它自己替换了很多基础包。

【讨论】:

  • 鉴于此错误:加载的插件:fastestmirror 从缓存的主机文件加载镜像速度 * base: centosmirror.netcup.net * epel: mirrors.n-ix.net * extras: centosmirror.netcup.net * remi : mirror5.layerjet.com * remi-php55: mirror5.layerjet.com * remi-php56: mirror5.layerjet.com * remi-safe: mirror5.layerjet.com * remi-test: mirror5.layerjet.com * 更新: centosmirror .netcup.net 没有可用的软件包 php-pecl-imagick。错误:无事可做
  • 如我所说,检查 yum 配置中的排除。
  • grep -r exclude /etc/yum*
  • 这个结果对我来说 /etc/yum/pluginconf.d/fastestmirror.conf:#exclude=.gov, facebook /etc/yum.conf:exclude=apache* httpd* mod_* mysql* MySQL * mariadb* da_* ftp exim* sendmail* php* bind-chroot*
  • 我认为必须从此文件中删除 apache* httpd* 。好吗?
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 2011-07-24
  • 2010-10-25
  • 2012-05-12
  • 1970-01-01
相关资源
最近更新 更多