Descobri um caminho. Não tenho certeza se é o melhor, mas certamente está funcionando agora.
Veja o que eu fiz:
location ~ ^/phpmyadmin/(.*)$
{
alias /home/phpmyadmin/$1;
}
Estou tentando configurar um alias para que, quando alguém acessar /phpmyadmin/
, nginx o extraia de /home/phpmyadmin/
e não da raiz de documentos comum. No entanto, toda vez que eu puxar o URL, ele me dá um 404 em todos os itens não puxados através de fastcgi. O fastcgi parece estar funcionando bem, enquanto o resto não está. strace
está me dizendo que está tentando extrair todo o resto da raiz do documento usual, mas não consigo entender o porquê. Alguém pode fornecer algum insight?
Aqui está a parte relevante da minha configuração:
location ~ ^/phpmyadmin/(.+\.php)$
{
include fcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
}
location /phpmyadmin
{
alias /home/phpmyadmin/;
}
Não tenho certeza, mas você já tentou escrever desta forma:
location /phpmyadmin/
{
alias /home/phpmyadmin/;
}
Além disso, qual é o URI do qual você está tentando acessá-lo?
Tanto quanto eu entendo, você tem que usar o URI
/home/phpmyadmin/
e não apenas
/phpmyadmin/
Você pode ler mais sobre isso aqui: link
Tente
location ^~ /phpMyAdmin/
{
alias /home/phpmyadmin/;
location ~ \.php$
{
include fcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
}
}
O motivo pelo qual isso não funciona é que o servidor está escolhendo o local baseado em regex e não o local baseado em prefixo que possui o alias nele.
Ele só escolherá um. Existe um operador que você pode usar para obter um local baseado em prefixo para superar um regex, mas você verá que o php não funcionará. A solução será uma como a resposta do kervin, onde o regex do PHP é aninhado dentro do local com a diretiva alias.
Suspeito, no entanto, que sua configuração de SCRIPT_FILENAME possa não funcionar, pois há uma capitalização diferente na URL e no diretório com alias.