Autenticação Básica do Nginx PHP-FPM

3

Eu tenho nginx com php-fpm instalado em Debian Squeeze .
A árvore de diretórios é:

  • / var / www / mysite
    • index.php
    • secret_folder_1
      • admin.php
      • static.html
    • secret_folder_2
      • admin.php
      • static.html
    • fotos
    • img01.jpg

Eu preciso fechar secret_folder_1 e secret_folder_2 com basic_auth . Agora config se parece com:

location ~ /secret_folder_1/.+\.php$
{
        root /var/www/mysite/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  /var/www/mysite$fastcgi_script_name;
        include        fastcgi_params;
        auth_basic "Restricted Access";
        auth_basic_user_file /path/to/.passwd;
}

location ~ /secret_folder_1/.*
{
        root /var/www/mysite/;
        auth_basic "Restricted Access";
        auth_basic_user_file /path/to/.passwd;
}

Mesma configuração para secret_folder_2 .

Isso é normal? Quero dizer, primeiro local para servir php arquivos na pasta restrita e segundo local para servir arquivos estáticos.

Pode ser simplificado?

    
por Lari13 25.11.2011 / 13:15

1 resposta

4

Os locais aninhados podem ser melhores:

location /secret_folder_1 {
    root /var/www/mysite/;
    auth_basic "Restricted Access";
    auth_basic_user_file /path/to/.passwd;

    location ~* \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        include        fastcgi.conf;
    }
}

Observe que você deve definir o parâmetro SCRIPT_FILENAME com a variável $document_root em vez de codificar /var/www/mysite/ :

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    
por 25.11.2011 / 15:23