我正在使用 PHP 5.3。
使用 getfacl 文件权限是:
user::rwx
group::r-x
other::r-x
我在使用 PHP 的程序执行函数时也遇到了问题,http://www.php.net/manual/en/ref.exec.php
有问题的程序是 wkhtmltopdf,我在 /usr/bin 目录中有它。
我的 /usr/bin 目录中有具有完全相同权限的转换程序,并且 is_executable 函数返回 true。
我正在使用 PHP 5.3。
使用 getfacl 文件权限是:
user::rwx
group::r-x
other::r-x
我在使用 PHP 的程序执行函数时也遇到了问题,http://www.php.net/manual/en/ref.exec.php
有问题的程序是 wkhtmltopdf,我在 /usr/bin 目录中有它。
我的 /usr/bin 目录中有具有完全相同权限的转换程序,并且 is_executable 函数返回 true。
对我来说,答案是创建一个策略模块以允许 wkhtmltopdf 在不禁用 SELinux 的情况下运行:
sudo su -
(以 root 身份运行以简化后续步骤)tail -F /var/log/audit.log | grep wkhtml > wkhtml.audit
(让这个运行并继续下一步)cat wkhtml.audit | audit2allow -m
wkhtmltopdf > wkhtmltopdf.te
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 ...
经过一番研究,我解决了这个问题。问题是 selinux 政策的阻碍。我使用来自 /usr/bin/convert 的安全上下文并使用 chcon 命令将相同的安全上下文应用于 /usr/bin/wkhtmltopdf