Apache 2.4 et php-fpm ne déclenchent pas une authentification HTTP de base pour les pages PHP

Je suis sûr que c’est une question qui a été posée quelque part, si excusez-moi, mais le fait de ne pas avoir fouillé autour de moi ne m’a rien donné de concret.

Voici mon scénario:

Je protège un répertoire Web avec une authentification HTTP Apache. J’ai donc mon fichier .htaccess dans le dossier racine et mon fichier httpd.conf est configuré pour remplacer tous les fichiers afin de prendre en compte le fichier .htaccess. Le contenu de mon fichier .htaccess est le suivant:

AuthType Basic

AuthName “test”

AuthUserFile /etc/httpd/.test_pass

Exiger un utilisateur valide

.test_pass a été configuré avec htpasswd avec succès. Lorsque j’accède au dossier racine Web via le navigateur ou tout fichier HTML, j’obtiens correctement l’authentification. L’utilisation du mot de passe me donne l’access attendu.

Mais lorsque j’accède à une page PHP, la fenêtre pop-up d’authentification n’apparaît pas et la page php s’affiche.

Voici ma configuration:

  • Version Apache: 2.4.6
  • php-fpm: PHP 5.4.16 (fpm-fcgi) avec Zend Engine v2.4.0
  • Utiliser proxypass à partir de proxy_fcgi_module (partagé) pour la communication entre apache 2.4 et php-fpm
  • Aussi, je n’utilise pas de connexions socket car apache 2.4.6 ne le supporte pas
  • Mon paramètre proxypass est le suivant et fonctionne assez bien: ProxyPassMatch ^ / (. .Php (/. )?) $ Fcgi: //127.0.0.1: 9000 / var / www / html / $ 1

Je dois pouvoir définir une authentification par nom d’utilisateur / mot de passe via l’authentification de base apache, qui protège tous les fichiers, y compris les fichiers php du répertoire.

J’utilise des logiciels opensource; la modification des codes logiciels est donc le dernier recours.

Existe-t-il une solution / solution pour php-fpm et mod_proxy_fcgi?

Merci

Après des heures de recherche, j’ai compris que la raison en est que la directive ProxyPassMatch est la première directive à être traitée, ce qui amène apache à ignorer les autres directives pour les extensions .php.

Pour pouvoir utiliser d’autres directives apache avec php-fpm via proxy_fcgi_module, il faut plutôt utiliser la directive filesmatch au lieu de proxypassmatch.

La syntaxe est la suivante:

 SetHandler "proxy:fcgi://127.0.0.1:9000"