【问题标题】:PHMagick not working after code moved to a different server代码移动到其他服务器后,PHMagick 无法正常工作
【发布时间】:2012-11-26 00:14:48
【问题描述】:

我为我的一个客户构建了一个 pdf 生成器脚本,一切正常。然后他决定让我从 PDF 创建一个缩略图以显示在另一个页面上,所以我遇到了 PHMagick,这似乎起到了作用。

以下代码工作在我的构建服务器(iPage -- 我认为它是 debian?)上,但现在我已将其移至他的 VPS,它不再工作。 FPDF 生成 pdf 没有问题,因此不是权限问题。

代码:

require("phmagick/phmagick.php");
$pdf->Output("pdf.pdf");

$p = new phmagick('','pdf.png');
$p->debug = true;
$p->resize(800);

$p->acquireFrame("pdf.pdf");

此代码返回以下错误:

执行“转换“pdf.pdf”[0]“pdf.png”时出错
返回码:127
命令输出:“sh: convert: command not found”

自从我将代码从原始服务器移出后,我没有更改任何代码,我只是复制了整个站点,那么为什么 PHMagick 现在不能工作?如何让它识别插件文件夹中的 convert.php?

请注意:我只使用 PHMagick,而不是整个 ImageMagick。

【问题讨论】:

    标签: php imagemagick imagick


    【解决方案1】:

    PHMagic 似乎在后台使用命令行convert 命令。

    很可能该命令根本没有安装在服务器上。

    【讨论】:

    • 那我该如何安装呢?我在 iPage 服务器上所要做的只是需要 phmagick.php 文件,一切都会立即运行。
    • 也许你的系统上已经安装了 imagemagick 包?无论如何:首先测试 if 是否安装(在命令行上)。如果不是你必须安装它,请查找 imagemagick 包。这就是提供convert 命令的原因。注意:由于您使用软件管理系统仅安装了一个 php 文件而不是软件包,因此不会为您解决依赖关系。
    • 有没有办法通过 PHP 而不是命令行运行转换命令?
    • @David:对不起,也许我不明白这个问题。显然答案是肯定的,因为这正是您的 PHMagick 解决方案在后台所做的。您可以自己编写一个小脚本执行system()exec() 并以这种方式运行convert
    【解决方案2】:

    PHMagic 在后台使用命令行convert,composite 等...命令。 只有在您的服务器中安装了 ImageMagick 时,这些命令才可用。

    在你之前的服务器上一定已经安装了 ImageMagick。

    Ipage 有时不会在他们的 VPS 服务器上预安装 ImageMagick。而且您可能无法自己安装它(通过终端登录使用...yum install ImageMagick )因为您将被提示输入root密码。

    为了确保 ImageMagick 二进制文件安装在您的服务器中,在您的情况下是 convert 命令,
    在 ssh 终端中输入此命令...
    whereis convert

    如果没有显示转换命令的路径,则表示您需要安装ImageMagick。

    您必须打开支持票并要求他们为您安装它

    【讨论】:

      【解决方案3】:

      正如 arkascha 所说,您需要安装 imagemagick。试试yum install imagemagick,因为你运行的是 CentOS。

      编辑:可能是不同的大小写:ImageMagick

      【讨论】:

        猜你喜欢
        • 2014-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-30
        • 2022-01-13
        • 1970-01-01
        • 2011-11-06
        相关资源
        最近更新 更多