You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Centos系统Plesk服务器PHP调用PDFTK报错:command not found求助

解决CentOS Plesk环境下PHP调用PDFTK提示"command not found"的问题

核心原因

你通过Composer安装的是PHP封装的PDFTK库(比如mikehaertl/php-pdftk),但该库依赖系统级的pdftk二进制程序,而Plesk环境下PHP的执行PATH未包含pdftk路径,或者系统本身未安装pdftk。

解决步骤

1. 确认系统是否安装pdftk二进制

通过SSH登录服务器,执行以下命令检查:

which pdftk

如果返回类似/usr/bin/pdftk的路径,说明系统已安装,直接跳到步骤3;如果无返回,说明需要先安装pdftk:

  • CentOS 7:
    sudo yum install pdftk
    
  • CentOS 8/9:官方源已移除原pdftk,需安装pdftk-java版本:
    sudo dnf install epel-release
    sudo dnf install pdftk-java
    

2. 查找pdftk的完整路径

如果系统已安装但which pdftk没返回,或者你是通过Composer局部安装的pdftk二进制,用以下命令全局搜索:

find / -name pdftk 2>/dev/null

常见的路径包括:

  • 系统级:/usr/bin/pdftk、/usr/local/bin/pdftk
  • Composer局部:你的项目根目录/vendor/bin/pdftk

3. 在PHP代码中指定pdftk路径

将找到的完整路径填入command参数:

$pdf = new Pdf('form.pdf', [
    'command' => '/usr/bin/pdftk', // 替换成你找到的实际路径
]);
$result = $pdf->fillForm([
    'name'=>'test name',
    'email' => 'test email',
])
->needAppearances()
->saveAs('form_filled.pdf');

4. 权限检查

确保以下权限正常:

  • pdftk文件本身有可执行权限:chmod +x /path/to/pdftk
  • PHP运行用户(通常是psacln、apache或nginx)有读写form.pdf和生成文件所在目录的权限

内容的提问来源于stack exchange,提问作者alex62400

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:40:09