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