В документации же все описано. И ошибка вполне хорошо показывает где проблема. Вместо рута тут надо алиас указать.
2013/6/11 Andrey Ermishin <e...@etherway.ru> > Здравствуйте, Maxim. > > Вы писали 10 июня 2013 г., 14:13:55: > > MD> Hello! > > MD> On Mon, Jun 10, 2013 at 12:23:13PM +0400, Andrey Ermishin wrote: > > >> Уважаемые all. > >> > >> Пытаюсь мигрировать в apache на Nginx. > >> > >> nginx установлен вместе с php5-fpm. > >> > >> Возникла проблема с переносом правил для rewrite. > >> > >> На апаче правила выглядят так: > >> > >> RewriteEngine On > >> RewriteCond %{REQUEST_URI} /playlist\.xspf > >> RewriteRule (.*) channels.php [L,QSA] > >> > >> на nginx пробую такую конструкцию: > >> > >> server { > >> ... > >> location /eltex { > >> rewrite /playlist\.xspf /eltex/channels.php break; > >> } > >> ... > >> location ~ \.(php)$ { > >> ... > >> fastcgi_pass php_backends; > >> ... > >> } > >> ... > >> } > >> > >> > >> Собственно говоря в этом случае channels.php не выполняется, а просто > >> отдается содержимое скрипта. > > MD> Во-первых, rewrite у вас не имеет шанса сработать, т.к. запрос > MD> "/playlist.xspf" не имеет шансов попасть в location /eltex. > > MD> Во-вторых, даже если бы он сработал - запрос после "rewrite ... > MD> break" обрабатывается в том же location, где был сделан rewrite. > MD> А там у вас, судя по всему, никакого fastcgi_pass нет. Если нужно > MD> выбрать другой location - правильнее всего написать "rewrite .. > MD> last". > > MD> Подробная документация есть тут: > > MD> http://nginx.org/r/location/ru > MD> http://nginx.org/r/rewrite/ru > > >> Если же в backend добавляю location ~ \.(php|xspf)$ > >> то вообще error ~404 > > MD> Что опять же ожидаемо, ибо файла /playlist.xspf у вас, судя по > MD> всему, нет. > > >> Что делать? как правильно составить конфигурацию для nginx? > > MD> Совсем правильно как-то так: > > MD> location = /playlist.xspf { > MD> fastcgi_pass php_backends; > MD> fastcgi_param SCRIPT_FILENAME > MD> $document_root/eltex/channels.php; > MD> include fastcgi_params; > MD> } > > > > Спасибо разобрался. > Теперь новая засада (что бы не плодить топики). > > В апаче была такая конфигурация сервера: > > Alias /dns /srv/http/dns/html > > <Directory /srv/http/dns/html> > Options All > DirectoryIndex index.php > > </Directory> > > Переношу ее в nginx > > location ^~ /dns/ { > root /srv/http/dns/html/; > access_log /srv/http/dns/logs/access.log; > error_log /srv/http/dns/logs/error.log; > } > > в итоге при обращении http://url/dns/ > получаю ошибку в еррор лог: > 2013/06/11 10:46:23 [error] 11962#0: *5 open() > "/srv/http/dns/html/dns/index.php" failed (2: No such file or directory) > > что не так? > > > > > > -- > Ермишин Андрей > Руководитель департамента > управления сети > Оператор связи > ООО "Шупашкартранс-К" > телефон: (8352) 272008 > > e...@etherway.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru