O Apache está lendo o seu arquivo e passando-o para o php-fpm. Por não dar acesso ao Apache ao arquivo, ele não tem como passar o arquivo para o interpretador. deve ter acesso de leitura a esses arquivos.
Eu configurei um ambiente Apache + PHP-FPM e defini o seguinte no arquivo do conjunto PHP-FPM:
[www]
user = mary
group = mary
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 8
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 50
Tudo está bem. Eu confirmei no phpinfo que ele está rodando no PHP-FPM, e ele também está rodando como o usuário mary
pelos seguintes códigos:
<?php
echo 'whoami';
?>
Eu configurei 0750 permissões em htdocs
recursivamente (tudo dentro dessa pasta também herda essas permissões):
owner: mary RWX
group: www-data RX
Está funcionando bem. Mas como estou executando como mary
no PHP-FPM, acho que o Apache não precisa ter acesso a htdocs
.
Então, tentei definir 0700 em htdocs
também de maneira recursiva, o que na verdade significa apenas permitir que o proprietário mary
tenha permissões de RWX nessa pasta. Mas então eu tenho permissão negada quando eu acesso as páginas em htdocs
, o que não acontece quando se usa o 0750.
Por que o Apache ainda precisa acessar o htdocs
nessa situação?
Meu palpite é que o PHP pode estar rodando como mary, mas o apache ainda precisa do rx para ler o arquivo php antes de executá-lo.
Mostre-nos como você conectou o php-fpm e o apache, certamente há algumas instruções do Diretório - ou do tipo - no lado do Apache, ou talvez você tenha usado mod_proxy_fcgid?
Se não, o Apache certamente proibirá o acesso antes que qualquer tarefa fastcgi seja testada. Usar o nível de log de depuração no Apache certamente poderia mostrar a diferença entre a solicitação com acesso ao apache permitido no diretório e sem.