ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



On Sun, 2 Jul 2006 andrey@xxxxxxxxxxxxxxxxxxxxxxxxx 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



 




Copyright © Lexa Software, 1996-2009.