PHP Exec没有运行,但命令工作正常!

时间:2010-09-06 14:35:16

标签: php

我有以下脚本在PHP中上传PDF并调用ImageMagik / Ghostscript转换为指定大小的图像。

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 

但是,这似乎不起作用。日志文件中没有错误,屏幕上没有错误。如果我执行以下操作,

$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 
echo ("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"");

我将输出粘贴到命令提示符下它工作正常(大约需要6-10秒 - 我的max_execution_time是600。

有关为什么这可能不起作用的任何建议?

这是Windows,IIS 7和PHP5。

编辑:我在CentOS和Windows中遇到同样的问题。两者都安装了ImageMagik和Ghostscript。

编辑编辑,下面仍然失败。

$handle = popen("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"","r");
        echo "'$handle'; " . gettype($handle) . "\n";
        $read = fread($handle, 2096);
        echo $read;
        pclose($handle);

3 个答案:

答案 0 :(得分:5)

尝试在命令末尾添加2>& 1。我找到了here

exec('some_command 2>&1', $output);
print_r($output);  // to see the respond to your command

答案 1 :(得分:1)

php.ini中的

也许这个函数exec在

下声明
disable_functions

或者如果你在

中跑步
  

安全模式

当PHP在safe mode中运行时,此功能被禁用。

答案 2 :(得分:1)

你的PATH变量会出现问题吗?

您可能想尝试运行

<?php
echo exec('cmd.exe /c echo %path%');
?>

在命令行和IIS中,并比较它们的输出。