Я использую Apache httpd на Centos7 (SELinux) и пытаюсь создать выходной фильтр для изменения всех обслуживаемых HTML-страниц. Я просмотрел некоторые учебные пособия о том, как их создавать, но я продолжаю спотыкаться на первом шаге даже до того, как приступаю к программированию.
В настоящее время у меня есть это в моем httpd.conf
ExtFilterDefine portal_header mode=output intype=text/html cmd="/var/www/root/main/portal/portal.php"SetOutputFilter portal_header
Чтобы точно определить мою проблему, я удалил весь настоящий код в файле /var/www/root/main/portal/portal.php на данный момент, и в настоящее время он выглядит так
#!/usr/bin/php
<php?
/* test */
?>
Но когда я знаю, попытаться получить доступ к любому HTML на сервере, я получаю «500 Internal Server Error». После комментирования строки SetOutputFilter в httpd.conf страницы работают так, что фильтр генерирует ошибку.
В моем журнале ошибок это читает
[Fri Feb 10 14:36:55.458174 2017] [ext_filter:error] [pid 171495] (13)Permission denied: [client 10.2.8.109:49278] AH01458: couldn't create child process to run `/var/www/root/main/portal/portal.php'
[Fri Feb 10 14:36:55.458215 2017] [ext_filter:error] [pid 171495] (13)Permission denied: [client 10.2.8.109:49278] AH01467: can't initialise output filter portal_header: aborting
У меня есть хотя бы
но ничего из вышеперечисленного не имеет никакого эффекта. Единственное изменение в том, что когда я намеренно неправильно написал имя файла, вместо этого я получил ошибку «Нет такого файла или каталога».
У кого-нибудь есть идея, что я должен сделать, чтобы эта работа? На данный момент я был бы рад видеть, что скрипт вообще ничего не делает, если он просто не ломается, и только потом добавляет в него некоторые функциональные возможности.
ОБНОВЛЕНИЕ: я смог определить проблему с политиками SELinux, так как после их отключения (setenforce 0) ошибка исчезла. Поэтому в настоящее время я пытаюсь понять, как я должен изменить политику.
Задача ещё не решена.
Других решений пока нет …