Apache 2.4 和 php-fpm 不会触发 php 页面的 apache http 基本身份验证

Apache 2.4 and php-fpm does not trigger apache http basic auth for php pages

我确定这是某个地方有人问过的问题,如果是这样请原谅,但谷歌搜索并没有给我任何有形的信息。

这是我的场景:

我正在使用 apache http basic auth 保护 web 目录。所以我在根文件夹中有我的 .htaccess,我的 httpd.conf 配置为覆盖所有,以便它考虑 .htaccess。我的.htaccess的内容如下:

AuthType 基本

授权名"test"

AuthUserFile /etc/httpd/.test_pass

需要有效用户

.test_pass 已成功设置 htpasswd。通过浏览器或任何 html 文件访问 Web 根文件夹时,我会正确弹出身份验证。使用密码给了我预期的访问权限。

但是当我访问 php 页面时,没有出现身份验证弹出窗口,php 页面呈现。

这是我的设置:

我需要能够通过 apache basic auth 设置 username/password 身份验证,它可以保护目录中的每个文件,包括 php 个文件。

我正在使用开源软件;所以修改软件代码是最后的手段。

php-fpm 和 mod_proxy_fcgi 有工作 around/solution 吗?

谢谢

经过几个小时的研究,我了解到发生这种情况的原因是因为 ProxyPassMatch 指令是第一个要处理的指令,这会导致 apache 忽略 .php 扩展名的其他指令。

为了能够通过 proxy_fcgi_module 将其他 apache 指令与 php-fpm 一起使用,应该使用 filesmatch 指令而不是 proxypassmatch。

语法如下:

<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>