Я пытаюсь настроить псевдоним, чтобы при получении доступа /phpmyadmin/
nginx извлекал его, /home/phpmyadmin/
а не из обычного корня документа. Тем не менее, каждый раз, когда я открываю URL, он дает мне 404 на все элементы, которые не были получены через fastcgi. fastcgi, кажется, работает нормально, а остальное - нет. strace
говорит мне, что пытается извлечь все остальное из обычного корня документа, но я не могу понять, почему. Кто-нибудь может дать некоторое представление?
Вот соответствующая часть моего конфига:
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/;
}
/
в псевдониме и в location
директиве, запрашивающий /phpmyadminfile
будет реально получить вас /home/phpmyadminfile
. Что касается того, почему конфиг в вопросе не работает, он выглядит правильно для меня, так что я подозреваю, что есть еще одна location
не показанная директива, которая соответствует, когда не предназначена. В этом случае, поскольку alias
заканчивается location
префиксом, документы nginx предлагают использовать root /home;
вместо этого .