![Nginx PHP-FPM Basisauthentifizierung](https://rvso.com/image/568267/Nginx%20PHP-FPM%20Basisauthentifizierung.png)
Ich habe nginx
mit php-fpm
installiert auf Debian Squeeze
.
Verzeichnisbaum ist:
- /var/www/meinesite
- index.php
- geheimer_Ordner_1
- admin.php
- statisch.html
- geheimer_Ordner_2
- admin.php
- statisch.html
- Bilder
- img01.jpg
Ich muss schließen secret_folder_1
und secret_folder_2
mit basic_auth
. Jetzt sieht die Konfiguration so aus:
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;
}
Dieselbe Konfiguration für secret_folder_2
.
Ist das normal? Ich meine, der erste Speicherort dient zum Bereitstellen php
von Dateien in eingeschränkten Ordnern und der zweite Speicherort zum Bereitstellen statischer Dateien.
Kann es vereinfacht werden?
Antwort1
Die verschachtelten Standorte könnten besser sein:
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;
}
}
$document_root
Bitte beachten Sie, dass Sie den Parameter SCRIPT_FILENAME mit einer Variablen und nicht fest codiert definieren sollten /var/www/mysite/
:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;