IIS上的PHP - Exec返回1

时间:2012-05-30 21:59:07

标签: php iis windows-server-2008 exec

我在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时间,向我建议它是某种类型的文件权限......我现在要检查它。

1 个答案:

答案 0 :(得分:1)

事实证明,IIS中有一些权限问题 - 网站运行的用户与CMD的命令不同,这显然导致它无法在IIS下运行,因为它的权限低于CMD。