Estou tentando configurar um alias para que, quando alguém acessar /phpmyadmin/
, o nginx o extraia da /home/phpmyadmin/
raiz do documento habitual, e não da mesma. No entanto, toda vez que eu pego a URL, é exibido um erro 404 em todos os itens não extraídos do fastcgi. fastcgi parece estar funcionando bem, enquanto o resto não está. strace
está me dizendo que está tentando extrair todo o resto da raiz usual do documento, mas não consigo entender o porquê. Alguém pode fornecer algumas dicas?
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/;
}
/
no alias e nalocation
diretiva, a solicitação/phpmyadminfile
realmente o levará/home/phpmyadminfile
. Quanto ao motivo pelo qual a configuração da pergunta não funciona, parece correta para mim, então suspeito que haja outralocation
diretiva não mostrada que corresponda quando não pretendida. Neste caso, como asalias
extremidades com olocation
prefixo, os documentos sugerem o uso de nginxroot /home;
vez .Respostas:
Descobri uma maneira. Não tenho certeza se é o MELHOR, mas certamente está funcionando agora.
Aqui está o que eu fiz:
fonte
Não tenho certeza, mas você já tentou escrevê-lo desta maneira:
Além disso, qual é o URI a partir do qual você está tentando acessá-lo?
Tanto quanto eu entendo, você tem que usar o URI
e não apenas
Você pode ler mais sobre isso aqui: http://wiki.nginx.org/HttpCoreModule
fonte
Experimentar
fonte
A razão pela qual isso não funciona é que o servidor está escolhendo o local baseado em regex e não o local baseado em prefixo que contém o alias.
Ele escolherá apenas 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á semelhante à resposta do kervin, em que o regex do PHP está aninhado dentro do local com a diretiva de alias.
Eu suspeito, no entanto, sua configuração SCRIPT_FILENAME pode não funcionar lá, pois existe uma capitalização diferente na URL e no diretório alias.
fonte