Eu tive exatamente o mesmo problema. Eu corri um site com uma raiz de doc em /var/www/somesite
e queria ligar o phpmyadmin a alguma sub-pasta no site. Eu tentei isso com essa configuração no nginx:
root /var/www/somesite;
location /pma/ {
alias /usr/share/phpmyadmin/;
}
location ~ ^/pma/(.+\.php)$ {
alias /usr/share/phpmyadmin/$1;
fastcgi_pass unix:/tmp/phpfpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
Isso pareceu funcionar, exceto quando eu entrei, como você descreveu, eu acabei de ver a primeira página novamente. Nenhum erro, nada. Se eu fiz o login com uma senha incorreta, recebi um erro "Não é possível fazer login no servidor MySQL", como seria de se esperar.
Solução
Finalmente, o que fiz foi arrastar todas as coisas de fastcgi_params
e descobri que mudar o DOCUMENT_ROOT
-parameter corrigia isso. Então o nginx-config acima mudou para:
root /var/www/somesite;
location /pma/ {
alias /usr/share/phpmyadmin/;
}
location ~ ^/pma/(.+\.php)$ {
alias /usr/share/phpmyadmin/$1;
fastcgi_pass unix:/tmp/phpfpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
# From fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /usr/share/phpmyadmin; # <-- Changed
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
}
(Nota: acho que isso é um problema com o nginx, que você não pode definir um alias e a raiz do doc ao mesmo tempo. Estranho, na verdade.)