alias issue again

Gena Makhomed gmm на csdoc.com
Чт Дек 1 00:38:49 UTC 2011


On 30.11.2011 21:36, Валентин Бартенев wrote:

>> в исходном конфиге
>>
>> location / {}
>> location ~ \.php$ {}
>> location /pma/   {}
>> location ~ ^/pma/(.*\.php)$ {}
>>
>> я не смог визуально найти причину, почему появляется ошибка
>> 'directory index of "/usr/local/www/phpMyAdmin" is forbidden'
>>
>> и он не просил вместо него написать конфиг, он просил ответить
>> на вопрос о причине этой ошибки - "Я не так использую alias-ы?"
>
> Причина данной конкретной ошибки, как я сразу и написал:
> неправильный alias, без нужного в данном случае '/' на конце.
>
> И как следствие, не срабатывал index index.php; поэтому запрос
> обрабатывался как попытка обратиться к /usr/local/www/phpMyAdmin
> в текущем локэйшене.
>
> А листинг директорий у автора был запрещен, на что и указывала ошибка.

судя по отладочному логу:

2011/12/01 01:58:40 [debug] 30615#0: *1590545 test location: "/"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 test location: "pma/"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 test location: ~ "\.php$"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 test location: ~ 
"^/pma/(.*\.php)$"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 using configuration "/pma/"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 open index 
"/usr/local/www/phpMyAdminindex.php"
2011/12/01 01:58:40 [debug] 30615#0: *1590545 stat() 
"/usr/local/www/phpMyAdminindex.php" failed (2: No such file or directory)
2011/12/01 01:58:40 [debug] 30615#0: *1590545 http index check dir: 
"/usr/local/www/phpMyAdmin"
2011/12/01 01:58:40 [error] 30615#0: *1590545 directory index of 
"/usr/local/www/phpMyAdmin" is forbidden, client: 10.17.1.237, server: 
q, request: "GET /pma/ HTTP/1.1", host: "q"

текущий локейшин - это "/pma/", за его пределы nginx не выходил.
nginx пытался открыть индексный файл /usr/local/www/phpMyAdminindex.php
и поскольку такого файла не было - выдавал ошибку что directory index
is forbidden.

>> мои вопросы касались уже исключительно того варианта конфига,
>> который получился в результате, и который имхо будет гораздо хуже
>> для поддержки, чем его исходный конфиг с 4-мя разными locations.

> Ни я, ни вы - не знаем задач автора. И конечный вариант должен все же
> писаться ориентируясь на конкретные цели и самим автором, с пониманием
> что происходит и как работает. ИМХО

мы не знаем задач автора, это правда. но кроме /pma/
у него рано или поздно появятся там и другие locations,
поэтому лучше изначально делать конфигурацию удобной
для поддержки, т.е. чтобы все locations были максимально
независимы друг от друга и от порядка следованиях их в конфиге,
т.е. чтобы все locations с регулярными выражениями были бы
вложены внутрь небольших по размеру locations с префиксами.

> Моя цель была помочь человеку, коли сам он с проблемой справиться не
> может и никто ему больше не написал рабочего варианта. Мой вариант конфига
> плох ровно настолько, насколько у меня было больное уставшее сознание
> после 9 часов работы и попыток понять из авторского конфига, чего же он хотел
> и почему же у него не работает.

понял, sorry.

но писать конфиги для элементарных задач за всех пользователей nginx -
это наверное не выход из положения. тем более, что судя по вопросу
- было видно что документацию по директиве alias он читал,
но из документации и обычного (не отладочного ) error_log`а
он не смог понять почему у него директива alias не работает
так как ожидалось. следовательно - проблемы с документацией
к директиве alias - она не полная и нюанс с '/' там не отражен.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru