Je veux protéger un dossier de mon site Web avec un mot de passe en utilisant auth_basic. Ce dossier contient des scripts php qui devraient être exécutés s'ils sont demandés.nginx: auth_basic et php
J'ai essayé les éléments suivants:
location /admin {
auth_basic "Admin-Section";
auth_basic_user_file /myfolder/.htpasswd;
}
location ~ ^/admin/.*\.php$ {
auth_basic "Admin-Section";
auth_basic_user_file /myfolder/.htpasswd;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
On me demandera de nom d'utilisateur/mot de passe lors de la demande des scripts php-dans cette admin-dossier, mais les scripts php-seront téléchargés toujours lieu d'être exécuté via FastCGI .
Qu'est-ce que je fais de mal?
EDIT: Sur ma machine locale, tout fonctionne correctement avec cette configuration. o0
EDIT: BTW, php travaille en dehors du dossier admin avec les mêmes options fastcgi.
EDIT: OMG! La config du site était stockée dans/etc/nginx/sites-available/mysite et/etc/nginx/sites-enabled/contenait un lien symbolique vers le fichier mysite. Depuis quelque temps, le changement du fichier mysite n'a eu aucun effet. Par exemple. changer tous les endroits pour "nier tout" n'a eu aucun effet. Les fichiers ont été envoyés sans problème.
J'ai donc supprimé le lien symbolique et redémarré le serveur. Ensuite, j'ai créé à nouveau le lien symbolique, redémarré le serveur et tout fonctionne comme prévu. Quelqu'un peut-il expliquer le comportement étrange?
ce qui a trait Gest,
Biggie
C'est une ligne nécessaire lorsque php-FPM est en cours d'exécution dans une prison chroot. – Zenexer