Проблема с fastcgi
Igor Sysoev
is at rambler-co.ru
Sat Mar 8 23:52:28 MSK 2008
On Sat, Mar 08, 2008 at 11:45:07PM +0300, square wrote:
> Здравствуйте, 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 отличается от
> того, который в данный момент лежит на сервере, т.е. отдаются
> исходник более старой версии скрипта. Как такое может быть? Скрипты
> где-то кешируются? Я совсем что-то уже запутался, не знаю куда рыть :(
Если open_file_cache не используется, а по умолчанию он не используется,
то нет. Помочь может отладочный лог.
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list