PHP FPM 虚拟主机中的基本身份验证

Basic authentication in vhost in PHP FPM

我想为 apache PHP 处理程序是 FastCGI(FPM) 的地方设置一个基于基本身份验证的虚拟主机。我找到了一个解决方案 ,但不确定它是否与我所做的相同。

服务器和软件详细信息: 中央操作系统 6.9 Apache 2.4 - 使用源代码编译 PHP 5.6.6 - 使用源代码编译

我已将 PHP 配置为 FPM,并将 运行 PHP 配置为:

php-fpm -y /usr/local/php/php/fpm/php-fpm.conf -c /usr/local/lib/php.ini

我有一些游泳池:

listen = 127.0.0.1:9001
listen = 127.0.0.1:9002 .. 

等等

我的虚拟主机配置为:

<VirtualHost *:80>
    DocumentRoot "/var/www/html/webserver/web"
    ServerName spectrumenterprise.jnj.com
    <Directory /var/www/html/webserver/web>
        Options -Indexes +FollowSymLinks -ExecCGI +MultiViews    
        AllowOverride All    
        Order allow,deny
        allow from all
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/httpd/.htpasswd
        Require valid-user    
        Require all granted     
        <IfModule mod_proxy_fcgi.c>
            RewriteEngine On
            RewriteBase /
            RewriteOptions InheritBefore
            RewriteCond %{REQUEST_FILENAME} -f
            RewriteRule ^([^\.]+\.php)$ fcgi://127.0.0.1:9007/var/www/html/webserver/web/ [L,P]
        </IfModule>
    </Directory>        
    ErrorLog "logs/spectrumenterprise.jnj.com-error_log"
    CustomLog "logs/spectrumenterprise.jnj.com-access_log" common
</VirtualHost>

如果我做错了什么?

我找到了解决方案,

我在 webroot 有一个 .htaccess,我添加了

Order allow,deny
allow from all
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /var/www/html/site1/web/.htpasswd
Require valid-user
Require all granted

之后
<IfModule mod_rewrite.c>
    RewriteEngine On

在 .htaccess 的相同位置添加了 .htpasswd 文件(在我的例子中 /var/www/html/site1/web/)

重新启动池和 Apache

pkill -o php-fpm
php-fpm -y /usr/local/php/etc/php-fpm.conf -c /usr/local/lib/php.ini
/usr/local/apache2/bin/httpd -k restart