Я пытаюсь настроить псевдоним, чтобы при получении доступа /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;вместо этого .