Le problème vient du fait que vous avez (je présume), 2 locations dans le fichier de configuration de votre vHost :
Or quand vous accédez à 192.168.0.1/admin/adminer.php, seule la location ~ \.php$ est utilisée
Je vous invite à visiter cette page http://wiki.whyaskwhy.org/Nginx/Location qui explique l'ordre de traitement des balises locations.
Et du coup, pour votre config, l'exemple ci-dessous me parait pas mal.
Les fichiers PHP sont traités hors et dans la zone /admin. Et le mot de passe est bien demandé quand vous accédez à un fichier PHP dans la zone /admin
server { listen 80; server_name testadmin.com; root /home/dev/www/test; index index.html index.htm index.php; location ^~ /admin { try_files $uri $uri/ =404; auth_basic "Restricted Content"; auth_basic_user_file /usr/share/nginx/html/admin/.htpasswd; # pass the PHP scripts to FastCGI server listening on /run/php/php7.0-fpm.sock location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } # pass the PHP scripts to FastCGI server listening on /run/php/php7.0-fpm.sock location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Plus d'information sur les formats de texte
Le problème vient du fait que vous avez (je présume), 2 locations dans le fichier de configuration de votre vHost :
Or quand vous accédez à 192.168.0.1/admin/adminer.php, seule la location ~ \.php$ est utilisée
Je vous invite à visiter cette page http://wiki.whyaskwhy.org/Nginx/Location qui explique l'ordre de traitement des balises locations.
Et du coup, pour votre config, l'exemple ci-dessous me parait pas mal.
Les fichiers PHP sont traités hors et dans la zone /admin. Et le mot de passe est bien demandé quand vous accédez à un fichier PHP dans la zone /admin