首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP Exec没有运行,但命令运行正常!

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

Stack Overflow用户
提问于 2010-09-06 22:35:16
回答 3查看 18K关注 0票数 2

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

代码语言:javascript
运行
复制
$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 

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

代码语言:javascript
运行
复制
$tmp = exec("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"", $results); 
echo ("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"");

我将输出粘贴到命令提示符中,它工作得很好(大约需要6-10秒-我的max_execution_time是600。

对于为什么这可能不起作用,有什么建议吗?

这是WindowsIIS7和PHP5。

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

编辑编辑下面仍然失败。

代码语言:javascript
运行
复制
$handle = popen("convert \"{$strPDF}\" -resize 500X500 \"{$strOut}\"","r");
        echo "'$handle'; " . gettype($handle) . "\n";
        $read = fread($handle, 2096);
        echo $read;
        pclose($handle);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-06 22:40:56

在php.ini中,这个函数exec在下面声明

代码语言:javascript
运行
复制
disable_functions

或者如果你在

安全模式

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

票数 3
EN

Stack Overflow用户

发布于 2014-12-29 05:27:04

尝试将2>&1添加到命令的末尾。我发现它是here

代码语言:javascript
运行
复制
exec('some_command 2>&1', $output);
print_r($output);  // to see the respond to your command
票数 9
EN

Stack Overflow用户

发布于 2010-09-06 23:47:56

这会不会是PATH变量的问题?

您可能希望尝试运行

代码语言:javascript
运行
复制
<?php
echo exec('cmd.exe /c echo %path%');
?>

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3652263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档