网络服务器一直喊着 pdftk 未找到

网络服务器一直喊着 pdftk 未找到

原始错误信息是

sh: 1: pdftk: 未找到

这显然导致。这不是我第一次遇到这个问题,而且我确信这不是pdftk或php-pdftk的问题。

这是背景故事,我在 linuxmint 上使用 php 5.4 开发 Web 应用程序。然后该项目停止了。我已经有一个该项目的存储库,所以我删除了所有文件。几个月后,我决定在 php 7 上编写一个全新的项目,准确地说是 7.3。

突然我不得不制作新的补丁。然后,这是我获取 pdftk 的方式。在终端上,我可以使用 pdftk cli,例如打印当前版本。但是,Web 服务器仍然显示相同的错误。

评论中澄清

我认为这与权限有关,二进制文件已经安装。我可以通过终端使用它。

答案1

如果pdftk可以从用户登录(如您所说的在终端上)使用,那么有几个选项:

权限:检查文件是否具有正确的权限,让每个人都能执行。

环境:当您pdftk在命令行中键入时,解释器(Shell、Bash 等)知道在各个位置查找二进制文件。例如,它将在中查找/usr/bin。查找的位置在环境变量中设置PATH(请参阅echo $PATH)。但是,那是在您的用户配置中。在 Apache Web 服务器下运行的 PHP 可能没有此环境。因此,在您的代码中,最好调用完整路径。路径是什么?您可以通过which pdftk在终端中运行来查找。在 PHP 代码中提供完整路径将避免此PATH问题。

与权限相关的其他可能相关的帖子:

答案2

我获取 pdftk 的方式是通过 snap,遗憾的是它有一些限制。即使在提到的文章中也建议通过 snap 安装,但遗憾的是它也会出现这个问题。

现在 pdftk 可以在 mint 上使用,然后您可以通过 snap 卸载 pdftk,然后直接通过 apt 安装 pdftk。

apt install pdftk

相关内容