Проблема здесь в том, что берется только «лучшая» директива location
, в следующем порядке:
location = <path> (longest match wins)
location ^~ <path> (longest match wins)
location ~ <path> (first defined match wins)
location <path> (longest match wins)
Используя этот набор правил, ваша директива /phpmyadmin
location
превосходит регулярное выражение ".php$
" location
, поэтому первая полностью игнорируется. Кроме того, ваша директива php fastcgi жестко привязана к вашей директории /home/me/dev
, что означает, что phpMyAdmin полностью недоступен. Вы можете использовать перезапись, чтобы получить правильный корень для ваших скриптов phpMyAdmin:
location ~ \.php$ {
set $php_root /home/me/dev;
if ($request_uri ~* /phpmyadmin) {
set $php_root /var/www/nginx-default/phpMyAdmin;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}