location можно задать префиксной строкой или регулярным выражением. Регулярные выражения задаются либо с модификатором “~*” (для поиска совпадения без учёта регистра символов), либо с модификатором “~” (с учётом регистра). Чтобы найти location, соответствующий запросу, вначале проверяются location’ы, заданные префиксными строками (префиксные location’ы). Среди них ищется location с совпадающим префиксом максимальной длины и запоминается. Затем проверяются регулярные выражения, в порядке их следования в конфигурационном файле. Проверка регулярных выражений прекращается после первого же совпадения, и используется соответствующая конфигурация. Если совпадение с регулярным выражением не найдено, то используется конфигурация запомненного ранее префиксного location’а.
https://nginx.ru/ru/docs/http/ngx_http_core_module...
Скорей всего запрос к phpmyadmin/index.php уходит не в "location ~ /phpmyadmin/(.+\.php)$", а в "location ~ \.php$" (потому что первое совпадение для location с регулярным выражением).
Посмотрите или
тут (рекомендации непосредственно от Игоря Сысоева по написанию конфигов) или
тут (там есть непосредственно пример конфига для сайта, который лежит по своему root-адресу и phpmyadmin по своему root-адресу).