對我來說,答案是創建一個策略模塊以允許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