виртуальный хостинг основе субдоменов, rewriting + PHP (fastCGI)

Igor Sysoev is at rambler-co.ru
Mon Jul 3 12:35:07 MSD 2006


On Sun, 2 Jul 2006 andrey at mail.anti-aging-drugs.com wrote:

> Я с ним (nginx) первый раз столкнулся. Замучился уже с настройкой rewrite+php (fastcgi). Могли бы показать?
> Мне надо сдлелать "разброску" по поддоменам (это я уже решил) так, чтоб это нормально работало с PHP (это и есть проблема).
>
> Проблема заключается в том, что в ответ на http://SOME.localhost.ru/ я
> получаю то, что ожидается (/index.php), а в ответ на
> http://SOME.localhost.ru/index.php получаю сообщение "No input file
> specified", т.е. я неверно настроил реврайтинг либо, что более
> вероятно, ошибка в строке fastcgi_param  SCRIPT_FILENAME.
>
> С этой строкой я долго возился, пытаясь вписывать в нее значения по
> условиям (типа if ($host_name != SOME.localhost.ru)), но ничего не
> вышло.
>
> Могзи кипят:) Надеюсь на помощь.
>
> Вот мой конфиг.
>
>    server {
>
>        listen       127.0.0.1:80;
>        server_name  localhost.ru  *.localhost.ru
>
>
>        location / {
>                root   /home/www/data/public_html/;
>                index  index.php index.html index.htm;
>
>
>                # перенаправление YYY.XXX.localhost.ru на XXX.localhost.ru
>                if ($http_host ~ ^.+\.[^\.]+\.localhost\.ru.*$) {
>                    rewrite ^(.*)$  $http_host$1;
>                    rewrite ^.*\.([^\.]+)\.localhost\.ru(.*)$ http://$1.localhost.ru$2 permanent;
>                    break;
>                }
>
>
>                # отображение XXX.localhost.ru в пользовательские папки XXX
>                if ($http_host ~ ^.*\.localhost\.ru.*$) {
>                    rewrite ^(.*)$  $http_host$1;
>                    rewrite ^(.+)\.localhost\.ru(.*)$ /ub$2 break;
>                    break;
>                }
>
>
>        }
>
>        location ~ \.php$ {
>            fastcgi_pass   127.0.0.1:9000;
>            fastcgi_index  index.php;
>            fastcgi_param  SCRIPT_FILENAME  /home/www/data/public_html$fastcgi_script_name;
>            fastcgi_param  QUERY_STRING     $query_string;
>            fastcgi_param  REQUEST_METHOD   $request_method;
>            fastcgi_param  CONTENT_TYPE     $content_type;
>            fastcgi_param  CONTENT_LENGTH   $content_length;
>        }
>
>
>    }

Нужно вынести весь rewrite на уровень сервера.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list