路径存在,权限正常,但仍然出现错误

路径存在,权限正常,但仍然出现错误

我最近使用 stack 提供的说明安装了 pdftk溢出

我安装了它,并运行命令,whereis pdftk结果是

/usr/local/bin/pdftk    /usr/bin/pdftk 

我有 powerpannel 访问权限,我通过它看到 pdftk 实际上存在于该位置

我运行了命令pdftk --version,没问题

但在 php 中我用

<?php
$command = "pdftk --help";
system("PATH=/usr/local/bin/ && $command",$response);
if ($response===FALSE){
   echo 'sorry error occured';
}
else{
    echo $response;
}

?> 

输出是 127,我使用的版本是 1.41,输出“127”是我无法理解的

有人可以指导我吗?

编辑

实际上,我试图通过填写 pdf 表单来生成动态 pdf,我的密码是

 passthru("/usr/local/bin/pdftk hud3.pdf fill_form result.pdf output - flatten");

这没有返回任何内容

尽管语句前的标题会弹出供下载,我按下保存按钮将其保存在本地,但它并没有将其保存在我的硬盘上。尝试调试这种情况,并从 sktack overflow 上已经提出的问题中获得帮助,我想先运行 pdftk。这就是上述 127 情况出现的地方,需要指导

答案1

有几件事。

1) 不要编译自己的 pdftk 并将其粘贴在 /usr/local/bin/ 中。您应该使用软件包。RPMForge 存储库中提供了 pdftk 软件包:

$ yum info pdftk
Loaded plugins: priorities, ps
Available Packages
Name        : pdftk
Arch        : i686
Version     : 1.44
Release     : 2.el6.rf
Size        : 906 k
Repo        : rpmforge
Summary     : PDF Tool Kit
URL         : http://www.pdfhacks.com/pdftk/
License     : GPL
Description : If PDF is electronic paper, then pdftk is an electronic staple-remover,
            : hole-punch, binder, secret-decoder-ring, and X-Ray-glasses. Pdftk is a simple
            : tool for doing everyday things with PDF documents. Keep one in the top drawer
            : of your desktop and use it to:

实际上,如果您的“whereis”返回了您显示的内容,则表明 pdftk 已安装。运行rpm -qa |grep pdftk。如果您没有得到任何结果,请通过 yum 安装它(查看http://wiki.centos.org/AdditionalResources/Repositories/RPMForge以了解如何将 RPMForge 添加到可用的存储库中)。无论如何,删除您编译的那个。

2) 您system在 PHP 中的语句是:“PATH=/usr/local/bin/ && pdftk --help”。这将仅将 PATH 设置为 /usr/local/bin,然后pdftk --help如果在 PATH 中找到它,则执行。返回代码 127 来自 bash,表示它找不到 pdftk(这很奇怪,因为您指定了唯一的 PATH,但这是另一回事)或者“&&”混淆了 PHP 系统函数。无论如何,为什么不直接使用:system("/usr/local/bin/pdftk --help", $response)

答案2

该函数system返回执行命令的状态代码,而不是实际的字符串输出。您可以检查这一页。所以,该值127是执行命令的退出状态。

要获取文本输出,您需要使用shell_exec

相关内容