php exec命令未运行?
我有一个PHP文件,为一个名为PDFTK的工具执行shell命令 当我直接从命令行运行该命令时,该命令工作正常,但通过PHP脚本,它本身不会也不会抛出错误 我正在运行的命令是:php exec命令未运行?,php,command-line-arguments,windows-server-2008-r2,pdftk,Php,Command Line Arguments,Windows Server 2008 R2,Pdftk,我有一个PHP文件,为一个名为PDFTK的工具执行shell命令 当我直接从命令行运行该命令时,该命令工作正常,但通过PHP脚本,它本身不会也不会抛出错误 我正在运行的命令是: $WshShell = new COM("WScript.Shell"); $WshShell->Exec("pdftk Template.pdf fill_form 1406822788.fdf output test2.pdf"); 这将获取.fdf数据并将其放入模板pdf中,然后创建test2.pdf的ou
$WshShell = new COM("WScript.Shell");
$WshShell->Exec("pdftk Template.pdf fill_form 1406822788.fdf output test2.pdf");
这将获取.fdf数据并将其放入模板pdf中,然后创建test2.pdf的outout
同样,当直接通过命令行运行时,效果很好
有什么想法可以让它运行吗?可能有很多事情,但首先要做的是指定pdftk二进制文件的完整路径。PHP环境(例如apache、nginx等)可能与您的用户帐户没有相同的路径变量。请检查Exec方法的返回,或者尝试:
exec("pdftk Template.pdf fill_form 1406822788.fdf output test2.pdf");
这可能是因为您的Web服务器进程用户没有这样做的权限。或
Add 2>&1 to the end of your command to redirect errors from stderr to stdout.
请参阅以获取进一步的说明脚本是否具有运行命令的权限?是否打开错误报告?检查以确保未禁用
exec()
。已打开错误报告且未禁用exec。找到应使用的路径的最佳方法是什么?您在哪里安装了pdftk?在命令行上,运行“哪个pdftk?”“或者‘pdftk在哪里’C:\pdftk\bin\pdftk.exe
你能投票支持这个吗。。。?我不确定是谁/什么原因导致了Voting,因此,您需要指定完整路径,它可能需要双反斜杠-如C:\\PDFtk\\bin\\PDFtk.exe-请先尝试不使用双反斜杠,如果仍然不起作用,然后尝试使用双反斜杠如何查看exec返回的内容?使用现有代码:var_dump($WshShell->exec(“pdftk Template.pdf fill#u form 1406822788.fdf output test2.pdf”);在命令行中运行时的输出会创建所需的pdf。当我从php运行它时,没有错误,也没有pdfobject(variant)#2(0){}
但您应该简单地尝试一下:var_dump(exec(“pdftk Template.pdf fill#form 1406822788.fdf output test2.pdf”);