Я делаю белый список на уровне MTA (в моем постфиксе случая), а не на amavisd уровне. В моем postfix/main.cf файле я имею:
header_checks=pcre:/etc/postfix/whitelist.pcre
Внутри whitelist.pcre, у меня есть следующий синтаксис:
user@example.com FILTER SMTP:[127.0.0.1]:10025
где SMTP: [127.0.0.1]:10025 транспорт в master.cf, что фильтрованная почта повторно введена в постфиксную систему. Мое обоснование, чтобы сделать, который является, если определенные сообщения ни на что не должны быть проверены, я не хочу, чтобы amavisd коснулся его.
Вопрос в том, какие у вас права доступа к файлам?
Поскольку вы запускаете php как cgi, вероятно, ему понадобится a + x для группы в файлах .php, которых, вероятно, нет в обычном случае. И это не касается отображения .html, который, очевидно, только читается, а не выполняется.
Хотел ответить на Stackoverflow, но ваш вопрос был закрыт слишком быстро, рад, что вы переместили его сюда.
Неизвестный первичный сценарий
сообщается через php-fpm и почти всегда проблема с путем, который вы передаете (от nginx) к php-fpm. Процесс просто не может найти ни одного файла PHP в этом месте. В вашем случае он не может найти файл, потому что процесс php-fpm не имеет разрешений на чтение файла. Правильно, вам не нужны разрешения на выполнение для сценария PHP (если это не точка входа в интерфейс командной строки). Причина этого проста: скрипты PHP не выполняются, они анализируются (читаются).
Обычно рекомендуется использовать одного и того же пользователя / группу для nginx, PHP и php-fpm, если это ваш сервер и никто остальное возится.
Попробуйте изменить права доступа к каталогу, из которого вы обслуживаете файлы, на drwx - x-- х (это 711). Таким образом, веб-сервер сможет выполнить «cd» в этот каталог и прочитать файл php (при условии, что у него есть права на чтение)