3

我在 Windows Server 2008 机器上安装了 ImageMagick、IIS 6、Ghostscript 和 PHP 5.3.1,并试图将 PDF 文件转换为 JPG 缩略图。

但是,它似乎不起作用——调用exec()产生的返回码为 1(据我了解,这意味着发生了一些一般性错误)。输出变量只是一个空数组。$output只是一个空数组。如果我使用system()而不是exec()

从命令行运行命令似乎可以工作,所以我最初的猜测是一个简单的权限问题......该目录是 PHP 可写的,因为将 PDF 上传到目录的脚本有效,并且我已经验证每个人都有权限也写入目录。

此外,安全模式已关闭。

关于问题可能是什么的任何想法?

相关代码:

<?php
    $output = array();
    $ret = 0;
    echo exec('convert D:\content\myfile.pdf[0] D:\content\myfile_thumb_1.jpg', $output, $ret);
    var_dump($ret);
?>

注意:虽然我会在 Mac OS X 上的 Apache 上对此进行测试,但我似乎无法正确安装 ImageMagick 或 Ghostscript。

我还确保了以下几点:

  • 文件名的正确大小写(无论如何都是小写)
  • 除了简单的 convert.exe 之外,还使用 ​​convert.exe 的完整路径

更新:

检查任务管理器后,convert.exe 正在运行并占用 CPU 时间,提示我这是某种文件权限……我现在要检查一下。

4

1 回答 1

1

事实证明,IIS 中的某些内容存在权限问题——该网站在与 CMD 的命令不同的用户下运行,这显然导致它无法在 IIS 下运行,因为它的权限比 CMD 的权限小。

于 2012-06-06T23:17:52.207 回答