Próbuję skonfigurować alias, więc gdy ktoś uzyska dostęp /phpmyadmin/
, nginx pobierze go /home/phpmyadmin/
raczej niż ze zwykłego katalogu głównego dokumentu. Jednak za każdym razem, gdy ściągam URL, daje mi 404 na wszystkie przedmioty, które nie zostały przeciągnięte przez fastcgi. fastcgi wydaje się działać dobrze, podczas gdy reszta nie. strace
mówi mi, że próbuje wyciągnąć wszystko inne ze zwykłego katalogu głównego dokumentu, ale nie mogę zrozumieć, dlaczego. Czy ktoś może zapewnić wgląd?
Oto odpowiednia część mojej konfiguracji:
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/;
}
/
w aliasu oraz z location
dyrektywy, żądając /phpmyadminfile
rzeczywiście cię /home/phpmyadminfile
. Jeśli chodzi o to, dlaczego konfiguracja w pytaniu nie działa, wydaje mi się, że jest poprawna, więc podejrzewam, że location
nie pokazano innej dyrektywy, która pasuje, gdy nie jest zamierzona. W takim przypadku, jako alias
kończące się location
prefiksem, dokumenty nginx sugerują użycie root /home;
zamiast tego .