IIS 上的 PHP - 执行返回 1

标签 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 时间,向我暗示这是某种文件权限...我现在要检查一下。

最佳答案

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

关于IIS 上的 PHP - 执行返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824859/

相关文章:

php - Symfony2 innerJoin 多次返回列

php - 在 Codeigniter 中调用 bool 上的成员函数 escape_str()

asp.net - 在Windows Server 2008 64位下运行asp.net 1.1应用程序

php - Opencart 版本 1.5.1.3 安装在 IIS 7 上。如何获得 SEO 友好 URL?

powershell - 在 Powershell 中使用自定义用户文件夹创建本地用户

php - 使用带变量的 PDO 更新 MySQL

php - 从 php 设置 cron 作业

function - 如何检查已停止的网站并使用 powershell 函数启动这些网站

c# - 为用户添加角色(Windows 身份验证)

asp.net-mvc - 在 Vista Home Premium 上的 IIS 中托管 ASP.NET MVC 时,css/图像不显示