3

我在我的 Centos 服务器上安装了 wkhtmltopdf。在 shell 中一切正常。如果我尝试在 shell 中发送命令:

/usr/local/bin/wkhtmltopdf http://www.google.it /var/www/html/test_report.pdf

或者干脆

wkhtmltopdf ... /var/www/html/test_report.pdf

一切顺利,但如果我在 php 脚本中使用 exec 命令,则同样无法正常工作:

exec("/usr/local/bin/wkhtmltopdf http://www.google.it /var/www/html/test_report.pdf");

我更改了chmod0777 中的 html 文件夹,但在 access.log 中我有以下响应:

[08/Oct/2012:17:11:18 +0200] "GET test_report.php HTTP/1.1" 200 311 "-" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1 "

相同的脚本在 Windows 2003 服务器上运行良好。

有没有办法解决这个错误?谢谢你。

4

2 回答 2

0

SELinux 很可能会阻止它,我曾经遇到过同样的问题。

不要禁用 SELinux(这只是一个坏主意/懒人“修复”它的方法),而是使用该audit2allow工具来确定需要更改哪些上下文/SELinux 布尔值。

详情请参阅http://wiki.centos.org/HowTos/SELinux#head-faa96b3fdd922004cdb988c1989e56191c257c01

于 2012-10-08T15:34:37.207 回答
0

就我而言,问题是 SELinux(正如@Oldskool 提到的他的回答)。在exec输出中只有信息PROT_EXEC|PROT_WRITE failed.

为了解决我跑的问题:

setsebool httpd_execmem on

我在groups.google.com找到了这个解决方案

于 2015-10-15T11:50:17.727 回答