Для меня ответом было создать модуль политики, позволяющий запускать 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 self: process execmem» и, возможно, «разрешить httpd_t var_t: file read» в зависимости от настроек
cat wkhtml.audit | audit2allow -M
wkhtmltopdf
semodule -i wkhtmltopdf.pp
(может занять минуту,наберитесь терпения)
Теперь вы сможете загрузить страницу создания PDF без ошибок.Если нет, то мы, вероятно, исправили одну проблему и пришли к другой - возможно, придется повторить шаги.Прибегните к wkhtml.audit2 на этот раз и добавьте его к оригиналу при создании нового модуля (иначе вы будете отменять первое исправление!):
tail -F ... > wkhtml.audit2
, если aud2 пустесть проблема не-selinux.в противном случае:
cat wkhtml.audit wkhtml.audit2 | audit2allow ...