对我来说,答案是创建一个策略模块以允许wkhtmltopdf运行禁用SELinux的:
sudo su -
(以root身份运行,使接下来的步骤简单)
tail -F /var/log/audit.log | grep wkhtml > wkhtml.audit
(离开 此运行,继续下一步)
- 尝试加载网页,试图创建一个pdf,它会失败,但现在我们是 日志记录。
- CTRL + C,从第2步停止进程(如果 着急,可以跳到7,但我们强烈建议你在做 SELinux的例外永久之前使用这些审核步骤!)
cat wkhtml.audit | audit2allow -m wkhtmltopdf > wkhtmltopdf.te
- 检查wkhtmltopdf.te文件到 确保新规则是明智的。你可能会看到 “允许 httpd_t自我:过程execmem”,可能 “允许httpd_t var_t:文件 读” 根据您的设置
cat wkhtml.audit | audit2allow -M wkhtmltopdf
semodule -i wkhtmltopdf.pp
(可能需要一分钟, 耐心等待)
您现在应该能够无误地加载PDF创建页面。如果没有,我们可能会解决一个问题并且到达另一个问题 - 可能需要重复步骤。尾要作出新的模块时wkhtml.audit2这次和猫它与原来的(否则你会被撤消首次定位!):
tail -F ... > wkhtml.audit2
如果audit2是空的,有非selinux问题。否则:
cat wkhtml.audit wkhtml.audit2 | audit2allow ...
你能否提供返回false的确切代码? – Mikhail 2010-11-18 15:47:40
是否'is_file($文件)'的一个不可执行返回true?也许你拼错了名字...... – acm 2010-11-18 15:48:47