我在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");
我在0777中更改了html文件夹的chmod
,但是在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 火狐/ 15.0.1"
相同的脚本在Windows 2003服务器上运行良好。
有没有办法解决这个错误? 谢谢。
答案 0 :(得分:0)
SELinux最有可能阻止它,我曾经遇到过同样的问题。
不要禁用SELinux(这只是一个坏主意/懒人"修复"它),但使用audit2allow
工具而是要弄清楚需要改变哪些背景/ SELinux布尔值。
有关详细信息,请参阅http://wiki.centos.org/HowTos/SELinux#head-faa96b3fdd922004cdb988c1989e56191c257c01。
答案 1 :(得分:0)
在我的情况下,问题是SELinux(正如@Oldskool提到他的回答)。在exec
输出中,只有信息PROT_EXEC|PROT_WRITE failed.
要解决我遇到的问题:
setsebool httpd_execmem on