我有私人服务器CentOS 6,我已经安装了pdftk
程序来生成pdf文件。当我连接SSH客户端时,我可以成功运行pdftk程序。但我无法php
使用exec()
功能。
我有一个非常简单的php文件,如下所示。这只是为了测试pdftk是否正常工作。当我使用xampp在我的localhost上运行此文件时,它会生成该文件,但是当我尝试使用我的私有服务器时,不会出错并且不会生成文件。我不是专家,期待你的任何帮助。提前谢谢。
PHP代码:
<?php
exec("pdftk form.pdf output private.pdf");
错误如下所示:
Array ( [0] => Error: Failed to open output file:
[1] => collated.pdf [2] => No output created.)
注意:我在putty ssh客户端上尝试过这个代码,效果很好。
答案 0 :(得分:1)
错误是:数组([0] =&gt;错误:无法打开输出文件:[1] =&gt; collated.pdf [2] =&gt;没有创建输出。在putty上的相同exec代码工作正常
您可以发现的差异在于运行代码的用户。如果是PuTTY,则从Web访问时,您将以与运行脚本的用户不同的用户身份登录。由于您要创建新文件,因此用户需要对目录的写访问权限。这通常是一个坏主意,允许将该用户写入您的脚本所在的目录,因此最好创建一个新目录(例如export
),其中apache用户将有权写入:
mkdir export
chown apache:apache export
chmod 755 export
并修改您的脚本以将文件写入该目录:
exec("pdftk form.pdf output export/private.pdf");