Php 通过exec()调用的PDFTK会以静默方式失败

Php 通过exec()调用的PDFTK会以静默方式失败,php,pdf,pdf-generation,Php,Pdf,Pdf Generation,我正在使用通过执行调用动态连接pdf文件,如下所示: exec("/path/to/pdftk /path/to/file1.pdf /path/to/file2.pdf cat output path/to/output.pdf", $execoutput); 这一切在linux环境中都能很好地工作,但当在我们的开发环境中本地运行Windows/Uniform Server和OSX/MAMP的混合时,这似乎会悄悄地失败$execoutput是一个空数组 如果发送给exec的命令是复制并粘贴到

我正在使用通过执行调用动态连接pdf文件,如下所示:

exec("/path/to/pdftk /path/to/file1.pdf /path/to/file2.pdf cat output path/to/output.pdf", $execoutput);
这一切在linux环境中都能很好地工作,但当在我们的开发环境中本地运行Windows/Uniform Server和OSX/MAMP的混合时,这似乎会悄悄地失败$execoutput是一个空数组

如果发送给exec的命令是复制并粘贴到Windows或OSX中的命令行,则该命令具有所需的输出,并生成连接的文件。每个开发人员机器都安装了pdftk,可以从命令行演示它的完全功能


这件事现在让我感到困惑。我无法解释为什么会发生这种情况。

我最终弄明白了到底发生了什么。就像noob一样,我假设每台机器都运行最新版本的pdftk。他们不是

上面描述的问题似乎与版本1.43中修复的已知错误有关

在呼叫pdftk之前关闭信号的环境中,清除信号屏蔽作为解决方法。众所周知,这个问题会导致pdftk挂起在某些Python web设置和PHP中

猜猜哪一个是运行>=1.43版本的唯一设置-


将每个开发环境更新到pdftk的最新版本(目前为1.44)解决了这个问题

我最终弄明白了到底发生了什么。就像noob一样,我假设每台机器都运行最新版本的pdftk。他们不是

上面描述的问题似乎与版本1.43中修复的已知错误有关

在呼叫pdftk之前关闭信号的环境中,清除信号屏蔽作为解决方法。众所周知,这个问题会导致pdftk挂起在某些Python web设置和PHP中

猜猜哪一个是运行>=1.43版本的唯一设置-


将每个开发环境更新到pdftk当前1.44的最新版本解决了问题

如果pdftk没有将输出添加到所需文件夹的权限,也会出现这种情况。如果在命令中用“verbose”打印$execoutput,并看到最后一个条目是“Creating Output”,则可以看到这种情况。下一行应该说输出正在执行,但它将到此结束。这让我想起了一段时间,因为如果您直接在命令行上运行,它会起作用

如果pdftk没有将输出添加到所需文件夹的权限,也会发生这种情况。如果在命令中用“verbose”打印$execoutput,并看到最后一个条目是“Creating Output”,则可以看到这种情况。下一行应该说输出正在执行,但它将到此结束。这让我想起了一段时间,因为如果您直接在命令行上运行,它会起作用