Re[2]: Проблема с fastcgi

square adm at easyphp.ru
Sat Mar 8 23:45:07 MSK 2008


Здравствуйте, Igor.

Вы писали 8 марта 2008 г., 21:45:58:

> On Sat, Mar 08, 2008 at 09:32:15PM +0300, square wrote:

>> Здравствуйте, Igor.
>> 
>> Вы писали 8 марта 2008 г., 20:34:06:
>> 
>> > On Sat, Mar 08, 2008 at 08:14:57PM +0300, square wrote:
>> 
>> >> Здравствуйте, Igor.
>> >> 
>> >> Вы писали 8 марта 2008 г., 19:44:12:
>> >> 
>> >> > On Sat, Mar 08, 2008 at 07:36:11PM +0300, square wrote:
>> >> 
>> >> >> Здравствуйте, Igor.
>> >> >> 
>> >> >> Вы писали 8 марта 2008 г., 18:37:46:
>> >> >> 
>> >> >> > On Sat, Mar 08, 2008 at 06:24:36PM +0300, square wrote:
>> >> >> 
>> >> >> >> Вот такой конфиг:
>> >> >> >> 
>> >> >> >> --------------------------------------------------
>> >> >> >> user  nobody;
>> >> >> >> worker_processes  2;
>> >> >> >> 
>> >> >> >> events {
>> >> >> >>     worker_connections  1024;
>> >> >> >>     use kqueue;
>> >> >> >> }
>> >> >> >> 
>> >> >> >> http {
>> >> >> >>     include       mime.types;
>> >> >> >>     default_type  application/octet-stream;
>> >> >> >> 
>> >> >> >>     sendfile        on;
>> >> >> >> 
>> >> >> >>     keepalive_timeout  65;
>> >> >> >> 
>> >> >> >>     gzip on;
>> >> >> >> 
>> >> >> >>     server {
>> >> >> >>         listen   80;
>> >> >> >>         server_name  domain.ru www.domain.ru;
>> >> >> >>         charset utf-8;
>> >> >> >> 
>> >> >> >>         location / {
>> >> >> >>             root   /usr/home/domain.ru/www;
>> >> >> >>             index  index.php;
>> >> >> >> 
>> >> >> >>             if (-e $request_filename) {
>> >> >> >>                 break;
>> >> >> >>             }
>> >> >> >> 
>> >> >> >>             rewrite ^/(.*)$ /index.php?q=$1;
>> >> >> >>         }
>> >> >> >> 
>> >> >> >>         location ~ \.php$ {
>> >> >> >>             include /usr/local/etc/nginx/fastcgi_params;
>> >> >> >> 
>> >> >> >>             fastcgi_pass   127.0.0.1:1026;
>> >> >> >> 
>> >> >> >>             fastcgi_index  index.php;
>> >> >> >> 
>> >> >> >>             fastcgi_param  SCRIPT_FILENAME  /usr/home/domain.ru/www$fastcgi_script_name;
>> >> >> >>         }
>> >> >> >>     }
>> >> >> >> }
>> >> >> >> ------------------------------------------------
>> >> >> >> 
>> >> >> >> соответственно nginx + PHP + Spawn-fcgi.
>> >> >> >> 
>> >> >> >> Вроде бы настроено всё верно, но корректно работает только главная
>> >> >> >> страница, всё остальное отдается без обработки, т.е. исходный код.
>> >> >> >> 
>> >> >> >> Почему так - непонятно, голову уже сломал. Возможно кто-то
>> >> >> >> сталкивался? В архиве рассылки натыкался на сообщение, мол смотрите на
>> >> >> >> порт 1026, но там вроде всё корректно работает, настраивал по статье
>> >> >> >> http://www.lissyara.su/?id=1532. Да и главная страница отрабатывает
>> >> >> >> как положено. Буду благодарен за любую подсказку, хотя бы в какую
>> >> >> >> сторону копать.
>> >> >> 
>> >> >> > Не нужно без нужды использовать if/rewrite. Не нужно.
>> >> >> 
>> >> >> >      location / {
>> >> >> >          root   /usr/home/domain.ru/www;
>> >> >> >          index  index.php;
>> >> >> >          log_not_found    off;
>> >> >> >          error_page  404  = /index.php?q=$uri;
>> >> >> >      }
>> >> >> 
>> >> >> спасибо, всё понял.
>> >> >> 
>> >> >> > Как выглядит URL страницы, которая отдаётся как исходник ?
>> >> >> 
>> >> >> Вот так работает:
>> >> >>     http://www.domain.ru/
>> >> >> 
>> >> >> а так, нет:
>> >> >>     http://www.domain.ru/articles/
>> >> 
>> >> > А что должно использоваться -
>> >> > http://www.domain.ru/articles/index.php ?
>> >> 
>> >> Весь сайт состоит, собственно, только из http://www.domain.ru/index.php,
>> >> где мне и нужно получать параметр q, в котором бы содержался
>> >> любой запрошенный адрес, например "?q=http://www.domain.ru/articles/".
>> 
>> > А исходник чего выдаётся по запросу /articles/ ?
>> 
>> Выдается исходник http://www.domain.ru/index.php.

> Странно, по идее, ни в перой, ни во втором конфигурации это не должно
> происходить. Кроме варианта

> -       rewrite ^/(.*)$ /index.php?q=$1;
> +       rewrite ^/(.*)$ /index.php?q=$1 break;

Слушайте, я вдруг заметил, что отдаваемый мне index.php отличается от
того, который в данный момент лежит на сервере, т.е. отдаются
исходник более старой версии скрипта. Как такое может быть? Скрипты
где-то кешируются? Я совсем что-то уже запутался, не знаю куда рыть :(

-- 
С уважением,
 square






More information about the nginx-ru mailing list